Revision: 201025
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:15:47 +0300
changeset 46 bc5a64e5bc3c
parent 45 6b911d05207e
child 50 377c906a8701
child 51 f39ed5e045e0
child 56 5bcb308bd24d
Revision: 201025 Kit: 2010127
phone.pro
phone_plat/phone_application_commands_api/inc/xqphoneappcommands.h
phoneapp/phoneui2/inc/phoneuihousehold_p.h
phoneapp/phoneui2/phoneui2.pro
phoneapp/phoneui2/rom/phoneui.iby
phoneapp/phoneui2/service_conf.xml
phoneapp/phoneui2/src/phoneuihousehold_p.cpp
phoneapp/phoneui2/src/phoneuikeyeventadapter.cpp
phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def
phoneapp/phoneuicontrol/group/phoneuicontrol.mmp
phoneapp/phoneuicontrol/inc/cphoneaccessorybthandler.h
phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h
phoneapp/phoneuicontrol/inc/cphoneuicontroller.h
phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp
phoneapp/phoneuicontrol/src/cphonecbamanager.cpp
phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp
phoneapp/phoneuicontrol/src/cphonestate.cpp
phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp
phoneapp/phoneuicontrol/src/cphonestateidle.cpp
phoneapp/phoneuicontrol/src/cphonestateincall.cpp
phoneapp/phoneuicontrol/src/cphonestatestartup.cpp
phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp
phoneapp/phoneuiqtviewadapter/bwins/phoneuiqtviewadapteru.def
phoneapp/phoneuiqtviewadapter/eabi/phoneuiqtviewadapteru.def
phoneapp/phoneuiqtviewadapter/inc/phoneapplauncher.h
phoneapp/phoneuiqtviewadapter/inc/phonemessagecontroller.h
phoneapp/phoneuiqtviewadapter/inc/phoneresourceadapter.h
phoneapp/phoneuiqtviewadapter/inc/phoneuiqtbuttonscontroller.h
phoneapp/phoneuiqtviewadapter/inc/phoneuiqtviewadapter.h
phoneapp/phoneuiqtviewadapter/inc/phoneviewcommanddefinitions.h
phoneapp/phoneuiqtviewadapter/inc/phonevisibilityhandler.h
phoneapp/phoneuiqtviewadapter/inc/telephonyservice.h
phoneapp/phoneuiqtviewadapter/phoneuiqtviewadapter.pri
phoneapp/phoneuiqtviewadapter/phoneuiqtviewadapter.pro
phoneapp/phoneuiqtviewadapter/src/phoneapplauncher.cpp
phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp
phoneapp/phoneuiqtviewadapter/src/phonemessagecontroller.cpp
phoneapp/phoneuiqtviewadapter/src/phonenotecontroller.cpp
phoneapp/phoneuiqtviewadapter/src/phoneresourceadapter.cpp
phoneapp/phoneuiqtviewadapter/src/phoneuicommandcontroller.cpp
phoneapp/phoneuiqtviewadapter/src/phoneuiqtviewadapter.cpp
phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp
phoneapp/phoneuiqtviewadapter/src/telephonyservice.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/phoneapplauncher_stub.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/unit_tests.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/ut_phonemessagecontroller.pro
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneresourceadapter/unit_tests.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuicommandcontroller/unit_tests.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/phoneapplauncher_stub.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/phonevisibilityhandler_stub.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/unit_tests.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/ut_phoneuiqtviewadapter.pro
phoneapp/phoneuiqtviewadapter/tsrc/ut_phonevisibilityhandler/unit_tests.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_telephonyservice/unit_tests.cpp
phoneapp/phoneuistates/inc/cphoneerrormessageshandler.h
phoneapp/phoneuistates/src/cphonealerting.cpp
phoneapp/phoneuistates/src/cphoneconference.cpp
phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp
phoneapp/phoneuistates/src/cphoneconferenceandsingleandwaiting.cpp
phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp
phoneapp/phoneuistates/src/cphoneemergency.cpp
phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp
phoneapp/phoneuistates/src/cphonesingleandalerting.cpp
phoneapp/phoneuistates/src/cphonesingleandcallsetup.cpp
phoneapp/phoneuistates/src/cphonesingleandcallsetupandwaiting.cpp
phoneapp/phoneuistates/src/cphonesinglecall.cpp
phoneapp/phoneuiutils/bwins/phoneuiutilsu.def
phoneapp/phoneuiutils/eabi/phoneuiutilsu.def
phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h
phoneapp/phoneuiutils/inc/phonerssbase.h
phoneapp/phoneuiutils/inc/phonestatestrings.h
phoneapp/phoneuiutils/inc/phonestatestringsgsm.h
phoneapp/phoneuiutils/inc/tphonecmdparamglobalnote.h
phoneapp/phoneuiutils/src/cphonepubsubproxy.cpp
phoneapp/phoneuiutils/src/cphoneresourceresolverbase.cpp
phoneapp/phoneuiutils/src/generate.bat
phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp
phoneapp/phoneuiutils/src/phoneloggerviewcommands.st
phoneapp/phoneuiutils/src/phonestatestrings.cpp
phoneapp/phoneuiutils/src/phonestatestringsgsm.cpp
phoneapp/phoneuiutils/src/tphonecmdparamglobalnote.cpp
phoneapp/phoneuiview2/bwins/phoneuiqtviewu.def
phoneapp/phoneuiview2/eabi/phoneuiqtviewu.def
phoneapp/phoneuiview2/inc/phoneuiqtview.h
phoneapp/phoneuiview2/inc/phoneuiqtviewif.h
phoneapp/phoneuiview2/src/phoneuiqtview.cpp
phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/unit_tests.cpp
phoneengine/audiohandling/data/defaultbeep.rss
phoneengine/audiohandling/group/audiohandling.mmp
phoneengine/audiohandling/src/cpeaudiodata.cpp
phoneengine/audiohandling/src/cpeaudioinbandtoneplayer.cpp
phoneengine/callhandling/src/cpecallhandling.cpp
phoneengine/callhandling/src/cpesupplementaryservicesmonitor.cpp
phoneengine/engineinfo/inc/cpecallinfo.h
phoneengine/engineinfo/inc/cpeengineinfoimpl.h
phoneengine/engineinfo/inc/mpeengineinfo.h
phoneengine/engineinfo/src/cpecallinfo.cpp
phoneengine/engineinfo/src/cpeengineinfoimpl.cpp
phoneengine/phonecntfinder2/inc/cphcntmatch2.h
phoneengine/phonecntfinder2/src/cphcntmatch2.cpp
phoneengine/phonecntfinder2/tsrc/u_cphcntmatch2/testmatch2.pro
phoneengine/phonecntfinder2/tsrc/u_cphcntmatch2/u_cphcntmatch2.cpp
phoneengine/phonemodel/conf/s60telephony.confml
phoneengine/phonemodel/conf/s60telephony_102828B8.crml
phoneengine/phonemodel/conf/s60telephony_102828F8.crml
phoneengine/phonemodel/conf/s60telephony_2001B2E6.crml
phoneengine/phonemodel/inc/cpemessagehandler.h
phoneengine/phonemodel/inc/cpeparsersshandler.h
phoneengine/phonemodel/inc/pevirtualengine.h
phoneengine/phonemodel/inc/qtphonelog.h
phoneengine/phonemodel/inc/telephonyvariant.hrh
phoneengine/phonemodel/phonemodel.pro
phoneengine/phonemodel/src/cpeexternaldatahandler.cpp
phoneengine/phonemodel/src/cpemessagehandler.cpp
phoneengine/phonemodel/src/cpeparsermanufacturerhandler.cpp
phoneengine/phonemodel/src/cpeparserphonenumberhandler.cpp
phoneengine/phonemodel/src/cpeparsersshandler.cpp
phoneengine/phonemodel/src/cpephonemodel.cpp
phoneengine/phoneservices/inc/ctiurischemeparser.h
phoneengine/phoneservices/inc/dialservice.h
phoneengine/phoneservices/inc/dtmfservice.h
phoneengine/phoneservices/inc/phoneservices.h
phoneengine/phoneservices/inc/telurischemeparser.h
phoneengine/phoneservices/inc/urischemehandlerservice.h
phoneengine/phoneservices/inc/urischemeparser.h
phoneengine/phoneservices/phoneservices.pri
phoneengine/phoneservices/phoneservices.pro
phoneengine/phoneservices/src/ctiurischemeparser.cpp
phoneengine/phoneservices/src/dialservice.cpp
phoneengine/phoneservices/src/phoneservices.cpp
phoneengine/phoneservices/src/telurischemeparser.cpp
phoneengine/phoneservices/src/urischemehandlerservice.cpp
phoneengine/phoneservices/src/urischemeparser.cpp
phoneengine/phoneservices/tsrc/runtests.bat
phoneengine/phoneservices/tsrc/shared/mock_ctiurischemeparser.cpp
phoneengine/phoneservices/tsrc/shared/mock_hbdevicemessagebox.cpp
phoneengine/phoneservices/tsrc/shared/mock_mpecallcontrolif.cpp
phoneengine/phoneservices/tsrc/shared/mock_mpecallcontrolif.h
phoneengine/phoneservices/tsrc/shared/mock_mpecallsettersif.cpp
phoneengine/phoneservices/tsrc/shared/mock_mpecallsettersif.h
phoneengine/phoneservices/tsrc/shared/mock_telurischemeparser.cpp
phoneengine/phoneservices/tsrc/shared/mock_urischemeparser.cpp
phoneengine/phoneservices/tsrc/shared/mock_xqrequestinfo.cpp
phoneengine/phoneservices/tsrc/shared/mock_xqserviceprovider.cpp
phoneengine/phoneservices/tsrc/unit.pro
phoneengine/phoneservices/tsrc/ut_ctiurischemeparser/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_ctiurischemeparser/ut_ctiurischemeparser.pro
phoneengine/phoneservices/tsrc/ut_dialservice/ut_dialservice.pro
phoneengine/phoneservices/tsrc/ut_phoneservices/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_phoneservices/ut_phoneservices.pro
phoneengine/phoneservices/tsrc/ut_telurischemeparser/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_telurischemeparser/ut_telurischemeparser.pro
phoneengine/phoneservices/tsrc/ut_urischemehandlerservice/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_urischemehandlerservice/ut_urischemehandlerservice.pro
phoneplugins/dialerwidgetplugin/dialerwidgetplugin.pri
phoneplugins/dialerwidgetplugin/dialerwidgetplugin.pro
phoneplugins/dialerwidgetplugin/dialerwidgetpluging.qrc
phoneplugins/dialerwidgetplugin/inc/dialerwidget.h
phoneplugins/dialerwidgetplugin/inc/dialerwidgetengine.h
phoneplugins/dialerwidgetplugin/inc/dialerwidgetplugin.h
phoneplugins/dialerwidgetplugin/resource/dialerwidget.css
phoneplugins/dialerwidgetplugin/resource/dialerwidget.widgetml
phoneplugins/dialerwidgetplugin/resource/dialerwidgetplugin.manifest
phoneplugins/dialerwidgetplugin/resource/dialerwidgetplugin.s60xml
phoneplugins/dialerwidgetplugin/resource/dialerwidgetplugin.xml
phoneplugins/dialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_c.png
phoneplugins/dialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_l.png
phoneplugins/dialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_r.png
phoneplugins/dialerwidgetplugin/resource/qtg_graf_hs_dialer.svg
phoneplugins/dialerwidgetplugin/resource/qtg_graf_hs_dialer_pressed.svg
phoneplugins/dialerwidgetplugin/rom/dialerwidgetplugin.iby
phoneplugins/dialerwidgetplugin/src/dialerwidget.cpp
phoneplugins/dialerwidgetplugin/src/dialerwidgetengine.cpp
phoneplugins/dialerwidgetplugin/src/dialerwidgetplugin.cpp
phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pri
phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pro
phoneplugins/hsdialerwidgetplugin/hsdialerwidgetpluging.qrc
phoneplugins/hsdialerwidgetplugin/inc/dialerwidgetengine.h
phoneplugins/hsdialerwidgetplugin/inc/hsdialerwidget.h
phoneplugins/hsdialerwidgetplugin/inc/hsdialerwidgetplugin.h
phoneplugins/hsdialerwidgetplugin/resource/dialerwidget.css
phoneplugins/hsdialerwidgetplugin/resource/dialerwidget.widgetml
phoneplugins/hsdialerwidgetplugin/resource/hsdialerwidgetplugin.manifest
phoneplugins/hsdialerwidgetplugin/resource/hsdialerwidgetplugin.s60xml
phoneplugins/hsdialerwidgetplugin/resource/hsdialerwidgetplugin.xml
phoneplugins/hsdialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_c.png
phoneplugins/hsdialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_l.png
phoneplugins/hsdialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_r.png
phoneplugins/hsdialerwidgetplugin/resource/qtg_graf_hs_dialer.svg
phoneplugins/hsdialerwidgetplugin/resource/qtg_graf_hs_dialer_pressed.svg
phoneplugins/hsdialerwidgetplugin/rom/hsdialerwidgetplugin.iby
phoneplugins/hsdialerwidgetplugin/src/dialerwidgetengine.cpp
phoneplugins/hsdialerwidgetplugin/src/hsdialerwidget.cpp
phoneplugins/hsdialerwidgetplugin/src/hsdialerwidgetplugin.cpp
phoneplugins/infowidgetplugin/infowidget/inc/infowidget.h
phoneplugins/infowidgetplugin/infowidget/inc/infowidgetlayoutmanager.h
phoneplugins/infowidgetplugin/infowidget/inc/infowidgetnetworkhandler.h
phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandler.h
phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandler_p.h
phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandlerprivate.h
phoneplugins/infowidgetplugin/infowidget/src/infowidget.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine_s.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetlayoutmanager.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetnetworkhandler.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandler.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandler_p.cpp
phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandlerprivate.cpp
phoneplugins/infowidgetplugin/infowidgetplugin.pri
phoneplugins/infowidgetplugin/resource/infowidget.docml
phoneplugins/infowidgetplugin/tsrc/mocks/mock_cnwsession.cpp
phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidget.cpp
phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetlayoutmanager.cpp
phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetnetworkhandler.cpp
phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetsathandler_p.cpp
phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetsathandlerprivate.cpp
phoneplugins/infowidgetplugin/tsrc/ut_infowidget/src/ut_infowidget.cpp
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/inc/ut_infowidgetnetworkhandler.h
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/src/ut_infowidgetnetworkhandler.cpp
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/ut_infowidgetnetworkhandler.pro
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandler/ut_infowidgetsathandler.pro
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/inc/ut_infowidgetsathandlerprivate.h
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/src/ut_infowidgetsathandlerprivate.cpp
phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/ut_infowidgetsathandlerprivate.pro
phoneplugins/phoneindicatorplugin/inc/phoneindicatorinterface.h
phoneplugins/phoneindicatorplugin/inc/phoneindicators.h
phoneplugins/phoneindicatorplugin/inc/phoneindicatorservicesendertask.h
phoneplugins/phoneindicatorplugin/src/phoneindicatorinterface.cpp
phoneplugins/phoneindicatorplugin/src/phoneindicatorservicesendertask.cpp
phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.h
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.h
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.h
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/run_auto_tests_qt.bat
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkplugin/ut_cpnetworkplugin.pro
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_cpnetworkpluginform.pro
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/bwins/cptelephonyutilsu.def
phonesettings/cpphonesettingsplugins/cptelephonyutils/cptelephonyutils.pro
phonesettings/cpphonesettingsplugins/cptelephonyutils/eabi/cptelephonyutilsu.def
phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpplugincommon.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cppluginlogging.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpplugincommon.cpp
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonenotes/ut_cpphonenotes.cpp
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpplugincommon/ut_cpplugincommon.pro
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.cpp
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.h
phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.cpp
phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.h
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.cpp
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.h
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.cpp
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.h
phonesettings/cpphonesettingsplugins/telephonyplugin/tsrc/ut_cptelephonypluginview/ut_cptelephonypluginview.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginform.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpplugincommon.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cptelephonypluginview.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_hbwidget.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_psetcalldivertingwrapper.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_psetnetworkwrapper.cpp
phoneuis/bubblemanager2/bubblecore/bubblecore.qrc
phoneuis/bubblemanager2/bubblecore/bwins/bubblemanager2u.def
phoneuis/bubblemanager2/bubblecore/eabi/bubblemanager2u.def
phoneuis/bubblemanager2/bubblecore/src/bubblebutton.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.h
phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.h
phoneuis/bubblemanager2/bubblecore/src/bubbleeffecthandler.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleeffecthandler.h
phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.h
phoneuis/bubblemanager2/bubblecore/src/bubbleimagemanager_p.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.h
phoneuis/bubblemanager2/bubblecore/src/bubbleutils.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleutils.h
phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.h
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_1.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_2.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_3.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_4.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_5.docml
phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.css
phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.widgetml
phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistbuttons.css
phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistbuttons.widgetml
phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.css
phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.widgetml
phoneuis/bubblemanager2/inc/bubblemanager2.h
phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.cpp
phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.h
phoneuis/bubblemanager2/tsrc/unit/mt_bubblemanager2/mt_bubblemanager2.cpp
phoneuis/bubblemanager2/tsrc/unit/runall.cmd
phoneuis/bubblemanager2/tsrc/unit/unit.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/resources/qtg_mono_call.svg
phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/ut_bubblebutton.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/ut_bubblebutton.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/ut_bubblebutton.qrc
phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleeffecthandler/ut_bubbleeffecthandler.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.css
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.widgetml
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/mock_bubbleimagemanager.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp
--- a/phone.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phone.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -31,7 +31,7 @@
 SUBDIRS += phoneapp/phonestringloader
 SUBDIRS += phoneapp/phoneui2
 SUBDIRS += phonesettings/cpphonesettingsplugins
-SUBDIRS += phoneplugins/hsdialerwidgetplugin
+SUBDIRS += phoneplugins/dialerwidgetplugin
 SUBDIRS += phoneplugins/infowidgetplugin
 }
           
\ No newline at end of file
--- a/phone_plat/phone_application_commands_api/inc/xqphoneappcommands.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phone_plat/phone_application_commands_api/inc/xqphoneappcommands.h	Tue Jul 06 14:15:47 2010 +0300
@@ -58,6 +58,8 @@
     PhoneInCallCmdActivateIhf,
     PhoneInCallCmdDeactivateIhf,
     PhoneInCallCmdOpenContacts,
+    PhoneInCallCmdBtHandsfree,
+    PhoneInCallCmdHandset,
     
     PhoneButtonCmdLast
     };
--- a/phoneapp/phoneui2/inc/phoneuihousehold_p.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneui2/inc/phoneuihousehold_p.h	Tue Jul 06 14:15:47 2010 +0300
@@ -30,6 +30,7 @@
 class PhoneUiCommandAdapter;
 class QtCall;
 class PhoneUIQtViewAdapter;
+class HbTranslator;
 
 class PhoneUiHouseHoldPrivate : 
     private MPhonePubSubObserver
@@ -113,7 +114,7 @@
     PhoneUIQtViewAdapter* iViewAdapter;
     
     //List for translators
-    QList<QTranslator*> m_translators;
+    QList<HbTranslator*> m_translators;
     
 };
 
--- a/phoneapp/phoneui2/phoneui2.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneui2/phoneui2.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -69,3 +69,6 @@
              ./src/phoneuihousehold.cpp \
              ./src/phoneuihousehold_p.cpp
 
+CONFIG += service
+SERVICE.FILE = service_conf.xml
+
--- a/phoneapp/phoneui2/rom/phoneui.iby	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneui2/rom/phoneui.iby	Tue Jul 06 14:15:47 2010 +0300
@@ -26,13 +26,6 @@
 REM PhoneUI
 S60_APP_EXE(phoneui)
 UPGRADABLE_APP_REG_RSC(phoneui)
-S60_APP_AIF_RSC(phoneui)
-//S60_APP_BITMAP(phoneui)
-//S60_APP_AIF_ICONS(phoneui)
-
-//#if defined (FF_TOUCH_CALL_HANDLING) || defined ( __ON_SCREEN_DIALER )
-//SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,PhoneUI)
-//#endif // FF_TOUCH_CALL_HANDLING || __ON_SCREEN_DIALER
 
 file=ABI_DIR\BUILD_DIR\phoneuicontrol.dll               SHARED_LIB_DIR\phoneuicontrol.dll
 file=ABI_DIR\BUILD_DIR\phoneuiutils.dll                 SHARED_LIB_DIR\phoneuiutils.dll
@@ -54,3 +47,4 @@
 data=ZSYSTEM\install\phonemediatorcenter_stub.sis   System\Install\phonemediatorcenter_stub.sis
 
 #endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneui2/service_conf.xml	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<service>
+  <name>phoneui</name>
+  <description>Phone services</description>
+  <filepath>No path</filepath>
+  <interface>
+    <name>com.nokia.symbian.ICallDial</name>
+    <description>Dial interface</description>
+    <version>1.0</version>
+    <capabilities></capabilities>
+  </interface>
+  <interface>
+    <name>com.nokia.symbian.IDtmfPlay</name>
+    <description>DTMF interface</description>
+    <version>1.0</version>
+    <capabilities></capabilities>
+  </interface>
+  <interface>
+    <name>com.nokia.symbian.IStart</name>
+    <description>Bring Telephone UI to foreground</description>
+    <version>1.0</version>
+    <capabilities></capabilities>
+  </interface>
+  <interface>
+     <name>com.nokia.symbian.IUriView</name>
+     <version>1.0</version>
+     <description>Interface for handling tel and cti URIs</description>
+     <customproperty key="schemes">tel, cti</customproperty>
+     <capabilities></capabilities>
+  </interface>
+</service>
--- a/phoneapp/phoneui2/src/phoneuihousehold_p.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneui2/src/phoneuihousehold_p.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -19,7 +19,7 @@
 #include <starterclient.h>
 #include <telinternalpskeys.h>
 #include <QLocale>
-#include <QTranslator>
+#include <HbTranslator>
 #include <telremotepartyinformationpskeys.h>
 #include <telinformationpskeys.h>
 #include <UikonInternalPSKeys.h>
@@ -54,8 +54,7 @@
 PhoneUiHouseHoldPrivate::~PhoneUiHouseHoldPrivate()
 {
     while (!m_translators.isEmpty()) {
-        QTranslator *translator = m_translators.takeFirst();
-        qApp->removeTranslator(translator);
+        HbTranslator *translator = m_translators.takeFirst();
         delete translator;
         translator = 0;
     }
@@ -177,40 +176,24 @@
     new( ELeave ) CPhoneLogger( KUidPhoneUILoggerSingleton );
     FeatureManager::InitializeLibL();
     
-    QString locale = QLocale::system ().name ();
-    QTranslator *translator = new QTranslator;
-    QString path = QString("z:\\resource\\qt\\translations\\");
+    HbTranslator *translator = new HbTranslator(QString("telephone"));
 
-    bool translatorLoaded = translator->load(QString(path + "telephone_" + locale));
-    PHONE_DEBUG2("PhoneUiHouseHoldPrivate::ConstructL() translator.load:", translatorLoaded);
-	if (translatorLoaded) {
-        qApp->installTranslator(translator);
+	if (translator) {
+        translator->loadCommon();
         m_translators.append(translator);
-	}else {
-        delete translator;
-        translator = 0;
-    }
+	} else {
+    delete translator;
+    translator = 0;
+}
     
-    QTranslator *translator2 = new QTranslator;
-    translatorLoaded = translator2->load(path + "telephone_cp_" + locale);
-    if (translatorLoaded) {
-        qApp->installTranslator(translator2);
+	HbTranslator *translator2 = new HbTranslator(QString("telephone_cp"));
+    if (translator2) {
         m_translators.append(translator2);
     } else {
         delete translator2;
         translator2 = 0;
     }
 
-    QTranslator *translator3 = new QTranslator;
-    translatorLoaded = translator3->load(path + "common_" + locale);
-    if (translatorLoaded) {
-        qApp->installTranslator(translator3);
-        m_translators.append(translator3);
-    } else {
-        delete translator3;
-        translator3 = 0;
-    }
-
     PhoneUIQtView *view = new PhoneUIQtView(m_window);
     iViewAdapter = new PhoneUIQtViewAdapter(*view);
     iPhoneUIController = CPhoneUIController::NewL(iViewAdapter);
--- a/phoneapp/phoneui2/src/phoneuikeyeventadapter.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneui2/src/phoneuikeyeventadapter.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -17,7 +17,7 @@
 */
 
 #include <exception> // must be before e32base.h so uncaught_exception gets defined
-#include <qkeyevent>
+#include <QKeyEvent>
 #include "phoneuikeyeventadapter.h"
 #include "phoneconstants.h"
 
--- a/phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -265,206 +265,204 @@
 	_ZTI20CPhoneReconnectQuery @ 264 NONAME
 	_ZTI20CPhoneStateCallSetup @ 265 NONAME
 	_ZTI23CPhoneDtmfWaitCharTimer @ 266 NONAME
-	_ZTI23CPhoneKeyEventForwarder @ 267 NONAME
-	_ZTI24CPhoneSystemEventHandler @ 268 NONAME
-	_ZTI26CPhoneRemoteControlHandler @ 269 NONAME
-	_ZTI27CPhoneBtaaDisconnectHandler @ 270 NONAME
-	_ZTV11CPhoneState @ 271 NONAME
-	_ZTV15CPhoneStateIdle @ 272 NONAME
-	_ZTV17CPhoneStateHandle @ 273 NONAME
-	_ZTV17CPhoneStateInCall @ 274 NONAME
-	_ZTV18CPhoneStateMachine @ 275 NONAME
-	_ZTV18CPhoneStateStartup @ 276 NONAME
-	_ZTV18CPhoneUIController @ 277 NONAME
-	_ZTV19CPhoneStateIncoming @ 278 NONAME
-	_ZTV20CPhoneReconnectQuery @ 279 NONAME
-	_ZTV20CPhoneStateCallSetup @ 280 NONAME
-	_ZTV23CPhoneDtmfWaitCharTimer @ 281 NONAME
-	_ZTV23CPhoneKeyEventForwarder @ 282 NONAME
-	_ZTV24CPhoneSystemEventHandler @ 283 NONAME
-	_ZTV26CPhoneRemoteControlHandler @ 284 NONAME
-	_ZTV27CPhoneBtaaDisconnectHandler @ 285 NONAME
-	_ZThn12_N11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 286 NONAME
-	_ZThn12_N11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 287 NONAME
-	_ZThn12_N11CPhoneState18HandleSystemEventLERK8TWsEvent @ 288 NONAME
-	_ZThn12_N11CPhoneState19HandleCenRepChangeLERK4TUidj @ 289 NONAME
-	_ZThn12_N11CPhoneState19HandlePhoneStartupLEv @ 290 NONAME
-	_ZThn12_N11CPhoneState20HandleKeyLockEnabledEi @ 291 NONAME
-	_ZThn12_N11CPhoneState22HandleForegroundEventLEi @ 292 NONAME
-	_ZThn12_N11CPhoneState22HandlePropertyChangedLERK4TUidji @ 293 NONAME
-	_ZThn12_N11CPhoneState24HandleEnvironmentChangeLEi @ 294 NONAME
-	_ZThn12_N11CPhoneState26HandleIdleForegroundEventLEv @ 295 NONAME
-	_ZThn12_N11CPhoneState26HandlePhoneFocusLostEventLEv @ 296 NONAME
-	_ZThn12_N11CPhoneState27HandlePhoneForegroundEventLEv @ 297 NONAME
-	_ZThn12_N11CPhoneStateD0Ev @ 298 NONAME
-	_ZThn12_N11CPhoneStateD1Ev @ 299 NONAME
-	_ZThn12_N15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 300 NONAME
-	_ZThn12_N15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 301 NONAME
-	_ZThn12_N15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 302 NONAME
-	_ZThn12_N15CPhoneStateIdleD0Ev @ 303 NONAME
-	_ZThn12_N15CPhoneStateIdleD1Ev @ 304 NONAME
-	_ZThn12_N17CPhoneStateInCallD0Ev @ 305 NONAME
-	_ZThn12_N17CPhoneStateInCallD1Ev @ 306 NONAME
-	_ZThn12_N18CPhoneStateStartup19HandlePhoneStartupLEv @ 307 NONAME
-	_ZThn12_N18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 308 NONAME
-	_ZThn12_N18CPhoneStateStartupD0Ev @ 309 NONAME
-	_ZThn12_N18CPhoneStateStartupD1Ev @ 310 NONAME
-	_ZThn12_N18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 311 NONAME
-	_ZThn12_N18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 312 NONAME
-	_ZThn12_N18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 313 NONAME
-	_ZThn12_N18CPhoneUIController19HandlePhoneStartupLEv @ 314 NONAME
-	_ZThn12_N18CPhoneUIController20HandleKeyLockEnabledEi @ 315 NONAME
-	_ZThn12_N18CPhoneUIController22HandleForegroundEventLEi @ 316 NONAME
-	_ZThn12_N18CPhoneUIController24HandleEnvironmentChangeLEi @ 317 NONAME
-	_ZThn12_N18CPhoneUIController26HandleIdleForegroundEventLEv @ 318 NONAME
-	_ZThn12_N18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 319 NONAME
-	_ZThn12_N18CPhoneUIController27HandlePhoneForegroundEventLEv @ 320 NONAME
-	_ZThn12_N18CPhoneUIControllerD0Ev @ 321 NONAME
-	_ZThn12_N18CPhoneUIControllerD1Ev @ 322 NONAME
-	_ZThn12_N19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 323 NONAME
-	_ZThn12_N19CPhoneStateIncoming20HandleKeyLockEnabledEi @ 324 NONAME
-	_ZThn12_N19CPhoneStateIncomingD0Ev @ 325 NONAME
-	_ZThn12_N19CPhoneStateIncomingD1Ev @ 326 NONAME
-	_ZThn12_N20CPhoneStateCallSetupD0Ev @ 327 NONAME
-	_ZThn12_N20CPhoneStateCallSetupD1Ev @ 328 NONAME
-	_ZThn16_N11CPhoneState14HandleCommandLEi @ 329 NONAME
-	_ZThn16_N11CPhoneState15ProcessCommandLEi @ 330 NONAME
-	_ZThn16_N11CPhoneStateD0Ev @ 331 NONAME
-	_ZThn16_N11CPhoneStateD1Ev @ 332 NONAME
-	_ZThn16_N15CPhoneStateIdle14HandleCommandLEi @ 333 NONAME
-	_ZThn16_N15CPhoneStateIdle15ProcessCommandLEi @ 334 NONAME
-	_ZThn16_N15CPhoneStateIdleD0Ev @ 335 NONAME
-	_ZThn16_N15CPhoneStateIdleD1Ev @ 336 NONAME
-	_ZThn16_N17CPhoneStateInCall14HandleCommandLEi @ 337 NONAME
-	_ZThn16_N17CPhoneStateInCallD0Ev @ 338 NONAME
-	_ZThn16_N17CPhoneStateInCallD1Ev @ 339 NONAME
-	_ZThn16_N18CPhoneStateStartupD0Ev @ 340 NONAME
-	_ZThn16_N18CPhoneStateStartupD1Ev @ 341 NONAME
-	_ZThn16_N18CPhoneUIController14HandleCommandLEi @ 342 NONAME
-	_ZThn16_N18CPhoneUIController15ProcessCommandLEi @ 343 NONAME
-	_ZThn16_N18CPhoneUIControllerD0Ev @ 344 NONAME
-	_ZThn16_N18CPhoneUIControllerD1Ev @ 345 NONAME
-	_ZThn16_N19CPhoneStateIncoming14HandleCommandLEi @ 346 NONAME
-	_ZThn16_N19CPhoneStateIncomingD0Ev @ 347 NONAME
-	_ZThn16_N19CPhoneStateIncomingD1Ev @ 348 NONAME
-	_ZThn16_N20CPhoneStateCallSetup14HandleCommandLEi @ 349 NONAME
-	_ZThn16_N20CPhoneStateCallSetupD0Ev @ 350 NONAME
-	_ZThn16_N20CPhoneStateCallSetupD1Ev @ 351 NONAME
-	_ZThn20_N11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 352 NONAME
-	_ZThn20_N11CPhoneStateD0Ev @ 353 NONAME
-	_ZThn20_N11CPhoneStateD1Ev @ 354 NONAME
-	_ZThn20_N15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 355 NONAME
-	_ZThn20_N15CPhoneStateIdleD0Ev @ 356 NONAME
-	_ZThn20_N15CPhoneStateIdleD1Ev @ 357 NONAME
-	_ZThn20_N17CPhoneStateInCallD0Ev @ 358 NONAME
-	_ZThn20_N17CPhoneStateInCallD1Ev @ 359 NONAME
-	_ZThn20_N18CPhoneStateStartupD0Ev @ 360 NONAME
-	_ZThn20_N18CPhoneStateStartupD1Ev @ 361 NONAME
-	_ZThn20_N19CPhoneStateIncomingD0Ev @ 362 NONAME
-	_ZThn20_N19CPhoneStateIncomingD1Ev @ 363 NONAME
-	_ZThn20_N20CPhoneStateCallSetupD0Ev @ 364 NONAME
-	_ZThn20_N20CPhoneStateCallSetupD1Ev @ 365 NONAME
-	_ZThn24_N11CPhoneState19SetDivertIndicationEi @ 366 NONAME
-	_ZThn24_N11CPhoneStateD0Ev @ 367 NONAME
-	_ZThn24_N11CPhoneStateD1Ev @ 368 NONAME
-	_ZThn24_N15CPhoneStateIdleD0Ev @ 369 NONAME
-	_ZThn24_N15CPhoneStateIdleD1Ev @ 370 NONAME
-	_ZThn24_N17CPhoneStateInCallD0Ev @ 371 NONAME
-	_ZThn24_N17CPhoneStateInCallD1Ev @ 372 NONAME
-	_ZThn24_N18CPhoneStateStartupD0Ev @ 373 NONAME
-	_ZThn24_N18CPhoneStateStartupD1Ev @ 374 NONAME
-	_ZThn24_N19CPhoneStateIncomingD0Ev @ 375 NONAME
-	_ZThn24_N19CPhoneStateIncomingD1Ev @ 376 NONAME
-	_ZThn24_N20CPhoneStateCallSetupD0Ev @ 377 NONAME
-	_ZThn24_N20CPhoneStateCallSetupD1Ev @ 378 NONAME
-	_ZThn28_NK11CPhoneState17GetBlockedKeyListEv @ 379 NONAME
-	_ZThn32_N11CPhoneState25HandleNumberEntryClearedLEv @ 380 NONAME
-	_ZThn32_N15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 381 NONAME
-	_ZThn32_N17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 382 NONAME
-	_ZThn32_N19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 383 NONAME
-	_ZThn32_N20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 384 NONAME
-	_ZThn36_N11CPhoneState23HandleNumberEntryEditedEv @ 385 NONAME
-	_ZThn36_N11CPhoneStateD0Ev @ 386 NONAME
-	_ZThn36_N11CPhoneStateD1Ev @ 387 NONAME
-	_ZThn36_N15CPhoneStateIdleD0Ev @ 388 NONAME
-	_ZThn36_N15CPhoneStateIdleD1Ev @ 389 NONAME
-	_ZThn36_N17CPhoneStateInCallD0Ev @ 390 NONAME
-	_ZThn36_N17CPhoneStateInCallD1Ev @ 391 NONAME
-	_ZThn36_N18CPhoneStateStartupD0Ev @ 392 NONAME
-	_ZThn36_N18CPhoneStateStartupD1Ev @ 393 NONAME
-	_ZThn36_N19CPhoneStateIncomingD0Ev @ 394 NONAME
-	_ZThn36_N19CPhoneStateIncomingD1Ev @ 395 NONAME
-	_ZThn36_N20CPhoneStateCallSetupD0Ev @ 396 NONAME
-	_ZThn36_N20CPhoneStateCallSetupD1Ev @ 397 NONAME
-	_ZThn40_NK11CPhoneState11IsKeyLockOnEv @ 398 NONAME
-	_ZThn40_NK11CPhoneState12IsAutoLockOnEv @ 399 NONAME
-	_ZThn4_N11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 400 NONAME
-	_ZThn4_N11CPhoneState25HandlePhoneEngineMessageLEii @ 401 NONAME
-	_ZThn4_N11CPhoneStateD0Ev @ 402 NONAME
-	_ZThn4_N11CPhoneStateD1Ev @ 403 NONAME
-	_ZThn4_N15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 404 NONAME
-	_ZThn4_N15CPhoneStateIdleD0Ev @ 405 NONAME
-	_ZThn4_N15CPhoneStateIdleD1Ev @ 406 NONAME
-	_ZThn4_N17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 407 NONAME
-	_ZThn4_N17CPhoneStateInCallD0Ev @ 408 NONAME
-	_ZThn4_N17CPhoneStateInCallD1Ev @ 409 NONAME
-	_ZThn4_N18CPhoneStateMachine11ChangeStateEi @ 410 NONAME
-	_ZThn4_N18CPhoneStateMachine11PhoneEngineEv @ 411 NONAME
-	_ZThn4_N18CPhoneStateMachine12PhoneStorageEv @ 412 NONAME
-	_ZThn4_N18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 413 NONAME
-	_ZThn4_N18CPhoneStateMachine15PhoneEngineInfoEv @ 414 NONAME
-	_ZThn4_N18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 415 NONAME
-	_ZThn4_N18CPhoneStateMachine22SendPhoneEngineMessageEi @ 416 NONAME
-	_ZThn4_N18CPhoneStateMachine5StateEv @ 417 NONAME
-	_ZThn4_N18CPhoneStateMachine9SetCallIdEi @ 418 NONAME
-	_ZThn4_N18CPhoneStateMachineD0Ev @ 419 NONAME
-	_ZThn4_N18CPhoneStateMachineD1Ev @ 420 NONAME
-	_ZThn4_N18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 421 NONAME
-	_ZThn4_N18CPhoneStateStartupD0Ev @ 422 NONAME
-	_ZThn4_N18CPhoneStateStartupD1Ev @ 423 NONAME
-	_ZThn4_N18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 424 NONAME
-	_ZThn4_N18CPhoneUIController13HandleMessageEii @ 425 NONAME
-	_ZThn4_N19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 426 NONAME
-	_ZThn4_N19CPhoneStateIncomingD0Ev @ 427 NONAME
-	_ZThn4_N19CPhoneStateIncomingD1Ev @ 428 NONAME
-	_ZThn4_N20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 429 NONAME
-	_ZThn4_N20CPhoneStateCallSetupD0Ev @ 430 NONAME
-	_ZThn4_N20CPhoneStateCallSetupD1Ev @ 431 NONAME
-	_ZThn8_N11CPhoneState14IsNoteVisibleLEv @ 432 NONAME
-	_ZThn8_N11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 433 NONAME
-	_ZThn8_N11CPhoneState15HandleLongHashLEv @ 434 NONAME
-	_ZThn8_N11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 435 NONAME
-	_ZThn8_N11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 436 NONAME
-	_ZThn8_N11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 437 NONAME
-	_ZThn8_N11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 438 NONAME
-	_ZThn8_N11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 439 NONAME
-	_ZThn8_N11CPhoneStateD0Ev @ 440 NONAME
-	_ZThn8_N11CPhoneStateD1Ev @ 441 NONAME
-	_ZThn8_N15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 442 NONAME
-	_ZThn8_N15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 443 NONAME
-	_ZThn8_N15CPhoneStateIdleD0Ev @ 444 NONAME
-	_ZThn8_N15CPhoneStateIdleD1Ev @ 445 NONAME
-	_ZThn8_N17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 446 NONAME
-	_ZThn8_N17CPhoneStateInCallD0Ev @ 447 NONAME
-	_ZThn8_N17CPhoneStateInCallD1Ev @ 448 NONAME
-	_ZThn8_N18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 449 NONAME
-	_ZThn8_N18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 450 NONAME
-	_ZThn8_N18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 451 NONAME
-	_ZThn8_N18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 452 NONAME
-	_ZThn8_N18CPhoneStateStartupD0Ev @ 453 NONAME
-	_ZThn8_N18CPhoneStateStartupD1Ev @ 454 NONAME
-	_ZThn8_N18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 455 NONAME
-	_ZThn8_N18CPhoneUIControllerD0Ev @ 456 NONAME
-	_ZThn8_N18CPhoneUIControllerD1Ev @ 457 NONAME
-	_ZThn8_N19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 458 NONAME
-	_ZThn8_N19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 459 NONAME
-	_ZThn8_N19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 460 NONAME
-	_ZThn8_N19CPhoneStateIncomingD0Ev @ 461 NONAME
-	_ZThn8_N19CPhoneStateIncomingD1Ev @ 462 NONAME
-	_ZThn8_N20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 463 NONAME
-	_ZThn8_N20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 464 NONAME
-	_ZThn8_N20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 465 NONAME
-	_ZThn8_N20CPhoneStateCallSetupD0Ev @ 466 NONAME
-	_ZThn8_N20CPhoneStateCallSetupD1Ev @ 467 NONAME
-	_ZThn8_NK11CPhoneState17IsMenuBarVisibleLEv @ 468 NONAME
+	_ZTI24CPhoneSystemEventHandler @ 267 NONAME
+	_ZTI26CPhoneRemoteControlHandler @ 268 NONAME
+	_ZTI27CPhoneBtaaDisconnectHandler @ 269 NONAME
+	_ZTV11CPhoneState @ 270 NONAME
+	_ZTV15CPhoneStateIdle @ 271 NONAME
+	_ZTV17CPhoneStateHandle @ 272 NONAME
+	_ZTV17CPhoneStateInCall @ 273 NONAME
+	_ZTV18CPhoneStateMachine @ 274 NONAME
+	_ZTV18CPhoneStateStartup @ 275 NONAME
+	_ZTV18CPhoneUIController @ 276 NONAME
+	_ZTV19CPhoneStateIncoming @ 277 NONAME
+	_ZTV20CPhoneReconnectQuery @ 278 NONAME
+	_ZTV20CPhoneStateCallSetup @ 279 NONAME
+	_ZTV23CPhoneDtmfWaitCharTimer @ 280 NONAME
+	_ZTV24CPhoneSystemEventHandler @ 281 NONAME
+	_ZTV26CPhoneRemoteControlHandler @ 282 NONAME
+	_ZTV27CPhoneBtaaDisconnectHandler @ 283 NONAME
+	_ZThn12_N11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 284 NONAME
+	_ZThn12_N11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 285 NONAME
+	_ZThn12_N11CPhoneState18HandleSystemEventLERK8TWsEvent @ 286 NONAME
+	_ZThn12_N11CPhoneState19HandleCenRepChangeLERK4TUidj @ 287 NONAME
+	_ZThn12_N11CPhoneState19HandlePhoneStartupLEv @ 288 NONAME
+	_ZThn12_N11CPhoneState20HandleKeyLockEnabledEi @ 289 NONAME
+	_ZThn12_N11CPhoneState22HandleForegroundEventLEi @ 290 NONAME
+	_ZThn12_N11CPhoneState22HandlePropertyChangedLERK4TUidji @ 291 NONAME
+	_ZThn12_N11CPhoneState24HandleEnvironmentChangeLEi @ 292 NONAME
+	_ZThn12_N11CPhoneState26HandleIdleForegroundEventLEv @ 293 NONAME
+	_ZThn12_N11CPhoneState26HandlePhoneFocusLostEventLEv @ 294 NONAME
+	_ZThn12_N11CPhoneState27HandlePhoneForegroundEventLEv @ 295 NONAME
+	_ZThn12_N11CPhoneStateD0Ev @ 296 NONAME
+	_ZThn12_N11CPhoneStateD1Ev @ 297 NONAME
+	_ZThn12_N15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 298 NONAME
+	_ZThn12_N15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 299 NONAME
+	_ZThn12_N15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 300 NONAME
+	_ZThn12_N15CPhoneStateIdleD0Ev @ 301 NONAME
+	_ZThn12_N15CPhoneStateIdleD1Ev @ 302 NONAME
+	_ZThn12_N17CPhoneStateInCallD0Ev @ 303 NONAME
+	_ZThn12_N17CPhoneStateInCallD1Ev @ 304 NONAME
+	_ZThn12_N18CPhoneStateStartup19HandlePhoneStartupLEv @ 305 NONAME
+	_ZThn12_N18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 306 NONAME
+	_ZThn12_N18CPhoneStateStartupD0Ev @ 307 NONAME
+	_ZThn12_N18CPhoneStateStartupD1Ev @ 308 NONAME
+	_ZThn12_N18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 309 NONAME
+	_ZThn12_N18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 310 NONAME
+	_ZThn12_N18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 311 NONAME
+	_ZThn12_N18CPhoneUIController19HandlePhoneStartupLEv @ 312 NONAME
+	_ZThn12_N18CPhoneUIController20HandleKeyLockEnabledEi @ 313 NONAME
+	_ZThn12_N18CPhoneUIController22HandleForegroundEventLEi @ 314 NONAME
+	_ZThn12_N18CPhoneUIController24HandleEnvironmentChangeLEi @ 315 NONAME
+	_ZThn12_N18CPhoneUIController26HandleIdleForegroundEventLEv @ 316 NONAME
+	_ZThn12_N18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 317 NONAME
+	_ZThn12_N18CPhoneUIController27HandlePhoneForegroundEventLEv @ 318 NONAME
+	_ZThn12_N18CPhoneUIControllerD0Ev @ 319 NONAME
+	_ZThn12_N18CPhoneUIControllerD1Ev @ 320 NONAME
+	_ZThn12_N19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 321 NONAME
+	_ZThn12_N19CPhoneStateIncoming20HandleKeyLockEnabledEi @ 322 NONAME
+	_ZThn12_N19CPhoneStateIncomingD0Ev @ 323 NONAME
+	_ZThn12_N19CPhoneStateIncomingD1Ev @ 324 NONAME
+	_ZThn12_N20CPhoneStateCallSetupD0Ev @ 325 NONAME
+	_ZThn12_N20CPhoneStateCallSetupD1Ev @ 326 NONAME
+	_ZThn16_N11CPhoneState14HandleCommandLEi @ 327 NONAME
+	_ZThn16_N11CPhoneState15ProcessCommandLEi @ 328 NONAME
+	_ZThn16_N11CPhoneStateD0Ev @ 329 NONAME
+	_ZThn16_N11CPhoneStateD1Ev @ 330 NONAME
+	_ZThn16_N15CPhoneStateIdle14HandleCommandLEi @ 331 NONAME
+	_ZThn16_N15CPhoneStateIdle15ProcessCommandLEi @ 332 NONAME
+	_ZThn16_N15CPhoneStateIdleD0Ev @ 333 NONAME
+	_ZThn16_N15CPhoneStateIdleD1Ev @ 334 NONAME
+	_ZThn16_N17CPhoneStateInCall14HandleCommandLEi @ 335 NONAME
+	_ZThn16_N17CPhoneStateInCallD0Ev @ 336 NONAME
+	_ZThn16_N17CPhoneStateInCallD1Ev @ 337 NONAME
+	_ZThn16_N18CPhoneStateStartupD0Ev @ 338 NONAME
+	_ZThn16_N18CPhoneStateStartupD1Ev @ 339 NONAME
+	_ZThn16_N18CPhoneUIController14HandleCommandLEi @ 340 NONAME
+	_ZThn16_N18CPhoneUIController15ProcessCommandLEi @ 341 NONAME
+	_ZThn16_N18CPhoneUIControllerD0Ev @ 342 NONAME
+	_ZThn16_N18CPhoneUIControllerD1Ev @ 343 NONAME
+	_ZThn16_N19CPhoneStateIncoming14HandleCommandLEi @ 344 NONAME
+	_ZThn16_N19CPhoneStateIncomingD0Ev @ 345 NONAME
+	_ZThn16_N19CPhoneStateIncomingD1Ev @ 346 NONAME
+	_ZThn16_N20CPhoneStateCallSetup14HandleCommandLEi @ 347 NONAME
+	_ZThn16_N20CPhoneStateCallSetupD0Ev @ 348 NONAME
+	_ZThn16_N20CPhoneStateCallSetupD1Ev @ 349 NONAME
+	_ZThn20_N11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 350 NONAME
+	_ZThn20_N11CPhoneStateD0Ev @ 351 NONAME
+	_ZThn20_N11CPhoneStateD1Ev @ 352 NONAME
+	_ZThn20_N15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 353 NONAME
+	_ZThn20_N15CPhoneStateIdleD0Ev @ 354 NONAME
+	_ZThn20_N15CPhoneStateIdleD1Ev @ 355 NONAME
+	_ZThn20_N17CPhoneStateInCallD0Ev @ 356 NONAME
+	_ZThn20_N17CPhoneStateInCallD1Ev @ 357 NONAME
+	_ZThn20_N18CPhoneStateStartupD0Ev @ 358 NONAME
+	_ZThn20_N18CPhoneStateStartupD1Ev @ 359 NONAME
+	_ZThn20_N19CPhoneStateIncomingD0Ev @ 360 NONAME
+	_ZThn20_N19CPhoneStateIncomingD1Ev @ 361 NONAME
+	_ZThn20_N20CPhoneStateCallSetupD0Ev @ 362 NONAME
+	_ZThn20_N20CPhoneStateCallSetupD1Ev @ 363 NONAME
+	_ZThn24_N11CPhoneState19SetDivertIndicationEi @ 364 NONAME
+	_ZThn24_N11CPhoneStateD0Ev @ 365 NONAME
+	_ZThn24_N11CPhoneStateD1Ev @ 366 NONAME
+	_ZThn24_N15CPhoneStateIdleD0Ev @ 367 NONAME
+	_ZThn24_N15CPhoneStateIdleD1Ev @ 368 NONAME
+	_ZThn24_N17CPhoneStateInCallD0Ev @ 369 NONAME
+	_ZThn24_N17CPhoneStateInCallD1Ev @ 370 NONAME
+	_ZThn24_N18CPhoneStateStartupD0Ev @ 371 NONAME
+	_ZThn24_N18CPhoneStateStartupD1Ev @ 372 NONAME
+	_ZThn24_N19CPhoneStateIncomingD0Ev @ 373 NONAME
+	_ZThn24_N19CPhoneStateIncomingD1Ev @ 374 NONAME
+	_ZThn24_N20CPhoneStateCallSetupD0Ev @ 375 NONAME
+	_ZThn24_N20CPhoneStateCallSetupD1Ev @ 376 NONAME
+	_ZThn28_NK11CPhoneState17GetBlockedKeyListEv @ 377 NONAME
+	_ZThn32_N11CPhoneState25HandleNumberEntryClearedLEv @ 378 NONAME
+	_ZThn32_N15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 379 NONAME
+	_ZThn32_N17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 380 NONAME
+	_ZThn32_N19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 381 NONAME
+	_ZThn32_N20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 382 NONAME
+	_ZThn36_N11CPhoneState23HandleNumberEntryEditedEv @ 383 NONAME
+	_ZThn36_N11CPhoneStateD0Ev @ 384 NONAME
+	_ZThn36_N11CPhoneStateD1Ev @ 385 NONAME
+	_ZThn36_N15CPhoneStateIdleD0Ev @ 386 NONAME
+	_ZThn36_N15CPhoneStateIdleD1Ev @ 387 NONAME
+	_ZThn36_N17CPhoneStateInCallD0Ev @ 388 NONAME
+	_ZThn36_N17CPhoneStateInCallD1Ev @ 389 NONAME
+	_ZThn36_N18CPhoneStateStartupD0Ev @ 390 NONAME
+	_ZThn36_N18CPhoneStateStartupD1Ev @ 391 NONAME
+	_ZThn36_N19CPhoneStateIncomingD0Ev @ 392 NONAME
+	_ZThn36_N19CPhoneStateIncomingD1Ev @ 393 NONAME
+	_ZThn36_N20CPhoneStateCallSetupD0Ev @ 394 NONAME
+	_ZThn36_N20CPhoneStateCallSetupD1Ev @ 395 NONAME
+	_ZThn40_NK11CPhoneState11IsKeyLockOnEv @ 396 NONAME
+	_ZThn40_NK11CPhoneState12IsAutoLockOnEv @ 397 NONAME
+	_ZThn4_N11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 398 NONAME
+	_ZThn4_N11CPhoneState25HandlePhoneEngineMessageLEii @ 399 NONAME
+	_ZThn4_N11CPhoneStateD0Ev @ 400 NONAME
+	_ZThn4_N11CPhoneStateD1Ev @ 401 NONAME
+	_ZThn4_N15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 402 NONAME
+	_ZThn4_N15CPhoneStateIdleD0Ev @ 403 NONAME
+	_ZThn4_N15CPhoneStateIdleD1Ev @ 404 NONAME
+	_ZThn4_N17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 405 NONAME
+	_ZThn4_N17CPhoneStateInCallD0Ev @ 406 NONAME
+	_ZThn4_N17CPhoneStateInCallD1Ev @ 407 NONAME
+	_ZThn4_N18CPhoneStateMachine11ChangeStateEi @ 408 NONAME
+	_ZThn4_N18CPhoneStateMachine11PhoneEngineEv @ 409 NONAME
+	_ZThn4_N18CPhoneStateMachine12PhoneStorageEv @ 410 NONAME
+	_ZThn4_N18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 411 NONAME
+	_ZThn4_N18CPhoneStateMachine15PhoneEngineInfoEv @ 412 NONAME
+	_ZThn4_N18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 413 NONAME
+	_ZThn4_N18CPhoneStateMachine22SendPhoneEngineMessageEi @ 414 NONAME
+	_ZThn4_N18CPhoneStateMachine5StateEv @ 415 NONAME
+	_ZThn4_N18CPhoneStateMachine9SetCallIdEi @ 416 NONAME
+	_ZThn4_N18CPhoneStateMachineD0Ev @ 417 NONAME
+	_ZThn4_N18CPhoneStateMachineD1Ev @ 418 NONAME
+	_ZThn4_N18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 419 NONAME
+	_ZThn4_N18CPhoneStateStartupD0Ev @ 420 NONAME
+	_ZThn4_N18CPhoneStateStartupD1Ev @ 421 NONAME
+	_ZThn4_N18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 422 NONAME
+	_ZThn4_N18CPhoneUIController13HandleMessageEii @ 423 NONAME
+	_ZThn4_N19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 424 NONAME
+	_ZThn4_N19CPhoneStateIncomingD0Ev @ 425 NONAME
+	_ZThn4_N19CPhoneStateIncomingD1Ev @ 426 NONAME
+	_ZThn4_N20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 427 NONAME
+	_ZThn4_N20CPhoneStateCallSetupD0Ev @ 428 NONAME
+	_ZThn4_N20CPhoneStateCallSetupD1Ev @ 429 NONAME
+	_ZThn8_N11CPhoneState14IsNoteVisibleLEv @ 430 NONAME
+	_ZThn8_N11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 431 NONAME
+	_ZThn8_N11CPhoneState15HandleLongHashLEv @ 432 NONAME
+	_ZThn8_N11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 433 NONAME
+	_ZThn8_N11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 434 NONAME
+	_ZThn8_N11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 435 NONAME
+	_ZThn8_N11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 436 NONAME
+	_ZThn8_N11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 437 NONAME
+	_ZThn8_N11CPhoneStateD0Ev @ 438 NONAME
+	_ZThn8_N11CPhoneStateD1Ev @ 439 NONAME
+	_ZThn8_N15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 440 NONAME
+	_ZThn8_N15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 441 NONAME
+	_ZThn8_N15CPhoneStateIdleD0Ev @ 442 NONAME
+	_ZThn8_N15CPhoneStateIdleD1Ev @ 443 NONAME
+	_ZThn8_N17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 444 NONAME
+	_ZThn8_N17CPhoneStateInCallD0Ev @ 445 NONAME
+	_ZThn8_N17CPhoneStateInCallD1Ev @ 446 NONAME
+	_ZThn8_N18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 447 NONAME
+	_ZThn8_N18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 448 NONAME
+	_ZThn8_N18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 449 NONAME
+	_ZThn8_N18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 450 NONAME
+	_ZThn8_N18CPhoneStateStartupD0Ev @ 451 NONAME
+	_ZThn8_N18CPhoneStateStartupD1Ev @ 452 NONAME
+	_ZThn8_N18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 453 NONAME
+	_ZThn8_N18CPhoneUIControllerD0Ev @ 454 NONAME
+	_ZThn8_N18CPhoneUIControllerD1Ev @ 455 NONAME
+	_ZThn8_N19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 456 NONAME
+	_ZThn8_N19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 457 NONAME
+	_ZThn8_N19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 458 NONAME
+	_ZThn8_N19CPhoneStateIncomingD0Ev @ 459 NONAME
+	_ZThn8_N19CPhoneStateIncomingD1Ev @ 460 NONAME
+	_ZThn8_N20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 461 NONAME
+	_ZThn8_N20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 462 NONAME
+	_ZThn8_N20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 463 NONAME
+	_ZThn8_N20CPhoneStateCallSetupD0Ev @ 464 NONAME
+	_ZThn8_N20CPhoneStateCallSetupD1Ev @ 465 NONAME
+	_ZThn8_NK11CPhoneState17IsMenuBarVisibleLEv @ 466 NONAME
 
--- a/phoneapp/phoneuicontrol/group/phoneuicontrol.mmp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/group/phoneuicontrol.mmp	Tue Jul 06 14:15:47 2010 +0300
@@ -50,7 +50,6 @@
 SOURCE          cphonestatestartup.cpp
 SOURCE          cphonesystemeventhandler.cpp
 SOURCE          cphoneuicontroller.cpp
-SOURCE          cphonekeyeventforwarder.cpp
 SOURCE          cphoneaccessorybthandler.cpp
 SOURCE          tphonecallheaderparam.cpp
 SOURCE          cphonecallheadermanager.cpp 
--- a/phoneapp/phoneuicontrol/inc/cphoneaccessorybthandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/inc/cphoneaccessorybthandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -53,11 +53,6 @@
 
 
         /**
-         * Sets BT debug mode on.
-         */
-        void SetBTDebugModeL();
-
-        /**
         * Set the BT handsfree mode
         * @param aHandsfreeMode ETrue to activate BT, EFalse to deactivate
         * @return ETrue if allowed
--- a/phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +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:  It is keyevent forwarder.
-*
-*/
-
-
-#ifndef CPHONEKEYEVENTFORWARDER_H
-#define CPHONEKEYEVENTFORWARDER_H
-
-// INCLUDES
-#include    <bldvariant.hrh> //Feature flags
-#include    <coecntrl.h>
- 
-// FORWARD DECLARATIONS
-class MPhoneStateMachine;
-class MPhoneKeyEventHandler;
-class MPhoneViewCommandHandle;
-class CPhoneTimer;
-
-// CLASS DECLARATION
-
-/**
-*  It is keyevent forwarder.
-*
-*/
-class CPhoneKeyEventForwarder 
-    : public CCoeControl 
-    {
-    public:  // Constructors and destructor      
-        
-        /**
-        * Two-phased constructor.
-        *
-        * @param aRect rectangle of this control.
-        * @param aStateMachine state machine
-        * @param aViewCommandHandle View command handle
-        * @return new instance.
-        */
-        static CPhoneKeyEventForwarder* NewL( const TRect& aRect, 
-                MPhoneStateMachine* aStateMachine,
-                MPhoneViewCommandHandle* aViewCommandHandle  );
-        
-        /**
-        * Destructor.
-        */
-        ~CPhoneKeyEventForwarder();     
-
-    public: // New functions.
-       
-    public: // Functions from base classes
- 
-        /**
-        * From CCoeControl, returns the amount of component controls.
-        *
-        * @return Returns the amount of component controls.
-        */
-        TInt CountComponentControls() const;              
-        
-        /**
-        * From CCoeControl, returns a control by index.
-        *    
-        * @param aIndex It is the index of the control. 
-        * @return Returns a control by index.
-        */
-        CCoeControl* ComponentControl( TInt aIndex ) const;
-
-        /**
-        * From CCoeControl, informs that the size is changed to update 
-        * the sizes of component controls appropriately.
-        */
-        void SizeChanged();
-
-        /**
-        * From CCoeControl, draws the contents of the view.
-        *
-        * @param aRect It is the area to be redrawn.
-        */
-        void Draw( const TRect& aRect ) const;
-    
-        /**
-        * From CCoeControl, offers a key event to the view. 
-        *
-        * @param aKeyEvent It contains information about the key event.
-        * @param aType It is the type of the event.
-        * @return Returns information which indicates whether the keypress
-        *         was processed or not.
-        */
-        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
-            TEventCode aType );
-        
-        /**
-        * This function should be called from AppUi, after framework has
-        * Looped through CCoeControlStack
-        *
-        * @param aKeyEvent It contains information about the key event.
-        * @param aType It is the type of the event.
-        * @return Returns information which indicates whether the keypress
-        *         was processed or not.
-        */
-        TKeyResponse OfferKeyEventAfterControlStackL( 
-                const TKeyEvent& aKeyEvent,
-                TEventCode aType );
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CPhoneKeyEventForwarder( MPhoneStateMachine* aStateMachine,
-                MPhoneViewCommandHandle* aViewCommandHandle  );
-
-        /**
-        * Symbian OS constructor.
-        */
-        void ConstructL( const TRect& aRect );
-
-        /**
-        * This function should be called before FEP or other components in 
-        * CCoeControl stack
-        *
-        * @param aKeyEvent It contains information about the key event.
-        * @param aType It is the type of the event.
-        * @return Returns information which indicates whether the keypress
-        *         was processed or not.
-        */
-        TKeyResponse OfferKeyEventBeforeControlStackL( 
-                const TKeyEvent& aKeyEvent,
-                TEventCode aType );
-        
-        /** 
-        * Handle EEventKeyDown
-        * @param aKeyEvent     Tells which key was pressed.
-        * @return              tells whether the event was consumed or not.
-        */
-        TKeyResponse HandleEventKeyDownBeforeControlStackL( const TKeyEvent& aKeyEvent );
-        
-        /** 
-        * Handle EEventKey
-        * @param aKeyEvent     Tells which key was pressed.
-        * @return              tells whether the event was consumed or not.
-        */
-        TKeyResponse HandleEventKeyBeforeControlStackL( const TKeyEvent& aKeyEvent );
-        
-        /** 
-        * Handle EEventKeyUp
-        * @param aKeyEvent     Tells which key was pressed.
-        * @return              tells whether the event was consumed or not.
-        */
-        TKeyResponse HandleEventKeyUpBeforeControlStackL( const TKeyEvent& aKeyEvent );
-
-      
-        /**
-        * Callback function for long press of a particular key
-        */
-        static TInt DoHandleLongPressKeyEventCallbackL( TAny* aAny );
-        
-        /**
-        * Convert key code
-        */   
-        void ConvertKeyCode( TUint& aCode, const TKeyEvent& aKeyEvent ); 
-
-        /**
-        * Handle key long press
-        */
-        void HandleLongPressKeyEventL();
-        
-        /**
-         * Checks from the statemachine is the given keyevent 
-         * from one of the allowed characters
-         */
-        TBool IsAlphaNumericKey( const TKeyEvent& aKeyEvent );
-                
-        
-        /**
-         * Checks if key should be blocked from phone.
-         * 
-         * @ return ETrue if alpha mode, EFalse otherwise.
-         */
-        TBool IsKeyBlocked( const TKeyEvent& aKeyEvent ) const;
-
-    private:    // Data
-        
-        /**
-        * State machine
-        */
-        MPhoneStateMachine* iStateMachine;
-        
-        /**
-         * Interface to view command handle
-         */
-        MPhoneViewCommandHandle* iViewCommandHandle;
-        
-        /**
-         * For long key press. Long press is handled within a 
-         * specific duration.
-         */
-        CPhoneTimer* iLongPressKeyEventTimer; 
-
-        /**
-         * Key press time
-         */
-        TTime iKeyPressTime;
-
-        /**
-         * Key code
-         */
-        TUint iKeyPressedDown;
-        
-        /**
-         * Key scan code from EEventKey Updated in HandleEventKeyDownL. 
-         * Zeroed in HandleEventKeyUpL.
-         */
-        TInt iScanCode;
-    };
-
-#endif      // CPHONEKEYEVENTFORWARDER_H
-            
-// End of File
--- a/phoneapp/phoneuicontrol/inc/cphoneuicontroller.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/inc/cphoneuicontroller.h	Tue Jul 06 14:15:47 2010 +0300
@@ -38,7 +38,7 @@
 class CPhoneStateHandle;
 class CPEPhoneModel;
 class CPhoneRemoteControlHandler;
-class CPhoneKeyEventForwarder;
+
 
 class CPhoneUIController : 
     public CBase, 
@@ -232,11 +232,6 @@
         */
         MPhoneStateMachine* iStateMachine;  // NOT OWNED
         
-        /**
-        * iKeyEventForwarder
-        */
-        CPhoneKeyEventForwarder* iKeyEventForwarder;
-        
     };
 
 #endif      // CPHONEUICONTROLLER_H   
--- a/phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -76,31 +76,6 @@
     {
     }
 
-// -----------------------------------------------------------
-// CPhoneAccessoryBTHandler::SetBTDebugModeL
-// Handling for message EPEMessageBTDebugMode.
-// Sets BT debug mode PS key on.
-// -----------------------------------------------------------
-//
-void CPhoneAccessoryBTHandler::SetBTDebugModeL()
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneAccessoryBTHandler::SetBTDebugModeL( ) ");
-    if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) )
-        {
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewClearNumberEntryContent );                      
-        }
-    else
-        {
-        // Remove number entry from screen
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );   
-        }
-    iNEClearedHandler->HandleNumberEntryClearedL();
-    if ( RProperty::Set( KPSUidBluetoothDutMode, KBTSspDebugmode, EBTSspDebugModeOn ))
-        {
-        __PHONELOG( EOnlyFatal, EPhoneControl, "CPhoneAccessoryBTHandler::SetBTDebugModeL PS key not defined" );
-        }
-    }
-
 // ---------------------------------------------------------
 // CPhoneAccessoryBTHandler::SetBTHandsfreeModeL
 // ---------------------------------------------------------
--- a/phoneapp/phoneuicontrol/src/cphonecbamanager.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonecbamanager.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -37,6 +37,7 @@
 #include "tphonecmdparamboolean.h"
 #include "tphonecmdparaminteger.h"
 #include "tphonecmdparamcallstatedata.h"
+#include "tphonecmdparamboolean.h"
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -112,7 +113,16 @@
 
     TBool btAvailable = iStateMachine.PhoneEngineInfo()->AudioOutputAvailable(
         EPEBTAudioAccessory );
+    
+    TPhoneCmdParamBoolean btParam;
+    btParam.SetBoolean( audioOutput == EPEBTAudioAccessory );        
+    iViewCommandHandle.ExecuteCommand(EPhoneViewSetBlueToothFlag,&btParam);
 
+    TPhoneCmdParamBoolean btAvailableParam;
+    btAvailableParam.SetBoolean( btAvailable );        
+    iViewCommandHandle.ExecuteCommand(
+            EPhoneViewSetBluetoothAvailableFlag,&btAvailableParam);
+    
     // Call setup cases
     if ( EPhoneCallHandlingCallSetupCBA == aResource )
         {
--- a/phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +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:  Key event forwarder.
-*
-*/
-
-
-// INCLUDE FILES
-#include <eikenv.h>
-#include <eikappui.h>
-#include <bldvariant.hrh>
-#include <featmgr.h>
-#include <PtiDefs.h>
-
-#include "mphonestatemachine.h"
-#include "mphonekeyeventhandler.h"
-#include "cphonekeys.h"
-#include "cphonekeyeventforwarder.h"
-#include "cphonepubsubproxy.h"
-#include "cphonetimer.h"
-#include "phonelogger.h"
-#include "phoneui.pan"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::NewL
-// -----------------------------------------------------------------------------
-//
-CPhoneKeyEventForwarder* CPhoneKeyEventForwarder::NewL(
-        const TRect& aRect,
-        MPhoneStateMachine* aStateMachine,
-        MPhoneViewCommandHandle* aViewCommandHandle )
-    {
-    CPhoneKeyEventForwarder* self =
-        new (ELeave) CPhoneKeyEventForwarder( aStateMachine, aViewCommandHandle );
-
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect );
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::~CPhoneKeyEventForwarder
-// -----------------------------------------------------------------------------
-//
-CPhoneKeyEventForwarder::~CPhoneKeyEventForwarder()
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneKeyEventForwarder::~CPhoneKeyEventForwarder");
-
-    CEikonEnv* env = static_cast<CEikonEnv*>(ControlEnv());
-    if( env )
-        {
-        env->EikAppUi()->RemoveFromStack( this );
-        }
-    delete iLongPressKeyEventTimer;
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::CountComponentControls
-// -----------------------------------------------------------------------------
-//
-TInt CPhoneKeyEventForwarder::CountComponentControls() const
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneKeyEventForwarder::CountComponentControls");
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::ComponentControl
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CPhoneKeyEventForwarder::ComponentControl(
-        TInt /*aIndex*/ ) const
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneKeyEventForwarder::ComponentControl");
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::SizeChanged
-// -----------------------------------------------------------------------------
-//
-void CPhoneKeyEventForwarder::SizeChanged()
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneKeyEventForwarder::SizeChanged");
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::Draw
-// -----------------------------------------------------------------------------
-//
-void CPhoneKeyEventForwarder::Draw(
-        const TRect& /*aRect*/ ) const
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneKeyEventForwarder::Draw");
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::OfferKeyEventL
-// Checks is hte keyevent such that the number entry can be opened
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CPhoneKeyEventForwarder::OfferKeyEventL(
-        const TKeyEvent& aKeyEvent,
-        TEventCode aType )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::OfferKeyEventL");
-
-    TKeyResponse ret( EKeyWasNotConsumed );
-    TKeyEvent keyEvent = aKeyEvent;
-
-    ret = OfferKeyEventBeforeControlStackL( aKeyEvent, aType );
-
-    // Convert event. Use already converted iKeyPressedDown.
-    // Do not convert other than DTMF tones
-    if( CPhoneKeys::IsDtmfTone( aKeyEvent, aType ) )
-        {
-        keyEvent.iCode = iKeyPressedDown;
-        }
-
-    if ( !keyEvent.iRepeats )
-        {
-        // Start and stop dtmf
-        iStateMachine->State()->HandleDtmfKeyToneL( keyEvent, aType );
-        if( aType != EEventKeyUp &&
-            ( CPhoneKeys::IsNumericKey( keyEvent, aType ) ||
-              IsAlphaNumericKey( keyEvent ) )
-          )
-            {
-            // Do not open number entry with up key
-            iStateMachine->State()->HandleCreateNumberEntryL( keyEvent, aType );
-            }
-        }
-
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::CPhoneKeyEventForwarder
-// -----------------------------------------------------------------------------
-//
-CPhoneKeyEventForwarder::CPhoneKeyEventForwarder(
-    MPhoneStateMachine* aStateMachine,
-    MPhoneViewCommandHandle* aViewCommandHandle  )
-    : iStateMachine( aStateMachine ),
-    iViewCommandHandle( aViewCommandHandle )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::CPhoneKeyEventForwarder");
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CPhoneKeyEventForwarder::ConstructL( const TRect& aRect )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::ConstructL");
-
-    if ( FeatureManager::FeatureSupported( KFeatureIdKeypadNoSlider ) )
-        {
-        RWindowGroup& groupWin = iCoeEnv->RootWin();
-        }
-    // Create invisible control.
-    CreateWindowL();
-    MakeVisible( EFalse );
-    SetRect( aRect );
-
-    CEikonEnv* env = static_cast<CEikonEnv*>(ControlEnv());
-    if( env )
-        {
-        env->EikAppUi()->AddToStackL(
-            this,
-            ECoeStackPriorityEnvironmentFilter,
-            ECoeStackFlagRefusesFocus );
-        }
-
-    // Create the long press key event timer
-    iLongPressKeyEventTimer = CPhoneTimer::NewL();
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::IsAlphaNumericKey
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneKeyEventForwarder::IsAlphaNumericKey( const TKeyEvent& aKeyEvent )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::IsAlphaNumericKey");
-
-    TBool alphaNumeric =
-       iStateMachine->State()->IsAlphanumericSupportedAndCharInput( aKeyEvent );
-
-    return alphaNumeric;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL
-// Let phone handle before other components in control stack
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL(
-    const TKeyEvent& aKeyEvent,
-    TEventCode aType )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL");
-
-    TKeyResponse response( EKeyWasNotConsumed );
-    if( !IsKeyBlocked( aKeyEvent ) )
-        {
-        // Handle key events before FEP
-        // This is must becouse FEP consumes * key and when
-        // editor is in alphanumeric mode FEP consumes all alphanumeric
-        // keys
-        switch( aType )
-            {
-             // EEventKeyDown
-            case EEventKeyDown:
-                response = HandleEventKeyDownBeforeControlStackL( aKeyEvent );
-                break;
-            // EEventKey
-            case EEventKey:
-                response = HandleEventKeyBeforeControlStackL( aKeyEvent );
-                break;
-            // EEventKeyUp
-            case EEventKeyUp:
-                response = HandleEventKeyUpBeforeControlStackL( aKeyEvent );
-                break;
-            default:
-                break;
-            }
-
-        }
-    return response;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL
-// Let phone handle keys if no one has done it already
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL(
-    const TKeyEvent& aKeyEvent,
-    TEventCode aType )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL");
-    
-    if( !IsKeyBlocked( aKeyEvent ) )
-        {
-        // Send key to editor
-        iStateMachine->State()->HandleKeyEventL( aKeyEvent, aType );
-        
-        if( EEventKeyUp == aType 
-                && EKeyNull != iKeyPressedDown )
-            {
-            // Handle short key press
-            iStateMachine->State()->HandleKeyMessageL( 
-                MPhoneKeyEvents::EPhoneKeyShortPress, 
-                TKeyCode( iKeyPressedDown ) );
-
-            // Reset key code
-            iScanCode = EStdKeyNull;
-            iKeyPressedDown = EKeyNull;
-            }
-        }
-
-    return EKeyWasNotConsumed;
-    }
-
-// -----------------------------------------------------------
-// CPhoneKeyEventForwarder::HandleEventKeyDownBeforeControlStackL
-// -----------------------------------------------------------
-//
-TKeyResponse CPhoneKeyEventForwarder::HandleEventKeyDownBeforeControlStackL(
-    const TKeyEvent& aKeyEvent )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::HandleEventKeyDownBeforeControlStackL");
-
-    // Convert key code
-    ConvertKeyCode( iKeyPressedDown, aKeyEvent );
-    // Save key scan code
-    iScanCode = aKeyEvent.iScanCode;
-
-    // Start the key press timer
-    iKeyPressTime.UniversalTime();
-
-    // Cancel the long press key event timer, if it is active
-    if ( iLongPressKeyEventTimer->IsActive() )
-        {
-        iLongPressKeyEventTimer->CancelTimer();
-        }
-
-    // Re-start the timer
-    iLongPressKeyEventTimer->After(
-        KPhoneLongPressKeyEventDuration,
-        TCallBack( DoHandleLongPressKeyEventCallbackL,
-        this ) );
-
-    return ( EKeyWasNotConsumed );
-    }
-
-// -----------------------------------------------------------
-// CPhoneKeyEventForwarder::HandleEventKeyBeforeControlStackL
-// Both short key press event (iRepeats == 0) and
-// long key press event (iRepeats == 1) are handled here
-// -----------------------------------------------------------
-//
-TKeyResponse CPhoneKeyEventForwarder::HandleEventKeyBeforeControlStackL(
-    const TKeyEvent& aKeyEvent )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::HandleEventKeyBeforeControlStackL");
-
-    TKeyResponse response( EKeyWasNotConsumed );
-
-    // Convert event.
-    TKeyEvent keyEvent = aKeyEvent;
-    keyEvent.iCode = iKeyPressedDown;
-
-    if(  aKeyEvent.iRepeats > 0 &&
-        CPhoneKeys::IsDtmfTone( keyEvent, EEventKey ) )
-        {
-        // Do not repeat dtmf characters
-        response = EKeyWasConsumed;
-        }
-
-    return response;
-    }
-
-// -----------------------------------------------------------
-// CPhoneKeyEventForwarder::HandleEventKeyUpBeforeControlStackL
-// -----------------------------------------------------------
-//
-TKeyResponse CPhoneKeyEventForwarder::HandleEventKeyUpBeforeControlStackL(
-    const TKeyEvent& aKeyEvent )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::HandleEventKeyUpBeforeControlStackL");
-
-    // Send a long press key event to the current state provided
-    // that the key scan code is the same as the key that was pressed
-    if ( iScanCode == aKeyEvent.iScanCode )
-        {
-        // Pass the key press duration to the current state
-        TTime now;
-        now.UniversalTime();
-        TTimeIntervalMicroSeconds keyPressDuration = now.MicroSecondsFrom(
-           iKeyPressTime );
-        iStateMachine->State()->HandleKeyPressDurationL(
-            TKeyCode( iKeyPressedDown ),
-            keyPressDuration );
-
-        // Cancel the long press timer, if it is active. Otherwise
-        // ignore the key event since it was already handled as a long press
-        // key event.
-        if ( iLongPressKeyEventTimer->IsActive() )
-            {
-            iLongPressKeyEventTimer->CancelTimer();
-            }
-        }
-
-    return EKeyWasNotConsumed;
-    }
-
-// ---------------------------------------------------------
-// CPhoneKeyEventForwarder::DoHandleLongPressKeyEventCallback
-//
-// This routine is called when the long press key event timer expires
-// after KPhoneLongPressKeyEventDuration.
-// ---------------------------------------------------------
-//
-TInt CPhoneKeyEventForwarder::DoHandleLongPressKeyEventCallbackL( TAny* aAny )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::DoHandleLongPressKeyEventCallbackL");
-
-    __ASSERT_DEBUG( aAny,
-        Panic( EPhoneCtrlUnknownPanic ) );
-
-    reinterpret_cast< CPhoneKeyEventForwarder* >( aAny )->
-        HandleLongPressKeyEventL();
-
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------
-// CPhoneKeyEventForwarder::HandleLongPressKeyEventL
-// Handle long press key event
-// ---------------------------------------------------------
-//
-void CPhoneKeyEventForwarder::HandleLongPressKeyEventL()
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::HandleLongPressKeyEventL");
-
-    // In alphanumeric mode EEventKey-event is not received so we must
-    // compare also with scan code.
-    if ( KPhoneDtmfHashCharacter == iKeyPressedDown )
-        {
-        // Separate handling for long hash key because there is so much
-        // different functionality under it and it works differently
-        // in different protocols.
-        iStateMachine->State()->HandleLongHashL();
-        }
-    else if ( KPhoneDtmfStarCharacter == iKeyPressedDown )
-        {
-        // KPhoneDtmfStarCharacter value used in configuration file for
-        // long key press application launching
-        iStateMachine->State()->HandleKeyMessageL(
-               MPhoneKeyEvents::EPhoneKeyLongPress,
-               TKeyCode( KPhoneDtmfStarCharacter ) );
-        }
-    else
-        {
-        __PHONELOG1(
-            EBasic, EPhoneControl,
-            "CPhoneKeyEventHandler::HandleLongPressKeyEventL iCode(%d)",
-            iKeyPressedDown );
-        iStateMachine->State()->HandleKeyMessageL(
-            MPhoneKeyEvents::EPhoneKeyLongPress,
-            TKeyCode( iKeyPressedDown ) );
-        }
-
-    // Reset key code
-    iScanCode = EStdKeyNull;
-    iKeyPressedDown = EKeyNull;
-    }
-
-// -----------------------------------------------------------
-// CPhoneKeyEventForwarder::ConvertKeyCode
-// -----------------------------------------------------------
-//
-void CPhoneKeyEventForwarder::ConvertKeyCode( TUint& aCode,
-        const TKeyEvent& aKeyEvent )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::ConvertKeyCode");
-
-    // Handler for special device key mapping in case iScanCode
-    // to iCode conversion hasn't been handled by CAknAppUi::GetAliasKeyCodeL
-    __PHONELOG1( EBasic, EPhoneControl,
-        "CPhoneKeyEventHandler::ConvertKeyCode scan code (%d)",
-        aKeyEvent.iScanCode );
-
-        switch ( aKeyEvent.iScanCode )
-            {
-            case EStdKeyEnter:
-                aCode = EKeyEnter;
-                break;
-            case EStdKeyYes:
-                aCode = EKeyYes;
-                break;
-            case EStdKeyNo:
-                aCode = EKeyNo;
-                break;
-            case EStdKeyDeviceF:
-                aCode = EKeyDeviceF;  // EStdKeyDeviceF mapping for unlock switch.
-                break;
-            case EStdKeyHash:
-                aCode = KPhoneDtmfHashCharacter;
-                break;
-            case EStdKeyNkpAsterisk:
-                aCode = KPhoneDtmfStarCharacter;
-                break;              
-            case EStdKeyApplication0:
-                aCode = EKeyApplication0;
-                break;
-
-            default:
-                aCode = aKeyEvent.iScanCode; // Use default code
-                break;
-        	} //switch
-
-    __PHONELOG1( EBasic, EPhoneControl,
-        "CPhoneKeyEventHandler::ConvertKeyCode aCode (%d)", aCode );
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::IsKeyBlocked
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneKeyEventForwarder::IsKeyBlocked( const TKeyEvent& aKeyEvent ) const
-    {
-    TBool ret = EFalse;
-    
-    // Check blocked keys
-    const RArray<TInt>& keyScanCodeList = iStateMachine->State()->GetBlockedKeyList();
-    TInt count = keyScanCodeList.Count();
-    if( count )
-        {
-        for( TInt i = 0; i < count; i++ )
-            {
-            if( keyScanCodeList[i] == aKeyEvent.iScanCode )
-                {
-                ret = ETrue;
-                }
-            }
-        }
-    __PHONELOG1( EBasic, EPhoneControl,
-        "CPhoneKeyEventHandler::IsKeyBlocked return (%d)", ret );
-    
-    return ret;
-    }
-
-//  End of File
-
--- a/phoneapp/phoneuicontrol/src/cphonestate.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestate.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -38,7 +38,7 @@
 #include <settingsinternalcrkeys.h>
 #include <starterclient.h>
 #include <rsssettings.h>
-#include <uikoninternalpskeys.h>
+#include <UikonInternalPSKeys.h>
 #include <telephonydomainpstypes.h>
 #include <telinformationpskeys.h>
 #include <coreapplicationuisdomainpskeys.h>
@@ -189,6 +189,7 @@
             HandleAudioOutputChangedL();
             // Go to current state implementation
             iCbaManager->UpdateInCallCbaL();
+            SetTouchPaneButtons(0);
             break;
 
         case MEngineMonitor::EPEMessageAvailableAudioOutputsChanged:
@@ -197,6 +198,7 @@
                 {
                 // Go to current state implementation
                 iCbaManager->UpdateInCallCbaL();
+                SetTouchPaneButtons(0);
                 }
             break;
 
@@ -209,7 +211,8 @@
             break;
 
         case MEngineMonitor::EPEMessageCallWaiting:
-            SendGlobalInfoNoteL( EPhoneWaitingText );
+            // No need to send waiting notification for user.
+            //SendGlobalInfoNoteL( EPhoneWaitingText, ETrue );
             break;
 
         case MEngineMonitor::EPEMessageProfileChanged:
@@ -236,7 +239,7 @@
             break;
 
         case MEngineMonitor::EPEMessageTransferDone:
-            SendGlobalInfoNoteL( EPhoneInCallTransferred );
+            SendGlobalInfoNoteL( EPhoneInCallTransferred, ETrue );
             break;
 
        case MEngineMonitor::EPEMessageInitiatedEmergencyCall:
@@ -354,14 +357,6 @@
             HandleCugInUseNoteL();
             break;
 
-        // *#2873#
-        case MEngineMonitor::EPEMessageBTDebugMode:
-            accessoryBtHandler = CPhoneAccessoryBTHandler::NewLC(
-                iViewCommandHandle, iStateMachine, this );
-            accessoryBtHandler->SetBTDebugModeL();
-            CleanupStack::PopAndDestroy( accessoryBtHandler );
-            break;
-
         default:
 
             TBool handled( EFalse );
@@ -843,8 +838,13 @@
 void CPhoneState::HandleRemoteBusyL( TInt aCallId )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleRemoteBusyL( ) ");
-    ShowNumberBusyNoteL();
-
+
+    TPEErrorInfo info;
+    info.iCallId = aCallId;
+    info.iErrorCode = ECCPErrorBusy;
+    info.iErrorType = EPECcp;
+    CPhoneMainErrorMessagesHandler::Instance()->ShowErrorSpecificNoteL( info );
+    
     const TPECallType callType =
         iStateMachine->PhoneEngineInfo()->CallTypeCommand();
 
@@ -1775,7 +1775,7 @@
      __PHONELOG1( EBasic, EPhoneControl, "CPhoneState::DecreaseAudioVolumeL - audio output =%d", output );
     if( output == EPETTY )
         {
-        SendGlobalInfoNoteL( EPhoneNoteTTYNoAudioControl );
+        SendGlobalInfoNoteL( EPhoneNoteTTYNoAudioControl, ETrue );
         }
     else
         {
@@ -1799,7 +1799,7 @@
      __PHONELOG1( EBasic, EPhoneControl, "CPhoneState::IncreaseAudioVolumeL - audio output =%d", output );
     if( output == EPETTY )
         {
-        SendGlobalInfoNoteL( EPhoneNoteTTYNoAudioControl );
+        SendGlobalInfoNoteL( EPhoneNoteTTYNoAudioControl, ETrue );
         }
     else
         {
@@ -2154,11 +2154,11 @@
 // -----------------------------------------------------------
 //
 EXPORT_C void CPhoneState::CaptureKeysDuringCallNotificationL(
-    TBool aCaptured )
+    TBool /*aCaptured*/ )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::CaptureKeysDuringCallNotificationL( ) ");
     // Determine which view command to execute based on the capture status
-    const TInt viewCommandId = aCaptured ?
+    /*const TInt viewCommandId = aCaptured ?
         EPhoneViewStartCapturingKey :
         EPhoneViewStopCapturingKey;
 
@@ -2178,7 +2178,7 @@
         cameraKeyCaptureParam.SetCaptureType( EPhoneKeyAllEvents );
         iViewCommandHandle->ExecuteCommandL( viewCommandId,
             &cameraKeyCaptureParam );
-        }
+        }*/
     }
 
 // -----------------------------------------------------------
@@ -2577,7 +2577,7 @@
         iViewCommandHandle, iStateMachine, this );
     if ( !bt->SetHandsfreeModeL( aHandsfreeMode ))
         {
-        SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+        SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
         }
     CleanupStack::PopAndDestroy( bt );
     }
@@ -2593,7 +2593,7 @@
         iViewCommandHandle, iStateMachine, this );
     if ( !bt->SetBTHandsfreeModeL( aHandsfreeMode ))
         {
-        SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+        SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
         }
     CleanupStack::PopAndDestroy( bt );
     }
@@ -3436,8 +3436,22 @@
         {
         TPhoneCmdParamBoolean muteParam;
         muteParam.SetBoolean( iStateMachine->PhoneEngineInfo()->AudioMute() );
+        iViewCommandHandle->ExecuteCommand(EPhoneViewSetMuteFlag,&muteParam);
         
-        iViewCommandHandle->ExecuteCommand(EPhoneViewSetMuteFlag,&muteParam);
+        const TPEAudioOutput audioOutput =
+            iStateMachine->PhoneEngineInfo()->AudioOutput();
+
+        TBool btAvailable = iStateMachine->PhoneEngineInfo()->AudioOutputAvailable(
+            EPEBTAudioAccessory );
+        
+        TPhoneCmdParamBoolean btParam;
+        btParam.SetBoolean( audioOutput == EPEBTAudioAccessory );        
+        iViewCommandHandle->ExecuteCommand(EPhoneViewSetBlueToothFlag,&btParam);
+
+        TPhoneCmdParamBoolean btAvailableParam;
+        btAvailableParam.SetBoolean( btAvailable );        
+        iViewCommandHandle->ExecuteCommand(
+                EPhoneViewSetBluetoothAvailableFlag,&btAvailableParam);
                
         TBool emergency( EPEStateIdle != 
             iStateMachine->PhoneEngineInfo()->CallState( KPEEmergencyCallId ) );
@@ -3883,13 +3897,14 @@
         globalNoteParam.SetTextResourceId(
             CPhoneMainResourceResolver::Instance()->
             ResolveResourceID( EPhoneCallWaitingWithLabel ) );
-
+        globalNoteParam.SetNotificationDialog( ETrue );
+        
         iViewCommandHandle->ExecuteCommandL(
                 EPhoneViewShowGlobalNote, &globalNoteParam );
         }
     else
         {
-        SendGlobalInfoNoteL( EPhoneCallWaitingWithoutLabel );
+        SendGlobalInfoNoteL( EPhoneCallWaitingWithoutLabel, ETrue );
         }
     }
 
--- a/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -406,7 +406,7 @@
             else // aMessage == EPhoneKeyLongPress
                 {
                 // Display call in progress information note
-                CPhoneState::SendGlobalInfoNoteL( EPhoneCallInProgress );
+                CPhoneState::SendGlobalInfoNoteL( EPhoneCallInProgress, ETrue );
                 }
             break;
 
@@ -684,6 +684,7 @@
     CPhoneState::HandleAudioOutputChangedL();
     // Update the call setup CBA
     UpdateInCallCbaL();
+    SetTouchPaneButtons(0);
     }
  
 // -----------------------------------------------------------
--- a/phoneapp/phoneuicontrol/src/cphonestateidle.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestateidle.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -37,6 +37,7 @@
 #include "tphonecmdparaminteger.h"
 #include "tphonecmdparamboolean.h"
 #include "tphonecmdparamglobalnote.h"
+#include "tphonecmdparamkeycapture.h"
 #include "tphonecmdparamstring.h"
 #include "tphonecmdparamboolean.h"
 #include "mphonestatemachine.h"
@@ -343,7 +344,7 @@
             break;
             
         case MEngineMonitor::EPEMessageInValidEmergencyNumber:                
-            SendGlobalWarningNoteL( EPhoneEmergencyCallsOnly );                           
+            SendGlobalWarningNoteL( EPhoneEmergencyCallsOnly, ETrue );                           
             break;
             
         case MEngineMonitor::EPEMessageValidEmergencyNumber:
@@ -692,6 +693,10 @@
     // Remove any phone dialogs if they are displayed
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
 
+    TPhoneCmdParamKeyCapture captureParam;
+    captureParam.SetKeyCode( EKeyNo );
+    iViewCommandHandle->ExecuteCommand( EPhoneViewStartCapturingKey, &captureParam );
+    
     // Capture keys when there is an incoming call
     CaptureKeysDuringCallNotificationL( ETrue );
 
@@ -736,6 +741,10 @@
     // Close menu bar, if it is displayed
     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
 
+    TPhoneCmdParamKeyCapture captureParam;
+    captureParam.SetKeyCode( EKeyNo );
+    iViewCommandHandle->ExecuteCommand( EPhoneViewStartCapturingKey, &captureParam );
+    
     // Capture keys when the phone is dialling
     CaptureKeysDuringCallNotificationL( ETrue );
 
@@ -1019,46 +1028,7 @@
 //
 void CPhoneStateIdle::ChangeMannerModeL()
     {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneStateIdle::ChangeMannerModeL( ) ");
-
-    // Get the profile information
-    const TInt profileId = 
-        iStateMachine->PhoneEngineInfo()->ProfileId();
-    TInt newProfile;
-    
-    if ( profileId == EProfileSilentId )
-        {
-        newProfile = EProfileGeneralId;
-        }
-    else
-        {
-        newProfile = EProfileSilentId;    
-        }
-        
-    if ( !iEngine )
-        {
-        iEngine = CreateProfileEngineL();
-        }
-
-    iEngine->SetActiveProfileL( newProfile );
-    
-    // Stop playing DTMF tone
-    iStateMachine->SendPhoneEngineMessage( MPEPhoneModel::EPEMessageEndDTMF ); 
-    
-    if ( !iOnScreenDialer )
-        {
-        // Remove the number entry
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );        
-        }
-    else
-        {
-        NumberEntryClearL();
-        }
-    
-    iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
- 
-     // Bring Idle app to the top app
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewSetIdleTopApplication );            
+    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneStateIdle::ChangeMannerModeL( ) ");         
     }
 
 // -----------------------------------------------------------
--- a/phoneapp/phoneuicontrol/src/cphonestateincall.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestateincall.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -34,6 +34,7 @@
 #include "tphonecmdparamnote.h"
 #include "tphonecmdparamquery.h"
 #include "tphonecmdparamcallstatedata.h"
+#include "tphonecmdparamkeycapture.h"
 #include "tphonecmdparamsfidata.h"
 #include "mphonestatemachine.h"
 #include "phonestatedefinitions.h"
@@ -219,7 +220,7 @@
             break; 
             
         case MEngineMonitor::EPEMessageInValidEmergencyNumber:
-            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
             break;
             
         case MEngineMonitor::EPEMessageValidEmergencyNumber:
@@ -330,6 +331,10 @@
     // Display call termination note, if necessary
     DisplayCallTerminationNoteL();
 
+    TPhoneCmdParamKeyCapture captureParam;
+    captureParam.SetKeyCode( EKeyNo );
+    iViewCommandHandle->ExecuteCommand( EPhoneViewStopCapturingKey, &captureParam );
+    
     CleanupStack::PopAndDestroy( phoneNumber );
     // Go to idle state
     iStateMachine->ChangeState( EPhoneStateIdle );
@@ -403,6 +408,8 @@
         // Go to current state implementation
         UpdateInCallCbaL();
         }
+    
+    SetTouchPaneButtons(0);
     }
 
 // -----------------------------------------------------------
@@ -1223,7 +1230,7 @@
             state );
         if ( state == EPSHWRMGripOpen )
             {
-            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
             }
         else
             {
@@ -1479,7 +1486,7 @@
     else // aMessage == EPhoneKeyLongPress
         {
         // Display call in progress information note
-        SendGlobalInfoNoteL( EPhoneCallInProgress );
+        SendGlobalInfoNoteL( EPhoneCallInProgress, ETrue );
         }        
     }
 
--- a/phoneapp/phoneuicontrol/src/cphonestatestartup.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestatestartup.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -72,20 +72,20 @@
     // CAPTURE KEY EVENTS PERMANENTLY
         
     // Capture the up and down events for the No key
-    TPhoneCmdParamKeyCapture noKeyCaptureParam;
+    /*TPhoneCmdParamKeyCapture noKeyCaptureParam;
     noKeyCaptureParam.SetKey( EStdKeyNo );
     noKeyCaptureParam.SetKeyCode( EKeyNo );
     noKeyCaptureParam.SetCaptureType( EPhoneKeyAllEvents );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewStartCapturingKey, 
-        &noKeyCaptureParam );
+        &noKeyCaptureParam );*/
           
     // Capture the up and down events for the EStdKeyEnd key
-    TPhoneCmdParamKeyCapture endKeyCaptureParam;
+    /*TPhoneCmdParamKeyCapture endKeyCaptureParam;
     endKeyCaptureParam.SetKey( EStdKeyEnd );
     endKeyCaptureParam.SetKeyCode( EKeyEnd );
     endKeyCaptureParam.SetCaptureType( EPhoneKeyAllEvents );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewStartCapturingKey, 
-        &endKeyCaptureParam );
+        &endKeyCaptureParam );*/
     }
 
 // -----------------------------------------------------------
@@ -182,7 +182,7 @@
     // if the phone engine is not ready.
     if ( iPhoneReady && !iPEReady )
         {
-        SendGlobalErrorNoteL( EPhoneNoteTextPEFailedAtStartup );
+        SendGlobalErrorNoteL( EPhoneNoteTextPEFailedAtStartup, ETrue );
         }
     }
 
--- a/phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -31,7 +31,6 @@
 #include "phonelogger.h"
 #include "phoneconstants.h"
 #include "phoneui.pan"
-#include "cphonekeyeventforwarder.h"
 #include "cphonecenrepproxy.h"
 #include "cphonemediatorfactory.h"
 #include "tphonecmdparamnumberentryobserver.h"
@@ -153,7 +152,6 @@
     delete iRemoteControlHandler;
     delete iSystemEventHandler;
     delete iEngineHandler;
-    delete iKeyEventForwarder;
     delete iStateHandle;
     }
 
--- a/phoneapp/phoneuiqtviewadapter/bwins/phoneuiqtviewadapteru.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/bwins/phoneuiqtviewadapteru.def	Tue Jul 06 14:15:47 2010 +0300
@@ -1,100 +1,102 @@
 EXPORTS
 	?removeDialpad@PhoneUIQtViewAdapter@@AAEXXZ @ 1 NONAME ; void PhoneUIQtViewAdapter::removeDialpad(void)
 	?defaultToolbarResourceId@PhoneResourceAdapter@@QBEHXZ @ 2 NONAME ; int PhoneResourceAdapter::defaultToolbarResourceId(void) const
-	??1PhoneUIQtViewAdapter@@UAE@XZ @ 3 NONAME ; PhoneUIQtViewAdapter::~PhoneUIQtViewAdapter(void)
-	?createEmergencyCallHeader@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 4 NONAME ; void PhoneUIQtViewAdapter::createEmergencyCallHeader(int, class TPhoneCommandParam *)
-	??0PhoneResourceAdapter@@IAE@PAVQObject@@@Z @ 5 NONAME ; PhoneResourceAdapter::PhoneResourceAdapter(class QObject *)
-	?convertToString@PhoneResourceAdapter@@QBE?AVQString@@H@Z @ 6 NONAME ; class QString PhoneResourceAdapter::convertToString(int) const
+	?openContacts@PhoneUIQtViewAdapter@@AAEXXZ @ 3 NONAME ; void PhoneUIQtViewAdapter::openContacts(void)
+	??1PhoneUIQtViewAdapter@@UAE@XZ @ 4 NONAME ; PhoneUIQtViewAdapter::~PhoneUIQtViewAdapter(void)
+	?createEmergencyCallHeader@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 5 NONAME ; void PhoneUIQtViewAdapter::createEmergencyCallHeader(int, class TPhoneCommandParam *)
+	??0PhoneResourceAdapter@@IAE@PAVQObject@@@Z @ 6 NONAME ; PhoneResourceAdapter::PhoneResourceAdapter(class QObject *)
 	?addToConference@PhoneUIQtViewAdapter@@AAEXXZ @ 7 NONAME ; void PhoneUIQtViewAdapter::addToConference(void)
-	?createConferenceBubble@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 8 NONAME ; void PhoneUIQtViewAdapter::createConferenceBubble(int, class TPhoneCommandParam *)
-	?callsExists@PhoneUIQtViewAdapter@@AAE_NHH@Z @ 9 NONAME ; bool PhoneUIQtViewAdapter::callsExists(int, int)
-	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHHAAVTDesC16@@@Z @ 10 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, int, class TDesC16 &)
-	?tr@PhoneResourceAdapter@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString PhoneResourceAdapter::tr(char const *, char const *, int)
-	?convert@PhoneResourceAdapter@@QAA?AV?$QMap@W4ActionType@PhoneAction@@PAV2@@@HZZ @ 12 NONAME ; class QMap<enum PhoneAction::ActionType, class PhoneAction *> PhoneResourceAdapter::convert(int, ...)
-	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHH@Z @ 13 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, int)
-	?noteController@PhoneUIQtViewAdapter@@QBEPAVPhoneNoteController@@XZ @ 14 NONAME ; class PhoneNoteController * PhoneUIQtViewAdapter::noteController(void) const
-	??_EPhoneResourceAdapter@@UAE@I@Z @ 15 NONAME ; PhoneResourceAdapter::~PhoneResourceAdapter(unsigned int)
-	?tr@PhoneResourceAdapter@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString PhoneResourceAdapter::tr(char const *, char const *)
-	?trUtf8@PhoneResourceAdapter@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString PhoneResourceAdapter::trUtf8(char const *, char const *)
-	?getStaticMetaObject@PhoneResourceAdapter@@SAABUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const & PhoneResourceAdapter::getStaticMetaObject(void)
-	?getDialpadStringLength@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 19 NONAME ; void PhoneUIQtViewAdapter::getDialpadStringLength(class TPhoneCommandParam *)
-	?trUtf8@PhoneResourceAdapter@@SA?AVQString@@PBD0H@Z @ 20 NONAME ; class QString PhoneResourceAdapter::trUtf8(char const *, char const *, int)
-	?convertCommandToString@PhoneResourceAdapter@@QBE?AVQString@@H@Z @ 21 NONAME ; class QString PhoneResourceAdapter::convertCommandToString(int) const
-	?activeCallCount@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 22 NONAME ; void PhoneUIQtViewAdapter::activeCallCount(class TPhoneCommandParam *)
-	?setTouchButtons@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 23 NONAME ; void PhoneUIQtViewAdapter::setTouchButtons(class TPhoneCommandParam *)
-	?setExpandActions@PhoneUIQtViewAdapter@@AAEXXZ @ 24 NONAME ; void PhoneUIQtViewAdapter::setExpandActions(void)
-	?qt_metacast@PhoneUIQtViewAdapter@@UAEPAXPBD@Z @ 25 NONAME ; void * PhoneUIQtViewAdapter::qt_metacast(char const *)
-	?Instance@PhoneResourceAdapter@@SAPAV1@PAVQObject@@@Z @ 26 NONAME ; class PhoneResourceAdapter * PhoneResourceAdapter::Instance(class QObject *)
-	?setTopApplication@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 27 NONAME ; void PhoneUIQtViewAdapter::setTopApplication(class TPhoneCommandParam *)
-	?getNumberFromDialpad@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 28 NONAME ; void PhoneUIQtViewAdapter::getNumberFromDialpad(class TPhoneCommandParam *)
-	?isConference@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 29 NONAME ; void PhoneUIQtViewAdapter::isConference(class TPhoneCommandParam *)
-	?convertToString@PhoneResourceAdapter@@QBE?AVQString@@HABV2@@Z @ 30 NONAME ; class QString PhoneResourceAdapter::convertToString(int, class QString const &) const
-	?qt_metacast@PhoneResourceAdapter@@UAEPAXPBD@Z @ 31 NONAME ; void * PhoneResourceAdapter::qt_metacast(char const *)
-	??0PhoneUIQtViewAdapter@@QAE@AAVPhoneUIQtViewIF@@PAVQObject@@@Z @ 32 NONAME ; PhoneUIQtViewAdapter::PhoneUIQtViewAdapter(class PhoneUIQtViewIF &, class QObject *)
-	?ExecuteCommand@PhoneUIQtViewAdapter@@UAEXHPAVTPhoneCommandParam@@@Z @ 33 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommand(int, class TPhoneCommandParam *)
-	?keyReleased@PhoneUIQtViewAdapter@@AAEXPAVQKeyEvent@@@Z @ 34 NONAME ; void PhoneUIQtViewAdapter::keyReleased(class QKeyEvent *)
-	?bringToForeground@PhoneUIQtViewAdapter@@AAEXXZ @ 35 NONAME ; void PhoneUIQtViewAdapter::bringToForeground(void)
-	??_EPhoneUIQtViewAdapter@@UAE@I@Z @ 36 NONAME ; PhoneUIQtViewAdapter::~PhoneUIQtViewAdapter(unsigned int)
-	?buttonsController@PhoneResourceAdapter@@QAEPAVPhoneUIQtButtonsController@@XZ @ 37 NONAME ; class PhoneUIQtButtonsController * PhoneResourceAdapter::buttonsController(void)
-	?updateCallHeaderState@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 38 NONAME ; void PhoneUIQtViewAdapter::updateCallHeaderState(int, class TPhoneCommandParam *)
-	?setExpandedConferenceCallHeader@PhoneUIQtViewAdapter@@AAEXXZ @ 39 NONAME ; void PhoneUIQtViewAdapter::setExpandedConferenceCallHeader(void)
-	?HandleCommandL@PhoneUIQtViewAdapter@@UAEHHPAVTPhoneCommandParam@@@Z @ 40 NONAME ; int PhoneUIQtViewAdapter::HandleCommandL(int, class TPhoneCommandParam *)
-	?setDialpadMenu@PhoneUIQtViewAdapter@@AAEXXZ @ 41 NONAME ; void PhoneUIQtViewAdapter::setDialpadMenu(void)
-	?callIdByState@PhoneUIQtViewAdapter@@AAEHPAVTPhoneCommandParam@@@Z @ 42 NONAME ; int PhoneUIQtViewAdapter::callIdByState(class TPhoneCommandParam *)
-	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHPAVTPhoneCommandParam@@@Z @ 43 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, class TPhoneCommandParam *)
-	?setDialpadVisibility@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 44 NONAME ; void PhoneUIQtViewAdapter::setDialpadVisibility(class TPhoneCommandParam *)
-	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHHPAVTPhoneCommandParam@@@Z @ 45 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, int, class TPhoneCommandParam *)
-	?removeConferenceBubble@PhoneUIQtViewAdapter@@AAEXXZ @ 46 NONAME ; void PhoneUIQtViewAdapter::removeConferenceBubble(void)
-	?showGlobalNote@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 47 NONAME ; void PhoneUIQtViewAdapter::showGlobalNote(class TPhoneCommandParam *)
-	?getSelectedConferenceMember@PhoneUIQtViewAdapter@@AAEHPAVTPhoneCommandParam@@@Z @ 48 NONAME ; int PhoneUIQtViewAdapter::getSelectedConferenceMember(class TPhoneCommandParam *)
-	?metaObject@PhoneUIQtViewAdapter@@UBEPBUQMetaObject@@XZ @ 49 NONAME ; struct QMetaObject const * PhoneUIQtViewAdapter::metaObject(void) const
-	?dialpadClosed@PhoneUIQtViewAdapter@@AAEXXZ @ 50 NONAME ; void PhoneUIQtViewAdapter::dialpadClosed(void)
-	?removeAllCallHeaders@PhoneUIQtViewAdapter@@AAEXXZ @ 51 NONAME ; void PhoneUIQtViewAdapter::removeAllCallHeaders(void)
-	?idleAppUid@PhoneUIQtViewAdapter@@AAEHXZ @ 52 NONAME ; int PhoneUIQtViewAdapter::idleAppUid(void)
-	?setCallHoldFlag@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 53 NONAME ; void PhoneUIQtViewAdapter::setCallHoldFlag(class TPhoneCommandParam *)
-	?setPrivateFromConference@PhoneUIQtViewAdapter@@AAEXH@Z @ 54 NONAME ; void PhoneUIQtViewAdapter::setPrivateFromConference(int)
-	?setCallMenu@PhoneUIQtViewAdapter@@AAEXXZ @ 55 NONAME ; void PhoneUIQtViewAdapter::setCallMenu(void)
-	?setAudioVolumeSliderValue@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 56 NONAME ; void PhoneUIQtViewAdapter::setAudioVolumeSliderValue(class TPhoneCommandParam *)
-	?qt_metacall@PhoneUIQtViewAdapter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 57 NONAME ; int PhoneUIQtViewAdapter::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??1PhoneResourceAdapter@@UAE@XZ @ 58 NONAME ; PhoneResourceAdapter::~PhoneResourceAdapter(void)
-	?removeCallFromConference@PhoneUIQtViewAdapter@@AAEXH@Z @ 59 NONAME ; void PhoneUIQtViewAdapter::removeCallFromConference(int)
-	?tr@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0H@Z @ 60 NONAME ; class QString PhoneUIQtViewAdapter::tr(char const *, char const *, int)
-	?staticMetaObject@PhoneResourceAdapter@@2UQMetaObject@@B @ 61 NONAME ; struct QMetaObject const PhoneResourceAdapter::staticMetaObject
-	?staticMetaObject@PhoneUIQtViewAdapter@@2UQMetaObject@@B @ 62 NONAME ; struct QMetaObject const PhoneUIQtViewAdapter::staticMetaObject
-	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXH@Z @ 63 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int)
-	?trUtf8@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0H@Z @ 64 NONAME ; class QString PhoneUIQtViewAdapter::trUtf8(char const *, char const *, int)
-	?setMuteIndication@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 65 NONAME ; void PhoneUIQtViewAdapter::setMuteIndication(class TPhoneCommandParam *)
-	?HandleCommandL@PhoneUIQtViewAdapter@@UAEHH@Z @ 66 NONAME ; int PhoneUIQtViewAdapter::HandleCommandL(int)
-	?showNote@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 67 NONAME ; void PhoneUIQtViewAdapter::showNote(class TPhoneCommandParam *)
-	?FetchContent@PhoneUIQtViewAdapter@@UAEABVTDesC16@@XZ @ 68 NONAME ; class TDesC16 const & PhoneUIQtViewAdapter::FetchContent(void)
-	?writeAudioVolumeLevel@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 69 NONAME ; void PhoneUIQtViewAdapter::writeAudioVolumeLevel(class TPhoneCommandParam *)
-	?conferenceCallId@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 70 NONAME ; void PhoneUIQtViewAdapter::conferenceCallId(int, class TPhoneCommandParam *)
-	?setMenu@PhoneUIQtViewAdapter@@AAEXXZ @ 71 NONAME ; void PhoneUIQtViewAdapter::setMenu(void)
-	?trUtf8@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0@Z @ 72 NONAME ; class QString PhoneUIQtViewAdapter::trUtf8(char const *, char const *)
-	?tr@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString PhoneUIQtViewAdapter::tr(char const *, char const *)
-	?getStaticMetaObject@PhoneUIQtViewAdapter@@SAABUQMetaObject@@XZ @ 74 NONAME ; struct QMetaObject const & PhoneUIQtViewAdapter::getStaticMetaObject(void)
-	?updateCallHeaderRemoteInfoAndLabel@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 75 NONAME ; void PhoneUIQtViewAdapter::updateCallHeaderRemoteInfoAndLabel(int, class TPhoneCommandParam *)
-	?updateCallHeaderRemoteInfo@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 76 NONAME ; void PhoneUIQtViewAdapter::updateCallHeaderRemoteInfo(int, class TPhoneCommandParam *)
-	?qt_metacall@PhoneResourceAdapter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 77 NONAME ; int PhoneResourceAdapter::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?callHoldFlag@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 78 NONAME ; void PhoneUIQtViewAdapter::callHoldFlag(class TPhoneCommandParam *)
-	?setToolbarButtons@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 79 NONAME ; void PhoneUIQtViewAdapter::setToolbarButtons(class TPhoneCommandParam *)
-	?setAudioPath@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 80 NONAME ; void PhoneUIQtViewAdapter::setAudioPath(class TPhoneCommandParam *)
-	?expandedBubbleCallId@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 81 NONAME ; void PhoneUIQtViewAdapter::expandedBubbleCallId(class TPhoneCommandParam *)
-	?openDialpad@PhoneUIQtViewAdapter@@AAEXXZ @ 82 NONAME ; void PhoneUIQtViewAdapter::openDialpad(void)
-	?createCallHeader@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 83 NONAME ; void PhoneUIQtViewAdapter::createCallHeader(int, class TPhoneCommandParam *)
-	?ExecuteCommand@PhoneUIQtViewAdapter@@UAEXH@Z @ 84 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommand(int)
-	?metaObject@PhoneResourceAdapter@@UBEPBUQMetaObject@@XZ @ 85 NONAME ; struct QMetaObject const * PhoneResourceAdapter::metaObject(void) const
-	?setParticipantListActions@PhoneUIQtViewAdapter@@AAEXXZ @ 86 NONAME ; void PhoneUIQtViewAdapter::setParticipantListActions(void)
-	?convertToHbActions@PhoneResourceAdapter@@QBE?AV?$QList@PAVHbAction@@@@H@Z @ 87 NONAME ; class QList<class HbAction *> PhoneResourceAdapter::convertToHbActions(int) const
-	?convertDuration@PhoneUIQtViewAdapter@@AAE?AVQString@@H@Z @ 88 NONAME ; class QString PhoneUIQtViewAdapter::convertDuration(int)
-	?setBubbleSelectionFlag@PhoneUIQtViewAdapter@@AAEXXZ @ 89 NONAME ; void PhoneUIQtViewAdapter::setBubbleSelectionFlag(void)
-	?handleCipheringInfoChange@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 90 NONAME ; void PhoneUIQtViewAdapter::handleCipheringInfoChange(int, class TPhoneCommandParam *)
-	?openContacts@PhoneUIQtViewAdapter@@AAEXXZ @ 91 NONAME ; void PhoneUIQtViewAdapter::openContacts(void)
-	?setHidden@PhoneUIQtViewAdapter@@AAEX_N@Z @ 92 NONAME ; void PhoneUIQtViewAdapter::setHidden(bool)
-	?handleWindowDeactivated@PhoneUIQtViewAdapter@@AAEXXZ @ 93 NONAME ; void PhoneUIQtViewAdapter::handleWindowDeactivated(void)
-	?SetHiddenL@PhoneUIQtViewAdapter@@AAEX_N@Z @ 94 NONAME ; void PhoneUIQtViewAdapter::SetHiddenL(bool)
-	?handleWindowActivated@PhoneUIQtViewAdapter@@AAEXXZ @ 95 NONAME ; void PhoneUIQtViewAdapter::handleWindowActivated(void)
-	?hideDeviceDialogs@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 96 NONAME ; void PhoneUIQtViewAdapter::hideDeviceDialogs(class TPhoneCommandParam *)
-	?convertToToolBarCommandList@PhoneResourceAdapter@@QBE?AV?$QList@VToolBarItem@PhoneAction@@@@H@Z @ 97 NONAME ; class QList<class PhoneAction::ToolBarItem> PhoneResourceAdapter::convertToToolBarCommandList(int) const
-	?openLogs@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 98 NONAME ; void PhoneUIQtViewAdapter::openLogs(class TPhoneCommandParam *)
+	?convertDuration@PhoneUIQtViewAdapter@@AAE?AVQString@@H@Z @ 8 NONAME ; class QString PhoneUIQtViewAdapter::convertDuration(int)
+	?setBubbleSelectionFlag@PhoneUIQtViewAdapter@@AAEXXZ @ 9 NONAME ; void PhoneUIQtViewAdapter::setBubbleSelectionFlag(void)
+	?createConferenceBubble@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 10 NONAME ; void PhoneUIQtViewAdapter::createConferenceBubble(int, class TPhoneCommandParam *)
+	?convertToStringWithParam@PhoneResourceAdapter@@QBE?AVQString@@HABV2@@Z @ 11 NONAME ; class QString PhoneResourceAdapter::convertToStringWithParam(int, class QString const &) const
+	?callsExists@PhoneUIQtViewAdapter@@AAE_NHH@Z @ 12 NONAME ; bool PhoneUIQtViewAdapter::callsExists(int, int)
+	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHHAAVTDesC16@@@Z @ 13 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, int, class TDesC16 &)
+	?tr@PhoneResourceAdapter@@SA?AVQString@@PBD0H@Z @ 14 NONAME ; class QString PhoneResourceAdapter::tr(char const *, char const *, int)
+	?convert@PhoneResourceAdapter@@QAA?AV?$QMap@W4ActionType@PhoneAction@@PAV2@@@HZZ @ 15 NONAME ; class QMap<enum PhoneAction::ActionType, class PhoneAction *> PhoneResourceAdapter::convert(int, ...)
+	?convertToHbActions@PhoneResourceAdapter@@QBE?AV?$QList@PAVHbAction@@@@H@Z @ 16 NONAME ; class QList<class HbAction *> PhoneResourceAdapter::convertToHbActions(int) const
+	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHH@Z @ 17 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, int)
+	?noteController@PhoneUIQtViewAdapter@@QBEPAVPhoneNoteController@@XZ @ 18 NONAME ; class PhoneNoteController * PhoneUIQtViewAdapter::noteController(void) const
+	??_EPhoneResourceAdapter@@UAE@I@Z @ 19 NONAME ; PhoneResourceAdapter::~PhoneResourceAdapter(unsigned int)
+	?tr@PhoneResourceAdapter@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString PhoneResourceAdapter::tr(char const *, char const *)
+	?trUtf8@PhoneResourceAdapter@@SA?AVQString@@PBD0@Z @ 21 NONAME ; class QString PhoneResourceAdapter::trUtf8(char const *, char const *)
+	?getStaticMetaObject@PhoneResourceAdapter@@SAABUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const & PhoneResourceAdapter::getStaticMetaObject(void)
+	?getDialpadStringLength@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 23 NONAME ; void PhoneUIQtViewAdapter::getDialpadStringLength(class TPhoneCommandParam *)
+	?trUtf8@PhoneResourceAdapter@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString PhoneResourceAdapter::trUtf8(char const *, char const *, int)
+	?convertCommandToString@PhoneResourceAdapter@@QBE?AVQString@@H@Z @ 25 NONAME ; class QString PhoneResourceAdapter::convertCommandToString(int) const
+	?activeCallCount@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 26 NONAME ; void PhoneUIQtViewAdapter::activeCallCount(class TPhoneCommandParam *)
+	?setTouchButtons@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 27 NONAME ; void PhoneUIQtViewAdapter::setTouchButtons(class TPhoneCommandParam *)
+	?setExpandActions@PhoneUIQtViewAdapter@@AAEXXZ @ 28 NONAME ; void PhoneUIQtViewAdapter::setExpandActions(void)
+	?qt_metacast@PhoneUIQtViewAdapter@@UAEPAXPBD@Z @ 29 NONAME ; void * PhoneUIQtViewAdapter::qt_metacast(char const *)
+	?Instance@PhoneResourceAdapter@@SAPAV1@PAVQObject@@@Z @ 30 NONAME ; class PhoneResourceAdapter * PhoneResourceAdapter::Instance(class QObject *)
+	?handleCipheringInfoChange@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 31 NONAME ; void PhoneUIQtViewAdapter::handleCipheringInfoChange(int, class TPhoneCommandParam *)
+	?setTopApplication@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 32 NONAME ; void PhoneUIQtViewAdapter::setTopApplication(class TPhoneCommandParam *)
+	?getNumberFromDialpad@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 33 NONAME ; void PhoneUIQtViewAdapter::getNumberFromDialpad(class TPhoneCommandParam *)
+	?openLogs@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 34 NONAME ; void PhoneUIQtViewAdapter::openLogs(class TPhoneCommandParam *)
+	?isConference@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 35 NONAME ; void PhoneUIQtViewAdapter::isConference(class TPhoneCommandParam *)
+	?convertToString@PhoneResourceAdapter@@QBE?AVQString@@HABV2@@Z @ 36 NONAME ; class QString PhoneResourceAdapter::convertToString(int, class QString const &) const
+	?qt_metacast@PhoneResourceAdapter@@UAEPAXPBD@Z @ 37 NONAME ; void * PhoneResourceAdapter::qt_metacast(char const *)
+	??0PhoneUIQtViewAdapter@@QAE@AAVPhoneUIQtViewIF@@PAVQObject@@@Z @ 38 NONAME ; PhoneUIQtViewAdapter::PhoneUIQtViewAdapter(class PhoneUIQtViewIF &, class QObject *)
+	?ExecuteCommand@PhoneUIQtViewAdapter@@UAEXHPAVTPhoneCommandParam@@@Z @ 39 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommand(int, class TPhoneCommandParam *)
+	?keyReleased@PhoneUIQtViewAdapter@@AAEXPAVQKeyEvent@@@Z @ 40 NONAME ; void PhoneUIQtViewAdapter::keyReleased(class QKeyEvent *)
+	?setCommonButtonFlags@PhoneUIQtViewAdapter@@AAEXXZ @ 41 NONAME ; void PhoneUIQtViewAdapter::setCommonButtonFlags(void)
+	?bringToForeground@PhoneUIQtViewAdapter@@AAEXXZ @ 42 NONAME ; void PhoneUIQtViewAdapter::bringToForeground(void)
+	??_EPhoneUIQtViewAdapter@@UAE@I@Z @ 43 NONAME ; PhoneUIQtViewAdapter::~PhoneUIQtViewAdapter(unsigned int)
+	?buttonsController@PhoneResourceAdapter@@QAEPAVPhoneUIQtButtonsController@@XZ @ 44 NONAME ; class PhoneUIQtButtonsController * PhoneResourceAdapter::buttonsController(void)
+	?convertKey@PhoneUIQtViewAdapter@@AAE_NW4TKeyCode@@AAW4Key@Qt@@@Z @ 45 NONAME ; bool PhoneUIQtViewAdapter::convertKey(enum TKeyCode, enum Qt::Key &)
+	?updateCallHeaderState@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 46 NONAME ; void PhoneUIQtViewAdapter::updateCallHeaderState(int, class TPhoneCommandParam *)
+	?setExpandedConferenceCallHeader@PhoneUIQtViewAdapter@@AAEXXZ @ 47 NONAME ; void PhoneUIQtViewAdapter::setExpandedConferenceCallHeader(void)
+	?HandleCommandL@PhoneUIQtViewAdapter@@UAEHHPAVTPhoneCommandParam@@@Z @ 48 NONAME ; int PhoneUIQtViewAdapter::HandleCommandL(int, class TPhoneCommandParam *)
+	?setHidden@PhoneUIQtViewAdapter@@AAEX_N@Z @ 49 NONAME ; void PhoneUIQtViewAdapter::setHidden(bool)
+	?setDialpadMenu@PhoneUIQtViewAdapter@@AAEXXZ @ 50 NONAME ; void PhoneUIQtViewAdapter::setDialpadMenu(void)
+	?callIdByState@PhoneUIQtViewAdapter@@AAEHPAVTPhoneCommandParam@@@Z @ 51 NONAME ; int PhoneUIQtViewAdapter::callIdByState(class TPhoneCommandParam *)
+	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHPAVTPhoneCommandParam@@@Z @ 52 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, class TPhoneCommandParam *)
+	?setDialpadVisibility@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 53 NONAME ; void PhoneUIQtViewAdapter::setDialpadVisibility(class TPhoneCommandParam *)
+	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXHHPAVTPhoneCommandParam@@@Z @ 54 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int, int, class TPhoneCommandParam *)
+	?removeConferenceBubble@PhoneUIQtViewAdapter@@AAEXXZ @ 55 NONAME ; void PhoneUIQtViewAdapter::removeConferenceBubble(void)
+	?showGlobalNote@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 56 NONAME ; void PhoneUIQtViewAdapter::showGlobalNote(class TPhoneCommandParam *)
+	?handleWindowDeactivated@PhoneUIQtViewAdapter@@AAEXXZ @ 57 NONAME ; void PhoneUIQtViewAdapter::handleWindowDeactivated(void)
+	?getSelectedConferenceMember@PhoneUIQtViewAdapter@@AAEHPAVTPhoneCommandParam@@@Z @ 58 NONAME ; int PhoneUIQtViewAdapter::getSelectedConferenceMember(class TPhoneCommandParam *)
+	?metaObject@PhoneUIQtViewAdapter@@UBEPBUQMetaObject@@XZ @ 59 NONAME ; struct QMetaObject const * PhoneUIQtViewAdapter::metaObject(void) const
+	?dialpadClosed@PhoneUIQtViewAdapter@@AAEXXZ @ 60 NONAME ; void PhoneUIQtViewAdapter::dialpadClosed(void)
+	?removeAllCallHeaders@PhoneUIQtViewAdapter@@AAEXXZ @ 61 NONAME ; void PhoneUIQtViewAdapter::removeAllCallHeaders(void)
+	?setCallHoldFlag@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 62 NONAME ; void PhoneUIQtViewAdapter::setCallHoldFlag(class TPhoneCommandParam *)
+	?SetHiddenL@PhoneUIQtViewAdapter@@AAEX_N@Z @ 63 NONAME ; void PhoneUIQtViewAdapter::SetHiddenL(bool)
+	?hideDeviceDialogs@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 64 NONAME ; void PhoneUIQtViewAdapter::hideDeviceDialogs(class TPhoneCommandParam *)
+	?idleAppUid@PhoneUIQtViewAdapter@@AAEHXZ @ 65 NONAME ; int PhoneUIQtViewAdapter::idleAppUid(void)
+	?setPrivateFromConference@PhoneUIQtViewAdapter@@AAEXH@Z @ 66 NONAME ; void PhoneUIQtViewAdapter::setPrivateFromConference(int)
+	?setCallMenu@PhoneUIQtViewAdapter@@AAEXXZ @ 67 NONAME ; void PhoneUIQtViewAdapter::setCallMenu(void)
+	?setAudioVolumeSliderValue@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 68 NONAME ; void PhoneUIQtViewAdapter::setAudioVolumeSliderValue(class TPhoneCommandParam *)
+	?qt_metacall@PhoneUIQtViewAdapter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 69 NONAME ; int PhoneUIQtViewAdapter::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??1PhoneResourceAdapter@@UAE@XZ @ 70 NONAME ; PhoneResourceAdapter::~PhoneResourceAdapter(void)
+	?removeCallFromConference@PhoneUIQtViewAdapter@@AAEXH@Z @ 71 NONAME ; void PhoneUIQtViewAdapter::removeCallFromConference(int)
+	?tr@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0H@Z @ 72 NONAME ; class QString PhoneUIQtViewAdapter::tr(char const *, char const *, int)
+	?staticMetaObject@PhoneResourceAdapter@@2UQMetaObject@@B @ 73 NONAME ; struct QMetaObject const PhoneResourceAdapter::staticMetaObject
+	?staticMetaObject@PhoneUIQtViewAdapter@@2UQMetaObject@@B @ 74 NONAME ; struct QMetaObject const PhoneUIQtViewAdapter::staticMetaObject
+	?ExecuteCommandL@PhoneUIQtViewAdapter@@UAEXH@Z @ 75 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommandL(int)
+	?trUtf8@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0H@Z @ 76 NONAME ; class QString PhoneUIQtViewAdapter::trUtf8(char const *, char const *, int)
+	?setMuteIndication@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 77 NONAME ; void PhoneUIQtViewAdapter::setMuteIndication(class TPhoneCommandParam *)
+	?convertToToolBarCommandList@PhoneResourceAdapter@@QBE?AV?$QList@VToolBarItem@PhoneAction@@@@H@Z @ 78 NONAME ; class QList<class PhoneAction::ToolBarItem> PhoneResourceAdapter::convertToToolBarCommandList(int) const
+	?HandleCommandL@PhoneUIQtViewAdapter@@UAEHH@Z @ 79 NONAME ; int PhoneUIQtViewAdapter::HandleCommandL(int)
+	?showNote@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 80 NONAME ; void PhoneUIQtViewAdapter::showNote(class TPhoneCommandParam *)
+	?FetchContent@PhoneUIQtViewAdapter@@UAEABVTDesC16@@XZ @ 81 NONAME ; class TDesC16 const & PhoneUIQtViewAdapter::FetchContent(void)
+	?writeAudioVolumeLevel@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 82 NONAME ; void PhoneUIQtViewAdapter::writeAudioVolumeLevel(class TPhoneCommandParam *)
+	?conferenceCallId@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 83 NONAME ; void PhoneUIQtViewAdapter::conferenceCallId(int, class TPhoneCommandParam *)
+	?setMenu@PhoneUIQtViewAdapter@@AAEXXZ @ 84 NONAME ; void PhoneUIQtViewAdapter::setMenu(void)
+	?trUtf8@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0@Z @ 85 NONAME ; class QString PhoneUIQtViewAdapter::trUtf8(char const *, char const *)
+	?tr@PhoneUIQtViewAdapter@@SA?AVQString@@PBD0@Z @ 86 NONAME ; class QString PhoneUIQtViewAdapter::tr(char const *, char const *)
+	?getStaticMetaObject@PhoneUIQtViewAdapter@@SAABUQMetaObject@@XZ @ 87 NONAME ; struct QMetaObject const & PhoneUIQtViewAdapter::getStaticMetaObject(void)
+	?updateCallHeaderRemoteInfoAndLabel@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 88 NONAME ; void PhoneUIQtViewAdapter::updateCallHeaderRemoteInfoAndLabel(int, class TPhoneCommandParam *)
+	?updateCallHeaderRemoteInfo@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 89 NONAME ; void PhoneUIQtViewAdapter::updateCallHeaderRemoteInfo(int, class TPhoneCommandParam *)
+	?qt_metacall@PhoneResourceAdapter@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 90 NONAME ; int PhoneResourceAdapter::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?callHoldFlag@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 91 NONAME ; void PhoneUIQtViewAdapter::callHoldFlag(class TPhoneCommandParam *)
+	?setToolbarButtons@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 92 NONAME ; void PhoneUIQtViewAdapter::setToolbarButtons(class TPhoneCommandParam *)
+	?setAudioPath@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 93 NONAME ; void PhoneUIQtViewAdapter::setAudioPath(class TPhoneCommandParam *)
+	?expandedBubbleCallId@PhoneUIQtViewAdapter@@AAEXPAVTPhoneCommandParam@@@Z @ 94 NONAME ; void PhoneUIQtViewAdapter::expandedBubbleCallId(class TPhoneCommandParam *)
+	?openDialpad@PhoneUIQtViewAdapter@@AAEXXZ @ 95 NONAME ; void PhoneUIQtViewAdapter::openDialpad(void)
+	?handleWindowActivated@PhoneUIQtViewAdapter@@AAEXXZ @ 96 NONAME ; void PhoneUIQtViewAdapter::handleWindowActivated(void)
+	?createCallHeader@PhoneUIQtViewAdapter@@AAEXHPAVTPhoneCommandParam@@@Z @ 97 NONAME ; void PhoneUIQtViewAdapter::createCallHeader(int, class TPhoneCommandParam *)
+	?ExecuteCommand@PhoneUIQtViewAdapter@@UAEXH@Z @ 98 NONAME ; void PhoneUIQtViewAdapter::ExecuteCommand(int)
+	?metaObject@PhoneResourceAdapter@@UBEPBUQMetaObject@@XZ @ 99 NONAME ; struct QMetaObject const * PhoneResourceAdapter::metaObject(void) const
+	?setParticipantListActions@PhoneUIQtViewAdapter@@AAEXXZ @ 100 NONAME ; void PhoneUIQtViewAdapter::setParticipantListActions(void)
 
--- a/phoneapp/phoneuiqtviewadapter/eabi/phoneuiqtviewadapteru.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/eabi/phoneuiqtviewadapteru.def	Tue Jul 06 14:15:47 2010 +0300
@@ -11,102 +11,104 @@
 	_ZN20PhoneResourceAdapterD0Ev @ 10 NONAME
 	_ZN20PhoneResourceAdapterD1Ev @ 11 NONAME
 	_ZN20PhoneResourceAdapterD2Ev @ 12 NONAME
-	_ZN20PhoneUIQtViewAdapter10idleAppUidEv @ 13 NONAME
-	_ZN20PhoneUIQtViewAdapter11callsExistsEii @ 14 NONAME
-	_ZN20PhoneUIQtViewAdapter11keyReleasedEP9QKeyEvent @ 15 NONAME
-	_ZN20PhoneUIQtViewAdapter11openDialpadEv @ 16 NONAME
-	_ZN20PhoneUIQtViewAdapter11qt_metacallEN11QMetaObject4CallEiPPv @ 17 NONAME
-	_ZN20PhoneUIQtViewAdapter11qt_metacastEPKc @ 18 NONAME
-	_ZN20PhoneUIQtViewAdapter11setCallMenuEv @ 19 NONAME
-	_ZN20PhoneUIQtViewAdapter12FetchContentEv @ 20 NONAME
-	_ZN20PhoneUIQtViewAdapter12callHoldFlagEP18TPhoneCommandParam @ 21 NONAME
-	_ZN20PhoneUIQtViewAdapter12isConferenceEP18TPhoneCommandParam @ 22 NONAME
-	_ZN20PhoneUIQtViewAdapter12setAudioPathEP18TPhoneCommandParam @ 23 NONAME
-	_ZN20PhoneUIQtViewAdapter13callIdByStateEP18TPhoneCommandParam @ 24 NONAME
-	_ZN20PhoneUIQtViewAdapter13dialpadClosedEv @ 25 NONAME
-	_ZN20PhoneUIQtViewAdapter13removeDialpadEv @ 26 NONAME
-	_ZN20PhoneUIQtViewAdapter14ExecuteCommandEi @ 27 NONAME
-	_ZN20PhoneUIQtViewAdapter14ExecuteCommandEiP18TPhoneCommandParam @ 28 NONAME
-	_ZN20PhoneUIQtViewAdapter14HandleCommandLEi @ 29 NONAME
-	_ZN20PhoneUIQtViewAdapter14HandleCommandLEiP18TPhoneCommandParam @ 30 NONAME
-	_ZN20PhoneUIQtViewAdapter14setDialpadMenuEv @ 31 NONAME
-	_ZN20PhoneUIQtViewAdapter14showGlobalNoteEP18TPhoneCommandParam @ 32 NONAME
-	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEi @ 33 NONAME
-	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEiP18TPhoneCommandParam @ 34 NONAME
-	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEii @ 35 NONAME
-	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEiiP18TPhoneCommandParam @ 36 NONAME
-	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEiiR7TDesC16 @ 37 NONAME
-	_ZN20PhoneUIQtViewAdapter15activeCallCountEP18TPhoneCommandParam @ 38 NONAME
-	_ZN20PhoneUIQtViewAdapter15addToConferenceEv @ 39 NONAME
-	_ZN20PhoneUIQtViewAdapter15setCallHoldFlagEP18TPhoneCommandParam @ 40 NONAME
-	_ZN20PhoneUIQtViewAdapter15setTouchButtonsEP18TPhoneCommandParam @ 41 NONAME
-	_ZN20PhoneUIQtViewAdapter16conferenceCallIdEiP18TPhoneCommandParam @ 42 NONAME
-	_ZN20PhoneUIQtViewAdapter16createCallHeaderEiP18TPhoneCommandParam @ 43 NONAME
-	_ZN20PhoneUIQtViewAdapter16setExpandActionsEv @ 44 NONAME
-	_ZN20PhoneUIQtViewAdapter16staticMetaObjectE @ 45 NONAME DATA 16
-	_ZN20PhoneUIQtViewAdapter17bringToForegroundEv @ 46 NONAME
-	_ZN20PhoneUIQtViewAdapter17setMuteIndicationEP18TPhoneCommandParam @ 47 NONAME
-	_ZN20PhoneUIQtViewAdapter17setToolbarButtonsEP18TPhoneCommandParam @ 48 NONAME
-	_ZN20PhoneUIQtViewAdapter17setTopApplicationEP18TPhoneCommandParam @ 49 NONAME
-	_ZN20PhoneUIQtViewAdapter19getStaticMetaObjectEv @ 50 NONAME
-	_ZN20PhoneUIQtViewAdapter20expandedBubbleCallIdEP18TPhoneCommandParam @ 51 NONAME
-	_ZN20PhoneUIQtViewAdapter20getNumberFromDialpadEP18TPhoneCommandParam @ 52 NONAME
-	_ZN20PhoneUIQtViewAdapter20removeAllCallHeadersEv @ 53 NONAME
-	_ZN20PhoneUIQtViewAdapter20setDialpadVisibilityEP18TPhoneCommandParam @ 54 NONAME
-	_ZN20PhoneUIQtViewAdapter21updateCallHeaderStateEiP18TPhoneCommandParam @ 55 NONAME
-	_ZN20PhoneUIQtViewAdapter21writeAudioVolumeLevelEP18TPhoneCommandParam @ 56 NONAME
-	_ZN20PhoneUIQtViewAdapter22createConferenceBubbleEiP18TPhoneCommandParam @ 57 NONAME
-	_ZN20PhoneUIQtViewAdapter22getDialpadStringLengthEP18TPhoneCommandParam @ 58 NONAME
-	_ZN20PhoneUIQtViewAdapter22removeConferenceBubbleEv @ 59 NONAME
-	_ZN20PhoneUIQtViewAdapter24removeCallFromConferenceEi @ 60 NONAME
-	_ZN20PhoneUIQtViewAdapter24setPrivateFromConferenceEi @ 61 NONAME
-	_ZN20PhoneUIQtViewAdapter25createEmergencyCallHeaderEiP18TPhoneCommandParam @ 62 NONAME
-	_ZN20PhoneUIQtViewAdapter25setAudioVolumeSliderValueEP18TPhoneCommandParam @ 63 NONAME
-	_ZN20PhoneUIQtViewAdapter25setParticipantListActionsEv @ 64 NONAME
-	_ZN20PhoneUIQtViewAdapter26updateCallHeaderRemoteInfoEiP18TPhoneCommandParam @ 65 NONAME
-	_ZN20PhoneUIQtViewAdapter27getSelectedConferenceMemberEP18TPhoneCommandParam @ 66 NONAME
-	_ZN20PhoneUIQtViewAdapter31setExpandedConferenceCallHeaderEv @ 67 NONAME
-	_ZN20PhoneUIQtViewAdapter34updateCallHeaderRemoteInfoAndLabelEiP18TPhoneCommandParam @ 68 NONAME
-	_ZN20PhoneUIQtViewAdapter7setMenuEv @ 69 NONAME
-	_ZN20PhoneUIQtViewAdapter8showNoteEP18TPhoneCommandParam @ 70 NONAME
-	_ZN20PhoneUIQtViewAdapterC1ER15PhoneUIQtViewIFP7QObject @ 71 NONAME
-	_ZN20PhoneUIQtViewAdapterC2ER15PhoneUIQtViewIFP7QObject @ 72 NONAME
-	_ZN20PhoneUIQtViewAdapterD0Ev @ 73 NONAME
-	_ZN20PhoneUIQtViewAdapterD1Ev @ 74 NONAME
-	_ZN20PhoneUIQtViewAdapterD2Ev @ 75 NONAME
-	_ZNK20PhoneResourceAdapter10metaObjectEv @ 76 NONAME
-	_ZNK20PhoneResourceAdapter15convertToStringEi @ 77 NONAME
-	_ZNK20PhoneResourceAdapter15convertToStringEiRK7QString @ 78 NONAME
-	_ZNK20PhoneResourceAdapter22convertCommandToStringEi @ 79 NONAME
-	_ZNK20PhoneResourceAdapter24defaultToolbarResourceIdEv @ 80 NONAME
-	_ZNK20PhoneUIQtViewAdapter10metaObjectEv @ 81 NONAME
-	_ZNK20PhoneUIQtViewAdapter14noteControllerEv @ 82 NONAME
-	_ZTI20PhoneResourceAdapter @ 83 NONAME
-	_ZTI20PhoneUIQtViewAdapter @ 84 NONAME
-	_ZTV20PhoneResourceAdapter @ 85 NONAME
-	_ZTV20PhoneUIQtViewAdapter @ 86 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter12FetchContentEv @ 87 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter14ExecuteCommandEi @ 88 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter14ExecuteCommandEiP18TPhoneCommandParam @ 89 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter14HandleCommandLEi @ 90 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter14HandleCommandLEiP18TPhoneCommandParam @ 91 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEi @ 92 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEiP18TPhoneCommandParam @ 93 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEii @ 94 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEiiP18TPhoneCommandParam @ 95 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEiiR7TDesC16 @ 96 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapterD0Ev @ 97 NONAME
-	_ZThn8_N20PhoneUIQtViewAdapterD1Ev @ 98 NONAME
-	_ZNK20PhoneResourceAdapter18convertToHbActionsEi @ 99 NONAME
-	_ZN20PhoneUIQtViewAdapter15convertDurationEi @ 100 NONAME
-	_ZN20PhoneUIQtViewAdapter22setBubbleSelectionFlagEv @ 101 NONAME
-	_ZN20PhoneUIQtViewAdapter25handleCipheringInfoChangeEiP18TPhoneCommandParam @ 102 NONAME
-	_ZN20PhoneUIQtViewAdapter10SetHiddenLEb @ 103 NONAME
-	_ZN20PhoneUIQtViewAdapter12openContactsEv @ 104 NONAME
-	_ZN20PhoneUIQtViewAdapter21handleWindowActivatedEv @ 105 NONAME
-	_ZN20PhoneUIQtViewAdapter23handleWindowDeactivatedEv @ 106 NONAME
-	_ZN20PhoneUIQtViewAdapter9setHiddenEb @ 107 NONAME
-	_ZN20PhoneUIQtViewAdapter17hideDeviceDialogsEP18TPhoneCommandParam @ 108 NONAME
-	_ZNK20PhoneResourceAdapter27convertToToolBarCommandListEi @ 109 NONAME
-	_ZN20PhoneUIQtViewAdapter8openLogsEP18TPhoneCommandParam @ 110 NONAME
+	_ZN20PhoneUIQtViewAdapter10SetHiddenLEb @ 13 NONAME
+	_ZN20PhoneUIQtViewAdapter10convertKeyE8TKeyCodeRN2Qt3KeyE @ 14 NONAME
+	_ZN20PhoneUIQtViewAdapter10idleAppUidEv @ 15 NONAME
+	_ZN20PhoneUIQtViewAdapter11callsExistsEii @ 16 NONAME
+	_ZN20PhoneUIQtViewAdapter11keyReleasedEP9QKeyEvent @ 17 NONAME
+	_ZN20PhoneUIQtViewAdapter11openDialpadEv @ 18 NONAME
+	_ZN20PhoneUIQtViewAdapter11qt_metacallEN11QMetaObject4CallEiPPv @ 19 NONAME
+	_ZN20PhoneUIQtViewAdapter11qt_metacastEPKc @ 20 NONAME
+	_ZN20PhoneUIQtViewAdapter11setCallMenuEv @ 21 NONAME
+	_ZN20PhoneUIQtViewAdapter12FetchContentEv @ 22 NONAME
+	_ZN20PhoneUIQtViewAdapter12callHoldFlagEP18TPhoneCommandParam @ 23 NONAME
+	_ZN20PhoneUIQtViewAdapter12isConferenceEP18TPhoneCommandParam @ 24 NONAME
+	_ZN20PhoneUIQtViewAdapter12openContactsEv @ 25 NONAME
+	_ZN20PhoneUIQtViewAdapter12setAudioPathEP18TPhoneCommandParam @ 26 NONAME
+	_ZN20PhoneUIQtViewAdapter13callIdByStateEP18TPhoneCommandParam @ 27 NONAME
+	_ZN20PhoneUIQtViewAdapter13dialpadClosedEv @ 28 NONAME
+	_ZN20PhoneUIQtViewAdapter13removeDialpadEv @ 29 NONAME
+	_ZN20PhoneUIQtViewAdapter14ExecuteCommandEi @ 30 NONAME
+	_ZN20PhoneUIQtViewAdapter14ExecuteCommandEiP18TPhoneCommandParam @ 31 NONAME
+	_ZN20PhoneUIQtViewAdapter14HandleCommandLEi @ 32 NONAME
+	_ZN20PhoneUIQtViewAdapter14HandleCommandLEiP18TPhoneCommandParam @ 33 NONAME
+	_ZN20PhoneUIQtViewAdapter14setDialpadMenuEv @ 34 NONAME
+	_ZN20PhoneUIQtViewAdapter14showGlobalNoteEP18TPhoneCommandParam @ 35 NONAME
+	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEi @ 36 NONAME
+	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEiP18TPhoneCommandParam @ 37 NONAME
+	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEii @ 38 NONAME
+	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEiiP18TPhoneCommandParam @ 39 NONAME
+	_ZN20PhoneUIQtViewAdapter15ExecuteCommandLEiiR7TDesC16 @ 40 NONAME
+	_ZN20PhoneUIQtViewAdapter15activeCallCountEP18TPhoneCommandParam @ 41 NONAME
+	_ZN20PhoneUIQtViewAdapter15addToConferenceEv @ 42 NONAME
+	_ZN20PhoneUIQtViewAdapter15convertDurationEi @ 43 NONAME
+	_ZN20PhoneUIQtViewAdapter15setCallHoldFlagEP18TPhoneCommandParam @ 44 NONAME
+	_ZN20PhoneUIQtViewAdapter15setTouchButtonsEP18TPhoneCommandParam @ 45 NONAME
+	_ZN20PhoneUIQtViewAdapter16conferenceCallIdEiP18TPhoneCommandParam @ 46 NONAME
+	_ZN20PhoneUIQtViewAdapter16createCallHeaderEiP18TPhoneCommandParam @ 47 NONAME
+	_ZN20PhoneUIQtViewAdapter16setExpandActionsEv @ 48 NONAME
+	_ZN20PhoneUIQtViewAdapter16staticMetaObjectE @ 49 NONAME DATA 16
+	_ZN20PhoneUIQtViewAdapter17bringToForegroundEv @ 50 NONAME
+	_ZN20PhoneUIQtViewAdapter17hideDeviceDialogsEP18TPhoneCommandParam @ 51 NONAME
+	_ZN20PhoneUIQtViewAdapter17setMuteIndicationEP18TPhoneCommandParam @ 52 NONAME
+	_ZN20PhoneUIQtViewAdapter17setToolbarButtonsEP18TPhoneCommandParam @ 53 NONAME
+	_ZN20PhoneUIQtViewAdapter17setTopApplicationEP18TPhoneCommandParam @ 54 NONAME
+	_ZN20PhoneUIQtViewAdapter19getStaticMetaObjectEv @ 55 NONAME
+	_ZN20PhoneUIQtViewAdapter20expandedBubbleCallIdEP18TPhoneCommandParam @ 56 NONAME
+	_ZN20PhoneUIQtViewAdapter20getNumberFromDialpadEP18TPhoneCommandParam @ 57 NONAME
+	_ZN20PhoneUIQtViewAdapter20removeAllCallHeadersEv @ 58 NONAME
+	_ZN20PhoneUIQtViewAdapter20setCommonButtonFlagsEv @ 59 NONAME
+	_ZN20PhoneUIQtViewAdapter20setDialpadVisibilityEP18TPhoneCommandParam @ 60 NONAME
+	_ZN20PhoneUIQtViewAdapter21handleWindowActivatedEv @ 61 NONAME
+	_ZN20PhoneUIQtViewAdapter21updateCallHeaderStateEiP18TPhoneCommandParam @ 62 NONAME
+	_ZN20PhoneUIQtViewAdapter21writeAudioVolumeLevelEP18TPhoneCommandParam @ 63 NONAME
+	_ZN20PhoneUIQtViewAdapter22createConferenceBubbleEiP18TPhoneCommandParam @ 64 NONAME
+	_ZN20PhoneUIQtViewAdapter22getDialpadStringLengthEP18TPhoneCommandParam @ 65 NONAME
+	_ZN20PhoneUIQtViewAdapter22removeConferenceBubbleEv @ 66 NONAME
+	_ZN20PhoneUIQtViewAdapter22setBubbleSelectionFlagEv @ 67 NONAME
+	_ZN20PhoneUIQtViewAdapter23handleWindowDeactivatedEv @ 68 NONAME
+	_ZN20PhoneUIQtViewAdapter24removeCallFromConferenceEi @ 69 NONAME
+	_ZN20PhoneUIQtViewAdapter24setPrivateFromConferenceEi @ 70 NONAME
+	_ZN20PhoneUIQtViewAdapter25createEmergencyCallHeaderEiP18TPhoneCommandParam @ 71 NONAME
+	_ZN20PhoneUIQtViewAdapter25handleCipheringInfoChangeEiP18TPhoneCommandParam @ 72 NONAME
+	_ZN20PhoneUIQtViewAdapter25setAudioVolumeSliderValueEP18TPhoneCommandParam @ 73 NONAME
+	_ZN20PhoneUIQtViewAdapter25setParticipantListActionsEv @ 74 NONAME
+	_ZN20PhoneUIQtViewAdapter26updateCallHeaderRemoteInfoEiP18TPhoneCommandParam @ 75 NONAME
+	_ZN20PhoneUIQtViewAdapter27getSelectedConferenceMemberEP18TPhoneCommandParam @ 76 NONAME
+	_ZN20PhoneUIQtViewAdapter31setExpandedConferenceCallHeaderEv @ 77 NONAME
+	_ZN20PhoneUIQtViewAdapter34updateCallHeaderRemoteInfoAndLabelEiP18TPhoneCommandParam @ 78 NONAME
+	_ZN20PhoneUIQtViewAdapter7setMenuEv @ 79 NONAME
+	_ZN20PhoneUIQtViewAdapter8openLogsEP18TPhoneCommandParam @ 80 NONAME
+	_ZN20PhoneUIQtViewAdapter8showNoteEP18TPhoneCommandParam @ 81 NONAME
+	_ZN20PhoneUIQtViewAdapter9setHiddenEb @ 82 NONAME
+	_ZN20PhoneUIQtViewAdapterC1ER15PhoneUIQtViewIFP7QObject @ 83 NONAME
+	_ZN20PhoneUIQtViewAdapterC2ER15PhoneUIQtViewIFP7QObject @ 84 NONAME
+	_ZN20PhoneUIQtViewAdapterD0Ev @ 85 NONAME
+	_ZN20PhoneUIQtViewAdapterD1Ev @ 86 NONAME
+	_ZN20PhoneUIQtViewAdapterD2Ev @ 87 NONAME
+	_ZNK20PhoneResourceAdapter10metaObjectEv @ 88 NONAME
+	_ZNK20PhoneResourceAdapter15convertToStringEiRK7QString @ 89 NONAME
+	_ZNK20PhoneResourceAdapter18convertToHbActionsEi @ 90 NONAME
+	_ZNK20PhoneResourceAdapter22convertCommandToStringEi @ 91 NONAME
+	_ZNK20PhoneResourceAdapter24convertToStringWithParamEiRK7QString @ 92 NONAME
+	_ZNK20PhoneResourceAdapter24defaultToolbarResourceIdEv @ 93 NONAME
+	_ZNK20PhoneResourceAdapter27convertToToolBarCommandListEi @ 94 NONAME
+	_ZNK20PhoneUIQtViewAdapter10metaObjectEv @ 95 NONAME
+	_ZNK20PhoneUIQtViewAdapter14noteControllerEv @ 96 NONAME
+	_ZTI20PhoneResourceAdapter @ 97 NONAME
+	_ZTI20PhoneUIQtViewAdapter @ 98 NONAME
+	_ZTV20PhoneResourceAdapter @ 99 NONAME
+	_ZTV20PhoneUIQtViewAdapter @ 100 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter12FetchContentEv @ 101 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter14ExecuteCommandEi @ 102 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter14ExecuteCommandEiP18TPhoneCommandParam @ 103 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter14HandleCommandLEi @ 104 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter14HandleCommandLEiP18TPhoneCommandParam @ 105 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEi @ 106 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEiP18TPhoneCommandParam @ 107 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEii @ 108 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEiiP18TPhoneCommandParam @ 109 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapter15ExecuteCommandLEiiR7TDesC16 @ 110 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapterD0Ev @ 111 NONAME
+	_ZThn8_N20PhoneUIQtViewAdapterD1Ev @ 112 NONAME
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneapplauncher.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,69 @@
+/*
+* 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: Interface for application launch.
+*
+*/
+
+#ifndef PHONEAPPLAUNCHER_H
+#define PHONEAPPLAUNCHER_H
+
+#include <QObject>
+
+
+/*!
+ * \class PhoneAppLauncher
+ * \brief Interface for application launch.
+*/
+class PhoneAppLauncher : 
+    public QObject
+{
+    Q_OBJECT
+
+public:
+    
+    /**
+     * Constructor.
+     */
+    PhoneAppLauncher(QObject *parent = 0);
+
+    /**
+     * Destructor.
+     */
+    ~PhoneAppLauncher();
+
+public:
+    /**
+     * Launch app
+     */
+    void launchMessaging(
+            const QString& toField,
+            const QString& name,
+            const QString &messageBody);
+    
+    void launchContacts();
+    
+    void launchLogs(
+            int activatedView,
+            bool showDialpad,
+            const QString& dialpadText);
+
+private:
+    void sendServiceRequest(
+            const QString& service,
+            const QString& interface, 
+            const QString& operation,
+            const QList<QVariant>& arguments);
+};
+
+#endif // PHONEAPPLAUNCHER_H
--- a/phoneapp/phoneuiqtviewadapter/inc/phonemessagecontroller.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phonemessagecontroller.h	Tue Jul 06 14:15:47 2010 +0300
@@ -24,7 +24,7 @@
 
 // FORWARD DECLARATION
 class TPhoneCommandParam;
-class XQServiceRequest;
+class PhoneAppLauncher;
 
 class PhoneMessageController : public QObject
 {
@@ -35,7 +35,7 @@
     /*!
         \fn PhoneMessageController (QObject *parent)
     */
-    PhoneMessageController(QObject *parent = 0);
+    PhoneMessageController(PhoneAppLauncher &appLauncher, QObject *parent = 0);
         
     /*!
         Destructor
@@ -49,19 +49,9 @@
 
     */
     void openSoftRejectMessageEditor(TPhoneCommandParam *commandParam);
- 
-private:
-    
-    /*!
-        \fn void showNote ()
-        
-        This method opens message editor.
-
-    */
-    void openEditor(QString toField, QString name, QString messageBody = QString());
     
 private:
-    XQServiceRequest *mService;
+    PhoneAppLauncher &m_appLauncher;
 };
 
 #endif // PHONEMESSAGECONTROLLER_H
--- a/phoneapp/phoneuiqtviewadapter/inc/phoneresourceadapter.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneresourceadapter.h	Tue Jul 06 14:15:47 2010 +0300
@@ -76,7 +76,8 @@
         
         Returns QString.
     */
-    QString convertToString(int symbianResourceId) const;
+    QString convertToString(int symbianResourceId, 
+            const QString &causeCode = QString("")) const;
 
     /*!
         \fn QString PhoneResourceAdapter::convert (int symbianResourceId, QString text )
@@ -86,7 +87,7 @@
         
         Returns QString.
     */   
-    QString convertToString(int symbianResourceId, const QString &text) const;
+    QString convertToStringWithParam(int symbianResourceId, const QString &text) const;
     
     /*!
         \fn int PhoneResourceAdapter::defaultToolbarResourceId ()
--- a/phoneapp/phoneuiqtviewadapter/inc/phoneuiqtbuttonscontroller.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneuiqtbuttonscontroller.h	Tue Jul 06 14:15:47 2010 +0300
@@ -38,7 +38,9 @@
         Mute            = 0x80,  // Mute
         MultiCall       = 0x100, // Multi call
         FullConference  = 0x200, // Max member count in conference
-        Outgoing        = 0x400  // Outgoing call
+        Outgoing        = 0x400, // Outgoing call
+        IhfAsPushButton  = 0x800,  // Speaker as push button in bubble
+        BluetoothAvailable   = 0x1000  // Bluetooth available
     };
     Q_DECLARE_FLAGS(PhoneButtonFlags, PhoneButtonFlag)
 
--- a/phoneapp/phoneuiqtviewadapter/inc/phoneuiqtviewadapter.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneuiqtviewadapter.h	Tue Jul 06 14:15:47 2010 +0300
@@ -42,6 +42,7 @@
 class QKeyEvent;
 class PhoneIndicatorController;
 class PhoneVisibilityHandler;
+class PhoneAppLauncher;
 
 class PHONEUIQTVIEWADAPTER_EXPORT PhoneUIQtViewAdapter : 
     public QObject, 
@@ -536,6 +537,18 @@
         This method opens logs/dialer application.
     */ 
     void openLogs(TPhoneCommandParam *commandParam);
+
+    /*!
+        /fn void setCommonButtonFlags()
+        This method sets common button flags.
+    */
+    void setCommonButtonFlags();
+    
+    /*!
+        /fn void convertKey()
+        This method converts key.
+    */
+    bool convertKey(TKeyCode symbianKey, Qt::Key &qtKey);
     
 private:
 
@@ -552,7 +565,9 @@
     bool m_dialpadAboutToClose;
     bool m_homeScreenToForeground;
 	PhoneVisibilityHandler *m_visibilityHandler;
+	PhoneAppLauncher *m_appLauncher;
 	bool m_clearDialpadOnClose;
+	bool m_speakerAsDefaultButton;
 };
 
 #endif // PHONEUIQTVIEWADAPTER_H
--- a/phoneapp/phoneuiqtviewadapter/inc/phoneviewcommanddefinitions.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneviewcommanddefinitions.h	Tue Jul 06 14:15:47 2010 +0300
@@ -235,6 +235,8 @@
     EPhoneViewSetIhfFlag,
     EPhoneViewSetMuteFlag,
     EPhoneViewLaunchLogs,
+    EPhoneViewSetBlueToothFlag,
+    EPhoneViewSetBluetoothAvailableFlag,
     EPhoneAmountOfCommands, // Don't remove this, this should always be the last in list.
 };
 
--- a/phoneapp/phoneuiqtviewadapter/inc/phonevisibilityhandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phonevisibilityhandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -66,7 +66,10 @@
     void sendToBackground(bool homeScreenForeground);
     void hideDeviceDialogs(bool hide);
     
-    int ordinalPosition();
+    /**
+     * Return true if phone is visible application
+     */
+    bool phoneVisible();
     
 public: // from MPhonePubSubObserver
 
@@ -82,8 +85,19 @@
         const TInt aValue);
         
 private:
+    /**
+     * Handle keyguard according phone visiblity
+     * and keyguard previous state
+     */
+    bool disableKeyGuard();
+    void enableKeyGuard();
 
     /**
+     * Number of currently ongoing call's
+     */
+    int ongoingCalls();
+    
+    /**
      * Adjusts visibility based on current call and device security statuses.
      */
     void adjustVisibility(AdjustAction action);
@@ -117,6 +131,8 @@
     /** Car Mode publisher */
     QValueSpacePublisher* m_carModePublisher;
     
+    /** Key guard status before phone came top */
+    bool m_keyguardOnBeforeForeground;
 };
 
 #endif // PHONEVISIBILITYHANDLER_H
--- a/phoneapp/phoneuiqtviewadapter/inc/telephonyservice.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/telephonyservice.h	Tue Jul 06 14:15:47 2010 +0300
@@ -43,11 +43,20 @@
                        then dialer launches on top of empty call handling.
         
         Usage example:
-        int inCallDialer(1);
-        XQServiceRequest snd("com.nokia.services.telephonyservices.starter", "start(int)", false);
-        snd << inCallDialer;
-        QVariant err;
-        snd.send(err);
+        QString service("phoneui");
+        QString interface(""com.nokia.symbian.IStart");
+        QString operation("start(int)");
+        XQApplicationManager appManager;
+        QScopedPointer<XQAiwRequest> request(appManager.create(service, interface, operation, false));
+        if (request == NULL) {
+            //Service not found 
+        }
+        QList<QVariant> args;
+        args << 1; // open dialpad
+        request->setArguments(args);
+        if (request->send()) {
+           //error
+        }
     */
     void start(const int serviceId);
     
--- a/phoneapp/phoneuiqtviewadapter/phoneuiqtviewadapter.pri	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/phoneuiqtviewadapter.pri	Tue Jul 06 14:15:47 2010 +0300
@@ -27,6 +27,7 @@
 HEADERS += ./inc/phonemessagecontroller.h
 HEADERS += ./inc/phoneindicatorcontroller.h
 HEADERS += ./inc/phonevisibilityhandler.h
+HEADERS += ./inc/phoneapplauncher.h
 
 SOURCES += ./src/phoneuiqtviewadapter.cpp
 SOURCES += ./src/phoneuiqtbuttonscontroller.cpp
@@ -39,4 +40,6 @@
 SOURCES += ./src/phonemessagecontroller.cpp
 SOURCES += ./src/phoneindicatorcontroller.cpp
 SOURCES += ./src/phonevisibilityhandler.cpp
+SOURCES += ./src/phoneapplauncher.cpp
 
+
--- a/phoneapp/phoneuiqtviewadapter/phoneuiqtviewadapter.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/phoneuiqtviewadapter.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -47,6 +47,7 @@
         -llogsengine \
         -lxqplugins \
         -lakncapserverclient \
+        -llockclient \
         -ltelephonyservice \
         -lapgrfx \
         -lavkon \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneapplauncher.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,140 @@
+/*
+* 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 <devicelockaccessapi.h>
+#include <xqservicerequest.h>
+#include <logsservices.h>
+#include <xqappmgr.h>
+#include <xqrequestinfo.h>
+
+#include "phoneapplauncher.h"
+#include "qtphonelog.h"
+
+/*!
+    PhoneAppLauncher::PhoneAppLauncher.
+ */
+PhoneAppLauncher::PhoneAppLauncher(QObject *parent)
+    : QObject(parent)
+{
+    PHONE_TRACE;
+}
+
+
+/*!
+    PhoneAppLauncher::~PhoneAppLauncher.
+ */
+PhoneAppLauncher::~PhoneAppLauncher()
+{
+    PHONE_TRACE;
+}
+
+/*!
+    PhoneAppLauncher::launchMessaging.
+ */
+void PhoneAppLauncher::launchMessaging(
+        const QString &toField,
+        const QString &name,
+        const QString &messageBody)
+{
+    QList<QVariant> arguments;
+    arguments.append(QVariant(toField));
+    arguments.append(QVariant(name));
+    arguments.append(QVariant(messageBody));
+    sendServiceRequest(
+        "com.nokia.services.hbserviceprovider",
+        "conversationview",
+        "send(QString,QString,QString)",
+        arguments);
+}
+
+/*!
+    PhoneAppLauncher::launchContacts.
+ */
+void PhoneAppLauncher::launchContacts()
+{
+    QList<QVariant> arguments;
+    sendServiceRequest(
+        "com.nokia.services.phonebookappservices",
+        "Launch",
+        "launch()",
+        arguments);
+}
+
+/*!
+    PhoneAppLauncher::launchLogs.
+ */
+void PhoneAppLauncher::launchLogs(
+        int activatedView,
+        bool showDialpad,
+        const QString &dialpadText)
+{
+    QVariantMap map;
+    map.insert("view_index", QVariant(activatedView));
+    map.insert("show_dialpad", QVariant(showDialpad));
+    map.insert("dialpad_text", QVariant(dialpadText));
+    QList<QVariant> args;
+    args.append(QVariant(map));
+    sendServiceRequest(
+        "logs",
+        "com.nokia.symbian.ILogsView",
+        "show(QVariantMap)",
+        args);
+}
+
+/*!
+    PhoneAppLauncher::sendServiceRequest.
+ */
+void PhoneAppLauncher::sendServiceRequest(
+        const QString &service, 
+        const QString &interface,
+        const QString &operation,
+        const QList<QVariant> &arguments)
+{
+    int err = -1;
+    TRAP_IGNORE(
+        // Allow application launch only when device is unlocked
+        // If locked ask devicelock query
+        CDevicelockAccessApi *devicelockAccessApi = CDevicelockAccessApi::NewL();
+        err = devicelockAccessApi->DisableDevicelock();
+        delete devicelockAccessApi;
+    )
+    
+    if ((err == KErrNone) || (err == KErrAlreadyExists)) {
+        PHONE_TRACE3(service, operation, arguments);
+        XQApplicationManager appManager;
+        QScopedPointer<XQAiwRequest> request( 
+            service.isEmpty() ? 
+            appManager.create(interface, operation, false) :
+            appManager.create(service, interface, operation, false) );
+        if (request == NULL) {
+            PHONE_TRACE1("service not found");
+            return;
+        }
+        XQRequestInfo info;
+        info.setForeground(true);
+        request->setInfo(info);
+        request->setArguments(arguments);
+        QVariant retValue(-1);
+        if (!request->send(retValue)) {
+            int error = request->lastError();
+            PHONE_TRACE2("send failed, error %d", request->lastError());
+        }
+    }
+}
+
+// end of file
+
--- a/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -155,7 +155,7 @@
     PHONE_TRACE
     if ( compareKeys( key, PhoneIndicatorControllerKeys::currentCFKey ) ){
         PHONE_DEBUG("currentCfKey");
-        int cfStatus = value.toInt();
+        int cfStatus = value.toByteArray().toInt();
         updateDiverIndicator( cfStatus & KCFVoiceForwarded);
     } else if (compareKeys(key, PhoneIndicatorControllerKeys::unconditionalCFKey )){        
         QByteArray bytes = value.toByteArray();
@@ -241,11 +241,7 @@
         parameters.insert(
                 QVariant( HbIndicatorInterface::DecorationNameRole ).toString(),
                 iconName );
-                
-        // TODO: remove this when ready
-        parameters.insert( 
-                QVariant( HbIndicatorInterface::SecondaryTextRole ).toString(), 
-                "Feature not ready" );
+        
         m_indicator.activate( indicatorType, parameters );
     }else{
         m_indicator.deactivate( indicatorType );
--- a/phoneapp/phoneuiqtviewadapter/src/phonemessagecontroller.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phonemessagecontroller.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -19,23 +19,21 @@
 #include "phoneconstants.h"
 #include "cphonecenrepproxy.h"
 #include "cphonepubsubproxy.h"
+#include "phoneapplauncher.h"
 #include <settingsinternalcrkeys.h>
 #include <coreapplicationuisdomainpskeys.h>
 #include <hbglobal.h>
-#include <xqservicerequest.h>
 
 
-PhoneMessageController::PhoneMessageController(QObject *parent) : 
+PhoneMessageController::PhoneMessageController(PhoneAppLauncher &appLauncher, QObject *parent) : 
     QObject(parent),
-    mService(0)
+    m_appLauncher(appLauncher)
 {
 
 }
 
 PhoneMessageController::~PhoneMessageController()
 {
-    delete mService;
-    mService = 0;
 }
 
 void PhoneMessageController::openSoftRejectMessageEditor(
@@ -85,26 +83,5 @@
 
     
     // open message editor
-    openEditor(toField, alias, messageBody );
+    m_appLauncher.launchMessaging(toField, alias, messageBody);
 }
-
-void PhoneMessageController::openEditor(
-        QString toField, QString name, QString messageBody)
-{
-    delete mService;
-    mService = 0;
-    mService = new XQServiceRequest("com.nokia.services.hbserviceprovider.conversationview",
-                                    "send(QString,QString,QString)", false);
-    
-    QList<QVariant> arguments;
-    arguments.append(QVariant(toField));
-    arguments.append(QVariant(name));
-    arguments.append(QVariant(messageBody));
-    mService->setArguments(arguments);
-    
-    QVariant retValue;
-    mService->send(retValue);
-}
-
-
-
--- a/phoneapp/phoneuiqtviewadapter/src/phonenotecontroller.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phonenotecontroller.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -28,7 +28,8 @@
 #include <hbprogressdialog.h>
 #include <hbaction.h>
 #include <phoneappcommands.hrh>
-  
+#include <hbstringutil.h>
+
 PhoneNoteController::PhoneNoteController(QObject *parent) : 
     QObject(parent), m_timer(0), m_progressDialog(0), m_dtmfNote(0), 
     m_queryNote(0), m_queryCanceledCommand(-1), m_timeoutCommand(-1)
@@ -217,14 +218,20 @@
     if ( globalNoteParam->TextResourceId() && 
          KErrNone != globalNoteParam->Text().Compare( KNullDesC() ) ) {
          // resource and text exists
-         ret = PhoneResourceAdapter::Instance()->convertToString(
+         ret = PhoneResourceAdapter::Instance()->convertToStringWithParam(
                      globalNoteParam->TextResourceId(),
                      QString::fromUtf16(globalNoteParam->Text().Ptr(), 
                                      globalNoteParam->Text().Length()) );         
     } else if ( globalNoteParam->TextResourceId() ) {
         // resource exists
+        QString causeCode;
+        if (-1 != globalNoteParam->CauseCode()) {
+            causeCode.setNum(globalNoteParam->CauseCode());
+            causeCode = HbStringUtil::convertDigits(causeCode);
+        }
+        
         ret = PhoneResourceAdapter::Instance()->convertToString(
-                    globalNoteParam->TextResourceId());
+                    globalNoteParam->TextResourceId(), causeCode);
 
     } else if ( KErrNone != globalNoteParam->Text().Compare( KNullDesC() ) ) {
         // text exists
@@ -420,7 +427,7 @@
             // Do not show same note/text several times, e.g when user hits
             // the end button several times we should show only one "not allowed"
             // note.
-            if (noteString == m_notificationList.at(i)->text()) {
+            if (noteString == m_notificationList.at(i)->title()) {
                 showNote = false;
                 break;
             }
--- a/phoneapp/phoneuiqtviewadapter/src/phoneresourceadapter.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneresourceadapter.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -206,56 +206,57 @@
     return translatedActions;
 }
 
-QString PhoneResourceAdapter::convertToString(int symbianResourceId) const
+QString PhoneResourceAdapter::convertToString(
+        int symbianResourceId, const QString &causeCode) const
 {
     QString ret;
     
     switch (symbianResourceId) {
         case R_PHONE_ERROR_CALL_NOT_ALLOWED:
             {
-            ret = hbTrId("txt_phone_dpopinfo_not_allowed");      
+            ret = hbTrId("txt_phone_dpopinfo_not_allowed").arg(causeCode);      
             }
             break;
             
         case R_ERROR_NOTE_NOT_ALLOWED:
             {
-            ret =  hbTrId("txt_phone_dpopinfo_not_allowed");  
+            ret =  hbTrId("txt_phone_dpopinfo_not_allowed").arg(causeCode);  
             }
             break;
             
         case R_NOTETEXT_INVALID_PHONENUMBER:
             {
-            ret = hbTrId("txt_phone_info_invalid_phone_number"); 
+            ret = hbTrId("txt_phone_info_invalid_phone_number").arg(causeCode); 
             }
             break;
             
         case R_NOTETEXT_NO_ANSWER:
             {
-            ret = hbTrId("txt_phone_info_no_answer"); 
+            ret = hbTrId("txt_phone_info_no_answer").arg(causeCode); 
             }
             break;
         
         case R_PHONE_ERROR_NUMBER_BUSY:
             {
-            ret = hbTrId("txt_phone_info_number_busy"); 
+            ret = hbTrId("txt_phone_info_number_busy").arg(causeCode);
             }
             break;
             
-        case R_PHONE_SS_NOTIFICATION_MOCAL_WAITING_TEXT:
+        case R_PHONE_ERROR_REQUEST_REJECTED:
             {
-            ret = hbTrId("txt_phone_other_waiting");
+            ret = hbTrId("txt_phone_info_request_rejected").arg(causeCode); 
             }
             break;
-            
+                
         case R_PHONE_SS_NOTIFICATION_INCAL_INFO_HOLD_TEXT:
             {
-            ret = hbTrId("txt_phone_other_on_hold");
+            ret = hbTrId("txt_phone_dpopinfo_on_hold");
             }
             break;
             
         case R_INCAL_INFO_HOLD_TEXT:
             {
-            ret = hbTrId("txt_phone_other_on_hold");
+            ret = hbTrId("txt_phone_dpopinfo_on_hold");
             }
             break;
             
@@ -265,39 +266,34 @@
             }
             break;
             
-        case R_INCAL_INFO_CONF_HOLD_TEXT:
-            {
-            ret = hbTrId("Conference on hold");
-            }
-            break;
         case R_PHONE_INCALL_INFO_NO_NETWORK_SUPPORT:
             {
-            ret = hbTrId("txt_phone_info_no_network_support_for_video_call");
+            ret = hbTrId("txt_phone_info_no_network_support_for_video_call").arg(causeCode);
             }
             break;
         case R_PHONE_ERROR_EMERGENCY_CALLS_ONLY:
             {
-            ret = hbTrId("txt_phone_info_emergency_calls_only");         
+            ret = hbTrId("txt_phone_info_emergency_calls_only").arg(causeCode);         
             }
             break;
         case R_NOTETEXT_NUMBER_NOT_IN_USE:
             {
-            ret = hbTrId("txt_phone_info_number_not_in_use");         
+            ret = hbTrId("txt_phone_info_number_not_in_use").arg(causeCode);         
             }
             break;
         case R_NOTETEXT_NETWORK_BUSY:
             {
-            ret = hbTrId("txt_phone_info_network_busy");         
+            ret = hbTrId("txt_phone_info_network_busy").arg(causeCode);         
             }
             break;
         case R_NOTETEXT_ERROR_IN_CONNECTION:
             {
-            ret = hbTrId("txt_phone_info_error_in_connection");         
+            ret = hbTrId("txt_phone_info_error_in_connection").arg(causeCode);         
             }
             break;
         case R_PHONEUI_ERROR_EMERGENCY_ATTEMPT_FAILED:
             {
-            ret = hbTrId("txt_phone_info_emergency_call_failed");         
+            ret = hbTrId("txt_phone_info_emergency_call_failed").arg(causeCode);         
             }
             break;
         case R_PHONE_SS_NOTIFICATION_INCAL_TRANSFERRED_TEXT:
@@ -307,22 +303,17 @@
             break;
         case R_PHONE_ERROR_NO_SERVICE:
             {
-            ret = hbTrId("txt_phone_dpopinfo_no_network_coverage");         
+            ret = hbTrId("txt_phone_dpopinfo_no_network_coverage").arg(causeCode);         
             }
             break;
         case R_NOTETEXT_NUMBER_BARRED:
             {
-            ret = hbTrId("txt_phone_info_number_barred");
-            }
-            break;
-        case R_PHONEUI_NO_VIDEO_NETWORK:
-            {
-            ret = hbTrId("txt_phone_info_video_call_setup_failed");
+            ret = hbTrId("txt_phone_info_number_barred").arg(causeCode);
             }
             break;
         case R_PHONEUI_VIDEO_CALL_NOT_POSSIBLE:
             {
-            ret = hbTrId("txt_phone_info_video_call_didnt_succeed_to_called");
+            ret = hbTrId("txt_phone_info_video_call_didnt_succeed_to_called").arg(causeCode);
             }
             break;
         case R_CALL_INFO_CAUSE_VALUE127:
@@ -333,22 +324,22 @@
         case R_CALL_INFO_CAUSE_VALUE58:
         case R_NOTE_UNABLE_TO_MAKE_VIDEO_CALL_NOT_SUPPORTED_BY_OTHER_PHONE:
             {
-            ret = hbTrId("txt_phone_info_unable_to_make_video_call_not_supp");
+            ret = hbTrId("txt_phone_info_unable_to_make_video_call_not_supp").arg(causeCode);
             }
             break;
         case R_NOTE_PHONE_OUT_OF_3G_COVERAGE:
             {
-            ret = hbTrId("txt_phone_info_phone_switched_off_or_out_of_3g");
+            ret = hbTrId("txt_phone_info_phone_switched_off_or_out_of_3g").arg(causeCode);
             }
             break;
         case R_NOTE_VIDEO_CALL_ONLY_POSSIBLE_UNDER_3G_COVERAGE:
             {
-            ret = hbTrId("txt_phone_info_videocall_only_possible_under_3g");
+            ret = hbTrId("txt_phone_info_videocall_only_possible_under_3g").arg(causeCode);
             }
             break;
         case R_NOTE_CALLED_NUMBER_HAS_BARRED_INCOMING_CALLS:
             {
-            ret = hbTrId("txt_phone_info_called_number_has_barred_incoming");
+            ret = hbTrId("txt_phone_info_called_number_has_barred_incoming").arg(causeCode);
             }
             break;
         case R_INCAL_REMOTE_CREATE_CONFERENCE_TEXT:
@@ -363,32 +354,32 @@
             break;
         case R_CALL_INFO_CAUSE_VALUE16:
             {
-            ret = hbTrId("txt_phone_info_call_ended");
+            ret = hbTrId("txt_phone_info_no_answer").arg(causeCode);
             }
             break;
         case R_CALL_INFO_CAUSE_VALUE18:
             {
-            ret = hbTrId("txt_phone_info_no_answer");
+            ret = hbTrId("txt_phone_info_no_answer").arg(causeCode);
             }
             break;
         case R_CALL_INFO_CAUSE_VALUE21:
             {
-            ret = hbTrId("txt_phone_info_call_rejected");
+            ret = hbTrId("txt_phone_info_request_rejected");
             }
             break;
         case R_CALL_INFO_CAUSE_VALUE22:
             {
-            ret = hbTrId("txt_phone_info_number_not_in_use");
+            ret = hbTrId("txt_phone_info_number_not_in_use").arg(causeCode);
             }
             break;
         case R_CALL_INFO_CAUSE_VALUE34:
             {
-            ret = hbTrId("txt_phone_info_network_busy");
+            ret = hbTrId("txt_phone_info_network_busy").arg(causeCode);
             }
             break;
         case R_PHONE_ERROR_CALL_NOT_ALLOWED_FDN:
             {
-            ret = hbTrId("txt_phone_info_call_not_allowed_fixed_dialling");
+            ret = hbTrId("txt_phone_info_call_not_allowed_fixed_dialling").arg(causeCode);
             }
             break;
         case R_NOTETEXT_DIVERTING_INCOMING_CALL:
@@ -404,27 +395,27 @@
             break;
         case R_PHONE_ERROR_CHECK_CLIR:
             {
-            ret = hbTrId("txt_phone_info_check_own_number_sending");
+            ret = hbTrId("txt_phone_info_check_own_number_sending").arg(causeCode);
             }
             break;
         case R_PHONE_SS_NOTIFICATION_CLIR_SUPPR_REJECT_TEXT:
             {
-            ret = hbTrId("txt_phone_info_could_not_send_own_number");
+            ret = hbTrId("txt_phone_info_could_not_send_own_number").arg(causeCode);
             }
             break;
         case R_NOTE_TEXT_CLIR_CHANGE:
             {
-            ret = hbTrId("txt_phone_info_activate_own_number_sending");
+            ret = hbTrId("txt_phone_info_activate_own_number_sending").arg(causeCode);
             }
             break;
         case R_PHONE_ERROR_CHECK_NETWORK_SERVICES:
             {
-            ret = hbTrId("txt_phone_info_check_network_services");
+            ret = hbTrId("txt_phone_info_check_network_services").arg(causeCode);
             }
             break;
         case R_PHONE_INCALL_INFO_VIDEO_CALL_NOT_ALLOWED_DURING_RESTORE:
             {
-            ret = hbTrId("txt_phone_info_video_call_not_allowed_during_resto");
+            ret = hbTrId("txt_phone_info_video_call_not_allowed_during_resto").arg(causeCode);
             }
             break;
         default:
@@ -434,7 +425,7 @@
     return ret;
 }
 
-QString PhoneResourceAdapter::convertToString(
+QString PhoneResourceAdapter::convertToStringWithParam(
         int symbianResourceId, const QString &text) const
 {
     QString ret;
@@ -556,37 +547,73 @@
         case R_PHONEUI_CALLHANDLING_INCALL_UNMUTE_CBA:
         case R_PHONEUI_CALLHANDLING_INCALL_HANDSET_CBA:
         case R_PHONEUI_CALLHANDLING_CALLSETUP_EMPTY_DTMFDIALER_CBA:
+        case R_PHONEUI_CALLHANDLING_INCALL_BTAA_CBA:
             {
-            if (!m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf))
-                {
-                ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdActivateIhf,true));
+            if (m_buttonsCtrl->getButtonFlags(
+                    PhoneUIQtButtonsController::IhfAsPushButton)) {
+                if (m_buttonsCtrl->getButtonFlags(
+                        PhoneUIQtButtonsController::Mute)) {
+                    ret.append(PhoneAction::ToolBarItem(
+                            PhoneInCallCmdUnmute,true));
+                } else {
+                    ret.append(PhoneAction::ToolBarItem(
+                            PhoneInCallCmdMute,true));
                 }
-            else
-                {
-                ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdDeactivateIhf,true));
-                }
-            
-            if (!m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::MultiCall)) {
-                bool outgoing(m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Outgoing));
-                if (m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold))
-                    {
-                    ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdUnhold,!outgoing));
+            } else {
+                if (m_buttonsCtrl->getButtonFlags(
+                        PhoneUIQtButtonsController::BluetoothAvailable)) {
+                    if (m_buttonsCtrl->getButtonFlags(
+                            PhoneUIQtButtonsController::Btaa)) {
+                        ret.append(PhoneAction::ToolBarItem(
+                                PhoneInCallCmdHandset,true));
+                    } else {
+                        ret.append(PhoneAction::ToolBarItem(
+                                PhoneInCallCmdBtHandsfree,true));
+                    }               
+                } else {
+                    if (!m_buttonsCtrl->getButtonFlags(
+                            PhoneUIQtButtonsController::Ihf)) {
+                        ret.append(PhoneAction::ToolBarItem(
+                                PhoneInCallCmdActivateIhf,true));
+                    } else {
+                        ret.append(PhoneAction::ToolBarItem(
+                                PhoneInCallCmdDeactivateIhf,true));
                     }
-                else
-                    {
-                    ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdHold,!outgoing));
-                    }
+                }
+            }
+            
+            if (!m_buttonsCtrl->getButtonFlags(
+                    PhoneUIQtButtonsController::MultiCall)) {
+                bool outgoing(m_buttonsCtrl->getButtonFlags(
+                        PhoneUIQtButtonsController::Outgoing));
+                if (m_buttonsCtrl->getButtonFlags(
+                        PhoneUIQtButtonsController::Hold)) {
+                    ret.append(PhoneAction::ToolBarItem(
+                            PhoneInCallCmdUnhold,!outgoing));
+                } else {
+                    ret.append(PhoneAction::ToolBarItem(
+                            PhoneInCallCmdHold,!outgoing));
+                }
                          
-                ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdOpenContacts,true));
+                ret.append(PhoneAction::ToolBarItem(
+                        PhoneInCallCmdOpenContacts,true));
             } else {
-                bool outgoing(m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Outgoing));
-                bool disableJoin(outgoing ? true : m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::DisableJoin));
+                bool outgoing(m_buttonsCtrl->getButtonFlags(
+                        PhoneUIQtButtonsController::Outgoing));
+                bool disableJoin(outgoing ? true : 
+                    m_buttonsCtrl->getButtonFlags(
+                            PhoneUIQtButtonsController::DisableJoin));
                 
-                ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdSwap,!outgoing));
-                if (m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Conference)) {
-                    ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdJoinToConference,!disableJoin));
+                ret.append(PhoneAction::ToolBarItem(
+                        PhoneInCallCmdSwap,!outgoing));
+                
+                if (m_buttonsCtrl->getButtonFlags(
+                        PhoneUIQtButtonsController::Conference)) {
+                    ret.append(PhoneAction::ToolBarItem(
+                            PhoneInCallCmdJoinToConference,!disableJoin));
                 } else {
-                    ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdCreateConference,!disableJoin));
+                    ret.append(PhoneAction::ToolBarItem(
+                            PhoneInCallCmdCreateConference,!disableJoin));
                 }
             }
             
@@ -599,11 +626,13 @@
             
             if (!m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf))
                 {
-                ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdActivateIhf,true));
+                ret.append(PhoneAction::ToolBarItem(
+                        PhoneInCallCmdActivateIhf,true));
                 }
             else
                 {
-                ret.append(PhoneAction::ToolBarItem(PhoneInCallCmdDeactivateIhf,true));
+                ret.append(PhoneAction::ToolBarItem(
+                        PhoneInCallCmdDeactivateIhf,true));
                 }                 
             }
 			
--- a/phoneapp/phoneuiqtviewadapter/src/phoneuicommandcontroller.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneuicommandcontroller.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -314,16 +314,14 @@
         }
     }
     
-    if ( -1 == pluginInd )
-        {
+    if ( -1 == pluginInd ) {
         wrapper = new PhoneCommandExtensionWrapper( pluginUid.iUid );
-        if (wrapper)
+        if (wrapper) {
             m_commandExtensions.append( wrapper );
         }
-    else
-        {
+    } else {
         wrapper = m_commandExtensions[pluginInd];
-        }
+    }
     
     m_lastCommandExtension = wrapper;
     return wrapper;
@@ -464,12 +462,34 @@
     case EPEStateConnecting: {
         if (!emergencyCall) {
             if (PhoneResourceAdapter::Instance()->buttonsController()->
-                    getButtonFlags(PhoneUIQtButtonsController::Mute)) {
-                ret.append(PhoneInCallCmdUnmute);
+                   getButtonFlags(
+                           PhoneUIQtButtonsController::IhfAsPushButton)) {
+                if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags(
+                        PhoneUIQtButtonsController::BluetoothAvailable)) {
+                    if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags(
+                            PhoneUIQtButtonsController::Btaa)) {
+                        ret.append(PhoneInCallCmdHandset);
+                    } else {
+                        ret.append(PhoneInCallCmdBtHandsfree);
+                    } 
+                } else {
+                    if (!PhoneResourceAdapter::Instance()->buttonsController()->
+                            getButtonFlags(PhoneUIQtButtonsController::Ihf)) {
+                        ret.append(PhoneInCallCmdActivateIhf);
+                    } else {
+                        ret.append(PhoneInCallCmdDeactivateIhf);
+                    }           
+                }
             } else {
-                ret.append(PhoneInCallCmdMute);
+                if (PhoneResourceAdapter::Instance()->buttonsController()->
+                        getButtonFlags(PhoneUIQtButtonsController::Mute)) {
+                    ret.append(PhoneInCallCmdUnmute);
+                } else {
+                    ret.append(PhoneInCallCmdMute);
+                }
             }
         }
+        
         ret.append(PhoneInCallCmdEndOutgoingCall);  
     }
     break;
@@ -489,10 +509,31 @@
     case EPEStateHeldConference: {
         if (!emergencyCall) {
             if (PhoneResourceAdapter::Instance()->buttonsController()->
-                    getButtonFlags(PhoneUIQtButtonsController::Mute)) {
-                ret.append(PhoneInCallCmdUnmute);
+                   getButtonFlags(
+                           PhoneUIQtButtonsController::IhfAsPushButton)) {
+                if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags(
+                        PhoneUIQtButtonsController::BluetoothAvailable)) {
+                    if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags(
+                            PhoneUIQtButtonsController::Btaa)) {
+                        ret.append(PhoneInCallCmdHandset);
+                    } else {
+                        ret.append(PhoneInCallCmdBtHandsfree);
+                    } 
+                } else {
+                    if (!PhoneResourceAdapter::Instance()->buttonsController()->
+                            getButtonFlags(PhoneUIQtButtonsController::Ihf)) {
+                        ret.append(PhoneInCallCmdActivateIhf);
+                    } else {
+                        ret.append(PhoneInCallCmdDeactivateIhf);
+                    }           
+                }
             } else {
-                ret.append(PhoneInCallCmdMute);
+                if (PhoneResourceAdapter::Instance()->buttonsController()->
+                        getButtonFlags(PhoneUIQtButtonsController::Mute)) {
+                    ret.append(PhoneInCallCmdUnmute);
+                } else {
+                    ret.append(PhoneInCallCmdMute);
+                }
             }
         }
 
@@ -656,6 +697,20 @@
         action->setCommand(EPhoneInCallCmdContacts); 
     }
     break;
+    case PhoneInCallCmdBtHandsfree: {
+        action = new PhoneAction;
+        action->setIcon(HbIcon("qtg_mono_bluetooth_headset"));
+        action->setDisabled(disabled);
+        action->setCommand(EPhoneInCallCmdBtHandsfree); 
+    }
+    break;
+    case PhoneInCallCmdHandset: {
+        action = new PhoneAction;
+        action->setIcon(HbIcon("qtg_mono_mobile"));
+        action->setDisabled(disabled);
+        action->setCommand(EPhoneInCallCmdHandset); 
+    }
+    break;
     default:
     break;
     }
--- a/phoneapp/phoneuiqtviewadapter/src/phoneuiqtviewadapter.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneuiqtviewadapter.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -26,6 +26,7 @@
 #include "tphonecmdparamcallheaderdata.h"
 #include "tphonecmdparamemergencycallheaderdata.h"
 #include "tphonecmdparamstring.h"
+#include "tphonecmdparamkeycapture.h"
 #include "cphonepubsubproxy.h"
 #include "pevirtualengine.h"
 #include "cphoneringingtonecontroller.h"
@@ -41,12 +42,13 @@
 #include "phoneindicatorcontroller.h"
 #include "qtphonelog.h"
 #include "phonevisibilityhandler.h"
+#include "phoneapplauncher.h"
+#include "cphonecenrepproxy.h"
 
 #include <UikonInternalPSKeys.h>
 #include <bubblemanagerif.h>
 #include <hbaction.h>
 #include <pevirtualengine.h>
-#include <xqservicerequest.h>
 #include <QtGlobal>
 #include <xqserviceutil.h>
 #include <hbinstance.h>
@@ -61,9 +63,14 @@
 #include <logsservices.h>
 
 
+
 //CONSTANTS
 static const int PHONE_CALL_NOT_FOUND = -1;
 
+const TUid KCRUidTelTouchButtons = {0x2001B2E6};
+const TUint32 KTelIncallTouchButtons   = 0x00000001;
+
+
 PhoneUIQtViewAdapter::PhoneUIQtViewAdapter (PhoneUIQtViewIF &view, QObject *parent) :
     QObject (parent),
     m_view (view),
@@ -79,12 +86,13 @@
     m_dialpadAboutToClose(false),
     m_homeScreenToForeground(false),
     m_visibilityHandler(0),
-    m_clearDialpadOnClose(true)
+    m_appLauncher(0),
+    m_clearDialpadOnClose(true),
+    m_speakerAsDefaultButton(false)
 {
     m_bubbleWrapper = new PhoneBubbleWrapper(m_view.bubbleManager (), this);
     m_noteController = new PhoneNoteController(this);
     m_uiCommandController = new PhoneUiCommandController(view, this);
-    m_messageController = new PhoneMessageController(this);
 
     TRAPD( error, m_ringingtonecontroller = CPhoneRingingToneController::NewL () );
     qt_symbian_throwIfError(error);
@@ -98,6 +106,19 @@
     m_telephonyService = new TelephonyService (this, this);
 	m_indicatorController = new PhoneIndicatorController(this);
     m_visibilityHandler = new PhoneVisibilityHandler(view, this);
+    m_appLauncher = new PhoneAppLauncher(this);
+    m_messageController = new PhoneMessageController(*m_appLauncher, this);
+    
+    int touchButton(-1);
+    if ( KErrNone == CPhoneCenRepProxy::Instance()->GetInt(
+            KCRUidTelTouchButtons,
+            KTelIncallTouchButtons,
+            touchButton ) ) {
+        if ( touchButton == 2 ) {
+            m_speakerAsDefaultButton = true;
+        }    
+    }
+
 }
 
 PhoneUIQtViewAdapter::~PhoneUIQtViewAdapter ()
@@ -198,7 +219,10 @@
         m_view.removeExpandAction(bubble);
         m_bubbleWrapper->removeCallHeader (aCallId);
         m_bubbleWrapper->bubbleManager().endChanges();
-        m_indicatorController->clearActiveCallData();
+        
+        if (!m_bubbleWrapper->bubbles().count()) {
+            m_indicatorController->clearActiveCallData();
+        }
         }
         break;
     case EPhoneViewRemoveFromConference:
@@ -275,8 +299,8 @@
         m_noteController->showQuery(aCommandParam);
         break;
     case EPhoneViewOpenSoftRejectEditor:
+        m_visibilityHandler->hideDeviceDialogs(false);
         m_messageController->openSoftRejectMessageEditor(aCommandParam);
-        m_visibilityHandler->hideDeviceDialogs(false);
         break;
     case EPhoneViewSetGlobalNotifiersDisabled:
         hideDeviceDialogs(aCommandParam);
@@ -468,6 +492,42 @@
                                param->Boolean());
         }
         break;
+    case EPhoneViewSetBlueToothFlag: {
+        TPhoneCmdParamBoolean *param = static_cast<TPhoneCmdParamBoolean *>(aCommandParam);
+
+        PhoneResourceAdapter::Instance()->buttonsController()->
+                setButtonFlags(PhoneUIQtButtonsController::Btaa, 
+                               param->Boolean());
+        }
+        break;
+    case EPhoneViewSetBluetoothAvailableFlag: {
+        TPhoneCmdParamBoolean *param = static_cast<TPhoneCmdParamBoolean *>(aCommandParam);
+    
+        PhoneResourceAdapter::Instance()->buttonsController()->
+                setButtonFlags(PhoneUIQtButtonsController::BluetoothAvailable, 
+                               param->Boolean());
+        }
+        break;
+    case EPhoneViewStartCapturingKey: {
+        TPhoneCmdParamKeyCapture *captureParam = 
+                static_cast<TPhoneCmdParamKeyCapture *>(aCommandParam);        
+        Qt::Key qtKey;
+        
+        if (convertKey(captureParam->KeyCode(), qtKey)) {
+            m_view.captureKey(qtKey, true);
+        }
+    }
+    break;
+    case EPhoneViewStopCapturingKey: {
+        TPhoneCmdParamKeyCapture *captureParam = 
+                static_cast<TPhoneCmdParamKeyCapture *>(aCommandParam);        
+        Qt::Key qtKey;
+        
+        if (convertKey(captureParam->KeyCode(), qtKey)) {
+            m_view.captureKey(qtKey, false);
+        }
+    }
+    break;
     default:
         break;
     }
@@ -693,7 +753,6 @@
     bool emergencyCall = param.Boolean();
 
     m_bubbleWrapper->bubbleManager ().startChanges ();
-    m_view.clearParticipantListActions();
 
     QList<int> bubbles = m_bubbleWrapper->bubbles().keys();
 
@@ -701,9 +760,7 @@
             PhoneUIQtButtonsController::DisableJoin,
             (5 <= m_bubbleWrapper->conferenceCallList().count()));
     
-    m_resourceAdapter->buttonsController()->setButtonFlags(
-            PhoneUIQtButtonsController::FullConference,
-            (5 <= m_bubbleWrapper->conferenceCallList().count()));
+    setCommonButtonFlags();
 
     for (int j = 0; j < bubbles.size(); ++j){
         int callId = bubbles.at(j);
@@ -729,7 +786,6 @@
         }
     }
 
-    setParticipantListActions();
     setExpandedConferenceCallHeader();
     setBubbleSelectionFlag();
     setMenu();
@@ -744,10 +800,8 @@
     TPhoneCmdParamInteger &intParam =
         static_cast<TPhoneCmdParamInteger &>(*commandParam);
 
-    m_resourceAdapter->buttonsController()->setButtonFlags(
-            PhoneUIQtButtonsController::FullConference,
-            (5 <= m_bubbleWrapper->conferenceCallList().count()));
-
+    setCommonButtonFlags();
+    
     int callId(-1);
     int serviceId(-1);
     if ( 0<m_bubbleWrapper->callStates().keys().size() ) {
@@ -880,6 +934,8 @@
 
     m_bubbleWrapper->setServiceId(callId,data.ServiceId());
     m_bubbleWrapper->setCiphering(bubble, data.CipheringIndicatorAllowed(), data.Ciphering());
+    
+    setParticipantListActions();
 }
 
 void PhoneUIQtViewAdapter::conferenceCallId(int callId, TPhoneCommandParam *commandParam)
@@ -898,9 +954,13 @@
 {
     m_bubbleWrapper->bubbleManager().startChanges();
     m_view.removeExpandAction(m_bubbleWrapper->bubbleId(KConferenceCallId));
+    m_view.clearParticipantListActions();
     m_bubbleWrapper->removeConferenceBubble();
     m_bubbleWrapper->bubbleManager().endChanges();
-    m_indicatorController->clearActiveCallData();
+    if (!m_bubbleWrapper->bubbles().count()) {
+        m_indicatorController->clearActiveCallData();
+    }
+
 }
 
 void PhoneUIQtViewAdapter::isConference(TPhoneCommandParam *commandParam)
@@ -1056,7 +1116,7 @@
         static_cast<TPhoneCmdParamBoolean*>(commandParam);
 
     if (booleanParam->Boolean()) {
-        m_dialpadAboutToClose = true;
+        m_dialpadAboutToClose = false;
         m_view.showDialpad();
     } else {
         m_clearDialpadOnClose = false;
@@ -1083,7 +1143,10 @@
             m_bubbleWrapper->bubbleManager().endChanges();
         }
     }
-    m_indicatorController->clearActiveCallData();
+    if (!m_bubbleWrapper->bubbles().count()) {
+        m_indicatorController->clearActiveCallData();
+    }
+
 }
 
 void PhoneUIQtViewAdapter::getNumberFromDialpad(
@@ -1199,15 +1262,9 @@
         CAknSgcClient::AknSrv()->UpdateTaskList();
     }
 }
-
 void PhoneUIQtViewAdapter::openContacts()
 {
-    XQServiceRequest snd("com.nokia.services.phonebookappservices.Launch","launch()", false);
-    XQRequestInfo info;
-    info.setForeground(true);
-    snd.setInfo(info);
-    int retValue;
-    snd.send(retValue);
+    m_appLauncher->launchContacts();
 }
 
 void PhoneUIQtViewAdapter::openLogs(TPhoneCommandParam *commandParam)
@@ -1215,29 +1272,49 @@
     TPhoneCmdParamString* entryContent =
             static_cast<TPhoneCmdParamString*>(commandParam);
     
-    int ordinalPosition = m_visibilityHandler->ordinalPosition();
+    bool phoneVisible = m_visibilityHandler->phoneVisible();
     
     m_homeScreenToForeground = false;
     m_visibilityHandler->sendToBackground(m_homeScreenToForeground);
     
-    if (0 == ordinalPosition) { 
+    if (phoneVisible) { 
         // Activate logs dialer only if telephone is on the top.
-        XQServiceRequest snd("com.nokia.services.logsservices.starter",
-                "startWithNum(int,bool,QString)", false);
-        
-        snd << (int)LogsServices::ViewAll;
-        snd << true;
-        snd << QString::fromUtf16(entryContent->String()->Ptr(),
-                                  entryContent->String()->Length());
-        
-        XQRequestInfo info;
-        info.setForeground(true);
-        snd.setInfo(info);
-        
-        int retValue = -1;
-        snd.send(retValue);
+        m_appLauncher->launchLogs(
+                LogsServices::ViewAll,
+                true,
+                QString::fromUtf16(
+                    entryContent->String()->Ptr(),
+                    entryContent->String()->Length()));
     } 
 }
 
+void PhoneUIQtViewAdapter::setCommonButtonFlags()
+{
+    m_resourceAdapter->buttonsController()->setButtonFlags(
+            PhoneUIQtButtonsController::FullConference,
+            (5 <= m_bubbleWrapper->conferenceCallList().count()));
+
+    m_resourceAdapter->buttonsController()->setButtonFlags(
+            PhoneUIQtButtonsController::IhfAsPushButton,
+            m_speakerAsDefaultButton);
+}
+
+bool PhoneUIQtViewAdapter::convertKey(
+        TKeyCode symbianKey, Qt::Key &qtKey)
+{
+    bool ret = false;
+    
+    switch(symbianKey) {
+    case EKeyNo: {
+        qtKey = Qt::Key_No;
+        ret = true; 
+    }
+    break;
+    default:
+    break;
+    }
+    
+    return ret;
+}
 
 
--- a/phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phonevisibilityhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -21,6 +21,7 @@
 #include <apgtask.h>
 #include <ccallinformation.h>
 #include <ccallinfoiter.h>
+#include <keyguardaccessapi.h>
 #include "phonevisibilityhandler.h"
 #include "cphonepubsubproxy.h"
 #include "phoneconstants.h"
@@ -51,21 +52,6 @@
     connect(m_carModeSubscriber, SIGNAL(contentsChanged()), this, SLOT(carModeChanged()));
     m_carModeEnabled = m_carModeSubscriber->value().toBool();
 
-/*    
-    // Define car mode pub sub key
-    int err = RProperty::Define(
-        KPSUidTelCarMode,
-        KTelCarMode,
-        RProperty::EInt,
-        KPhoneReadPolicy,
-        KPhoneWritePolicy);
-    
-    // Start listening to car mode changes
-    if(err == KErrNone) {
-        QT_TRAP_THROWING(CPhonePubSubProxy::Instance()->NotifyChangeL(
-                KPSUidTelCarMode, KTelCarMode, this));
-    }
-*/    
     int autlockValue = CPhonePubSubProxy::Instance()->Value(
                 KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus);
     m_deviceLockEnabled = (EAutolockOff < autlockValue);
@@ -74,6 +60,10 @@
     // Start listening to device lock changes
     QT_TRAP_THROWING(CPhonePubSubProxy::Instance()->NotifyChangeL(
             KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, this));
+    
+    QT_TRAP_THROWING(CPhonePubSubProxy::Instance()->NotifyChangeL(
+        KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, this));
+
 }
 
 
@@ -92,8 +82,9 @@
 void PhoneVisibilityHandler::bringToForeground()
 {
     PHONE_TRACE2("m_carModeEnabled=", m_carModeEnabled);
-
-    if(!m_carModeEnabled) {
+    
+    if (!m_carModeEnabled) {
+        disableKeyGuard();
         m_view.bringToForeground();
         adjustVisibility(BringForwards);
     }
@@ -112,11 +103,12 @@
 }
 
 /*!
-    PhoneVisibilityHandler::ordinalPosition.
+    PhoneVisibilityHandler::phoneVisible.
  */
-int PhoneVisibilityHandler::ordinalPosition()
+bool PhoneVisibilityHandler::phoneVisible()
 {
-    return m_eikonEnv->RootWin().OrdinalPosition();
+    // Should we check if there is phone's devicedialogs visible?
+    return (m_eikonEnv->RootWin().OrdinalPosition() == 0);
 }
 
 /*!
@@ -125,7 +117,9 @@
 void PhoneVisibilityHandler::sendToBackground(bool homeScreenForeground)
 {
     PHONE_TRACE2(": homeScreenForeground =", homeScreenForeground);
-
+    
+    enableKeyGuard();
+    
     // Send phone back on WSERV stack
     adjustVisibility(SendToBack);
     
@@ -149,16 +143,76 @@
         // Adjust visibility according mode
         m_deviceLockEnabled = (EAutolockOff < aValue);
         PHONE_TRACE2(": m_deviceLockEnabled=", m_deviceLockEnabled);
+        m_view.setRestrictedMode(m_deviceLockEnabled);
         adjustVisibility(KeepCurrentPos);
 
     }
 }
 
 /*!
+ *  PhoneVisibilityHandler::disableKeyGuard().
+ */
+bool PhoneVisibilityHandler::disableKeyGuard()
+{
+    TRAP_IGNORE(
+        CKeyguardAccessApi* keyguardAccess = CKeyguardAccessApi::NewL( );
+        if (!m_keyguardOnBeforeForeground) {
+            // Check if keyguard previous status only when it is not set
+            // Keyguard status will be restored when phone is ordered to background
+            m_keyguardOnBeforeForeground = keyguardAccess->IsKeyguardEnabled();
+        }
+        keyguardAccess->DisableKeyguard( EFalse );
+        delete keyguardAccess;
+        );
+    
+    return m_keyguardOnBeforeForeground;
+}
+
+/*!
+ *  PhoneVisibilityHandler::enableKeyGuard().
+ */
+void PhoneVisibilityHandler::enableKeyGuard()
+{
+    if (phoneVisible() && m_keyguardOnBeforeForeground) {
+        // If phone is visible return to previous keyguard status
+        TRAP_IGNORE(
+            CKeyguardAccessApi* keyguardAccess = CKeyguardAccessApi::NewL( );
+            keyguardAccess->EnableKeyguard( EFalse );
+            delete keyguardAccess;
+            );
+    }
+    
+    m_keyguardOnBeforeForeground = false;
+}
+
+/*!
+ *  PhoneVisibilityHandler::ongoingCalls().
+ */
+int PhoneVisibilityHandler::ongoingCalls()
+{
+    int amountOfCalls=0;
+    TRAP_IGNORE(
+        CCallInformation* callInfos = CCallInformation::NewL();
+        CleanupStack::PushL(callInfos);
+        Q_ASSERT(callInfos != 0);
+        amountOfCalls = callInfos->GetCallsL().Count();
+        CleanupStack::PopAndDestroy(callInfos);
+        );
+    
+    return amountOfCalls;
+}
+
+/*!
     PhoneVisibilityHandler::adjustVisibility.
 	 -1 Ordinal position is lowest ( not visible )
 	  0 Ordinal position is highest ( visible )
 	  1 - ... Ordinal postition under one or more window group
+	  
+	It is agreed with devicedialog that:
+     - Incomincall, ECoeWinPriorityAlwaysAtFront + 100
+     - Ongoing call + security, ECoeWinPriorityAlwaysAtFront
+     - Ongoing call + Securire query, ECoeWinPriorityAlwaysAtFront - 1
+     - Ongoing call, ECoeWinPriorityNormal
  */
 void PhoneVisibilityHandler::adjustVisibility(AdjustAction action)
 {
@@ -179,7 +233,7 @@
         
     } else if (m_hideDeviceDialogs) {
         PHONE_TRACE1(": Hide dialogs");
-        m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 1);
+        m_eikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront + 100);
     
     } else if (m_deviceLockEnabled) {
         // critical notes are allowed to show on top of Phone application
@@ -204,18 +258,11 @@
 void PhoneVisibilityHandler::carModeChanged()
 {
     PHONE_TRACE;
+    m_carModeEnabled = m_carModeSubscriber->value().toBool();
     
-    m_carModeEnabled = m_carModeSubscriber->value().toBool();
-
-    CCallInformation* callInfos = CCallInformation::NewL();
-    Q_ASSERT(callInfos != 0);
-    int amountOfCalls = callInfos->GetCallsL().Count();
-
-    if(!m_carModeEnabled && (amountOfCalls > 0)) {
+    if(!m_carModeEnabled && (ongoingCalls() > 0)) {
         bringToForeground();
     }
-    
-    delete callInfos;
 
     // Adjust visibility according mode (TODO!)
     PHONE_TRACE2(": m_carModeEnabled=", m_carModeEnabled);
--- a/phoneapp/phoneuiqtviewadapter/src/telephonyservice.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/telephonyservice.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -22,7 +22,7 @@
 #include "qtphonelog.h"
 
 TelephonyService::TelephonyService( PhoneUIQtViewAdapter *viewAdapter, QObject* parent) :
-    XQServiceProvider(QLatin1String("com.nokia.services.telephony.uistarter"), parent),
+    XQServiceProvider(QLatin1String("phoneui.com.nokia.symbian.IStart"), parent),
     m_viewAdapter (viewAdapter)
 {
     PHONE_DEBUG("TelephonyService::TelephonyService");
@@ -47,7 +47,6 @@
         case 1: {
             m_viewAdapter->ExecuteCommandL( EPhoneViewOpenDialer );
 
-            /*TODO: remove this as soon as QT Highway brings in call dialer to foreground*/
             TPhoneCmdParamInteger uidParam;
             uidParam.SetInteger( KUidPhoneApplication.iUid );
             m_viewAdapter->ExecuteCommandL(EPhoneViewBringAppToForeground, &uidParam);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/phoneapplauncher_stub.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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 <devicelockaccessapi.h>
+
+#include "phoneapplauncher.h"
+#include "qtphonelog.h"
+
+QList<QVariant> gList;
+
+/*!
+    PhoneAppLauncher::PhoneAppLauncher.
+ */
+PhoneAppLauncher::PhoneAppLauncher(QObject *parent)
+    : QObject(parent)
+{
+    PHONE_TRACE;
+}
+
+
+/*!
+    PhoneAppLauncher::~PhoneAppLauncher.
+ */
+PhoneAppLauncher::~PhoneAppLauncher()
+{
+    PHONE_TRACE;
+}
+
+/*!
+    PhoneAppLauncher::launchMessaging.
+ */
+void PhoneAppLauncher::launchMessaging(
+        const QString &toField,
+        const QString &name,
+        const QString &messageBody)
+{
+    gList.append(toField);
+    gList.append(name);
+    gList.append(messageBody);
+}
+
+/*!
+    PhoneAppLauncher::launchContacts.
+ */
+void PhoneAppLauncher::launchContacts()
+{
+
+}
+
+/*!
+    PhoneAppLauncher::launchLogs.
+ */
+void PhoneAppLauncher::launchLogs(
+        int activatedView,
+        bool showDialpad,
+        const QString &dialpadText)
+{
+    Q_UNUSED(activatedView);
+    Q_UNUSED(showDialpad);
+    Q_UNUSED(dialpadText);
+}
+
+/*!
+    PhoneAppLauncher::sendServiceRequest.
+ */
+void PhoneAppLauncher::sendServiceRequest(
+        const QString &service, 
+        const QString &interface,
+        const QString &function,
+        const QList<QVariant> &arguments)
+{
+    Q_UNUSED(service);
+    Q_UNUSED(interface);
+    Q_UNUSED(function);
+    Q_UNUSED(arguments);
+}
+
+// end of file
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -23,13 +23,11 @@
 #include "cphonecenrepproxy.h"
 #include "cphonepubsubproxy.h"
 #include <settingsinternalcrkeys.h>
+#include "phoneapplauncher.h"
 #include "phonemessagecontroller.h"
 #include "tphonecmdparamsfidata.h"
 
-QString mService;
-QString mMessage;
-bool mSend;
-QList<QVariant> mList;
+extern QList<QVariant> gList;
 
 
 #define PHONE_QT_MESSAGE_CONTROLLER_TEST_MAIN(TestObject) \
@@ -68,6 +66,7 @@
     QString softRejectText();
     
 private:
+    PhoneAppLauncher *m_launcher;
     PhoneMessageController *m_messageController; // class under test
 };
 
@@ -81,12 +80,14 @@
 
 void TestPhoneMessageController::initTestCase()
 {
-    m_messageController = new PhoneMessageController();
+    m_launcher = new PhoneAppLauncher(this);
+    m_messageController = new PhoneMessageController(*m_launcher, this);
 }
 
 void TestPhoneMessageController::cleanupTestCase()
 {
     delete m_messageController;
+    delete m_launcher;
 }
 
 void TestPhoneMessageController::init()
@@ -106,12 +107,9 @@
     
     m_messageController->openSoftRejectMessageEditor(&sfiParam);
     
-    QVERIFY( mService == "com.nokia.services.hbserviceprovider.conversationview" );
-    QVERIFY( mMessage == "send(QString,QString,QString)" );
-    QVERIFY( mList.contains("1234567") );
-    QVERIFY( mList.contains("Tester") );
-    QVERIFY( mList.contains(text) );
-    QVERIFY( mSend );
+    QVERIFY( gList.contains("1234567") );
+    QVERIFY( gList.contains("Tester") );
+    QVERIFY( gList.contains(text) );
 }
 
 QString TestPhoneMessageController::softRejectText()
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/ut_phonemessagecontroller.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonemessagecontroller/ut_phonemessagecontroller.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -41,8 +41,9 @@
 }
 
 # Input
-HEADERS += xqservicerequest.h
 HEADERS += ../../inc/phonemessagecontroller.h
 SOURCES += ../../src/phonemessagecontroller.cpp
+HEADERS += ../../inc/phoneapplauncher.h
+SOURCES += phoneapplauncher_stub.cpp
 SOURCES += unit_tests.cpp
 
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneresourceadapter/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneresourceadapter/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -64,6 +64,7 @@
     void testConvertCommandToString();
     void testConvertToHbActions();
     void testConvertToToolBarCommandList();
+    void testBtToolBarCommandList();
 
 private:
     void testIncallToolbar (int id); // helper function
@@ -208,7 +209,7 @@
     QString testString5 = m_resourceAdapter->convertToString(R_PHONE_ERROR_NUMBER_BUSY); 
     QVERIFY( false == testString5.isEmpty() );
     
-    QString testString6 = m_resourceAdapter->convertToString(R_PHONE_SS_NOTIFICATION_MOCAL_WAITING_TEXT); 
+    QString testString6 = m_resourceAdapter->convertToString(R_PHONE_ERROR_REQUEST_REJECTED); 
     QVERIFY( false == testString6.isEmpty() );
     
     QString testString7 = m_resourceAdapter->convertToString(R_PHONE_SS_NOTIFICATION_INCAL_INFO_HOLD_TEXT); 
@@ -220,8 +221,8 @@
     QString testString9 = m_resourceAdapter->convertToString(R_INCAL_REMOTE_ACTIVE_TEXT); 
     QVERIFY( false == testString9.isEmpty() );
     
-    QString testString10 = m_resourceAdapter->convertToString(R_INCAL_INFO_CONF_HOLD_TEXT); 
-    QVERIFY( false == testString10.isEmpty() );
+    /*QString testString10 = m_resourceAdapter->convertToString(R_INCAL_INFO_CONF_HOLD_TEXT); 
+    QVERIFY( false == testString10.isEmpty() );*/
     
     QString testString11 = m_resourceAdapter->convertToString(R_PHONE_INCALL_INFO_NO_NETWORK_SUPPORT); 
     QVERIFY( false == testString11.isEmpty() );
@@ -250,8 +251,8 @@
     QString testString19 = m_resourceAdapter->convertToString(R_NOTETEXT_NUMBER_BARRED); 
     QVERIFY( false == testString19.isEmpty() ); 
     
-    QString testString20 = m_resourceAdapter->convertToString(R_PHONEUI_NO_VIDEO_NETWORK); 
-    QVERIFY( false == testString20.isEmpty() ); 
+    /*QString testString20 = m_resourceAdapter->convertToString(R_PHONEUI_NO_VIDEO_NETWORK); 
+    QVERIFY( false == testString20.isEmpty() );*/ 
     
     QString testString21 = m_resourceAdapter->convertToString(R_PHONEUI_VIDEO_CALL_NOT_POSSIBLE); 
     QVERIFY( false == testString21.isEmpty() ); 
@@ -342,12 +343,12 @@
 {
     m_resourceAdapter = PhoneResourceAdapter::Instance (this);
         
-    QString testString = m_resourceAdapter->convertToString(
+    QString testString = m_resourceAdapter->convertToStringWithParam(
             R_PHONE_TEXT_COLP_CONNECTED, QString("123456"));
     
     QVERIFY( false == testString.isEmpty() );
        
-    QString testString2 = m_resourceAdapter->convertToString(0, QString()); 
+    QString testString2 = m_resourceAdapter->convertToStringWithParam(0, QString()); 
     QCOMPARE( testString2, QString ("") );
 }
 
@@ -600,5 +601,29 @@
     testList.clear(); 
 }
 
+void TestPhoneResourceAdapter::testBtToolBarCommandList ()
+{
+    m_resourceAdapter = PhoneResourceAdapter::Instance(this);
+    PhoneUIQtButtonsController* buttonsController = 
+        m_resourceAdapter->buttonsController();
+    
+    QList<PhoneAction::ToolBarItem> testList;
+    buttonsController->setButtonFlags(PhoneUIQtButtonsController::BluetoothAvailable,true);
+    buttonsController->setButtonFlags(PhoneUIQtButtonsController::IhfAsPushButton,false);
+    
+    testList = m_resourceAdapter->convertToToolBarCommandList(R_PHONEUI_CALLHANDLING_INCALL_BTAA_CBA);
+    QVERIFY(0 < testList.count());
+    QVERIFY(PhoneInCallCmdBtHandsfree == testList.at(0).mCommandId);
+    QVERIFY(true == testList.at(0).mEnabled);
+    testList.clear();
+    
+    buttonsController->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+    testList = m_resourceAdapter->convertToToolBarCommandList(R_PHONEUI_CALLHANDLING_INCALL_BTAA_CBA);
+    QVERIFY(0 < testList.count());
+    QVERIFY(PhoneInCallCmdHandset == testList.at(0).mCommandId);
+    QVERIFY(true == testList.at(0).mEnabled);
+    testList.clear(); 
+}
+
 PHONE_QT_RESOURCE_ADAPTER_TEST_MAIN(TestPhoneResourceAdapter)
 #include "unit_tests.moc"
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuicommandcontroller/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuicommandcontroller/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -27,6 +27,8 @@
 #include "phonebubblewrapper.h"
 #include "phoneuicommandcontroller.h"
 #include "phoneresourceids.h"
+#include "phoneresourceadapter.h"
+#include "phoneuiqtbuttonscontroller.h"
 
 extern bool m_setActions;
 extern bool m_setInvalidCommand;
@@ -34,6 +36,7 @@
 extern bool m_setInvalidButtonCommands;
 extern bool m_setInvalidToolBarCommands;
 extern bool m_setCustomToolBarCommands;
+extern int m_phoneButtonFlags;
 
 #define PHONE_QT_VIEW_ADAPTER_TEST_MAIN(TestObject) \
 int main(int argc, char *argv[]) \
@@ -73,13 +76,13 @@
     int volumeSliderValue () { m_volumeSliderValueCalled = true; return 5; };
     void removeVolumeSlider () { m_removeVolumeSliderCalled = true; };
     void setVolumeSliderValue (
-            int value, 
-            int commandId, 
-            int maxVolumeValue, 
-            int minVolumeValue ) { m_setVolumeSliderValueCalled = true; m_volumeSliderValue = value; };
+            int , 
+            int , 
+            int , 
+            int  ) { m_setVolumeSliderValueCalled = true; m_volumeSliderValue = value; };
 
     void setExpandAction(int bubbleId, int commandId) {m_expandAction[bubbleId]=commandId;};
-    void removeExpandAction(int bubbleId) {};
+    void removeExpandAction(int ) {};
     void showDialpad() {m_showDialpadCalled = true;};  
     void hideDialpad() {m_hideDialpadCalled = true;};  
     bool isDialpadVisible() 
@@ -88,48 +91,49 @@
     QString dialpadText() {return m_dialpadText;};
     void clearAndHideDialpad() { m_clearAndHideDialpadCalled = true;};
     void clearDialpad() {};
-    void bringToForeground() {;};
-    void setMenuActions(const QList<PhoneAction*>& actions) { m_setMenuActionsCalled = true;};
-    void shutdownPhoneApp() {;};
-    void setBackButtonVisible(bool visible) {;};
+    void bringToForeground() {};
+    void setMenuActions(const QList<PhoneAction*>& ) { m_setMenuActionsCalled = true;};
+    void shutdownPhoneApp() {};
+    void setBackButtonVisible(bool ) {};
     HbMenu &menuReference(){return m_menu;};
+    void captureKey(Qt::Key , bool ) {};
     
     // From BubbleManagerIF
     void startChanges () { m_startChangesCalled=true; };
     void endChanges () { m_endChangesCalled=true; };
     int createCallHeader () { return 0; };
-    void removeCallHeader (int bubbleId) {};
-    void setState (int bubbleId, PhoneCallState state) {};
+    void removeCallHeader (int ) {};
+    void setState (int , PhoneCallState ) {};
     void setLabel ( 
-        int bubbleId, 
-        const QString& text, 
-        Qt::TextElideMode clipDirection) {};
-    void setCli (int bubbleId, 
-                 const QString& cliText, 
-                 Qt::TextElideMode clipDirection) {};
+        int , 
+        const QString& , 
+        Qt::TextElideMode ) {};
+    void setCli (int , 
+                 const QString& , 
+                 Qt::TextElideMode ) {};
     void updateCLI ( 
-        int bubbleId, 
-        const QString& cliText, 
-        Qt::TextElideMode clipDirection) {};
+        int , 
+        const QString& , 
+        Qt::TextElideMode ) {};
     void setSecondaryCli ( 
-        int bubbleId, 
-        const QString& cliText, 
+        int , 
+        const QString& , 
         Qt::TextElideMode clipDirection = Qt::ElideLeft) {};
-    void setCallTime (int bubbleId, const QString& callTime) {};
+    void setCallTime (int , const QString& ) {};
     void updateCallTime (int bubbleId, const QString& callTime) { m_updateCallTimeCalled=true; m_int=bubbleId; m_string=callTime; };
-    void setCallObjectImage (int bubbleId, const QString &fileName) {};
-    void setCallObjectFromTheme (int bubbleId) {};
-    void setCallObjectText (int bubbleId, const QString &text) {};
-    void setCallFlags (int bubbleId, int flags) {};
-    void setCallFlag (int bubbleId, PhoneCallFlags flag, bool set) {};
-    void setNumberType (int bubbleId, PhoneNumberType type) {};
+    void setCallObjectImage (int , const QString &) {};
+    void setCallObjectFromTheme (int ) {};
+    void setCallObjectText (int , const QString &) {};
+    void setCallFlags (int , int ) {};
+    void setCallFlag (int , PhoneCallFlags , bool ) {};
+    void setNumberType (int , PhoneNumberType ) {};
     void updateCallHeaderText( 
-        int bubbleId, 
-        const QString &longText, 
-        const QString &shortText, 
-        Qt::TextElideMode clipDirection) {};
+        int , 
+        const QString &, 
+        const QString &, 
+        Qt::TextElideMode ) {};
     void setPhoneMuted (bool muted) { m_setPhoneMutedCalled = muted; };
-    int createConference (int bubble1, int bubble2) { return 1; };
+    int createConference (int , int ) { return 1; };
     void removeConference () {};
     void addRowToConference (int bubbleId) {};
     void removeRowFromConference (int bubbleId) {};
@@ -140,17 +144,18 @@
     int selectionIdInConference () const { return 0; };
     void moveHighlightOneUpInConference () {};
     void moveHighlightOneDownInConference () {};
-    void setExpandedConferenceCallHeader (bool expanded) { m_ExpandConferenceCalled = true; };
+    void setExpandedConferenceCallHeader (bool ) { m_ExpandConferenceCalled = true; };
     bool isConferenceExpanded () const { return false; };
     int shownHeaderCount () const { return 1; };
-    void setParticipantListCli (int aBubbleId, ParticipantListCli aParticipantCli) {};
-    void addAction (int bubble, HbAction *action) {};
-    void clearActions (int bubble) {};
-    QGraphicsWidget* graphicsWidgetForAction (HbAction *action) const { return 0;};
-    void addParticipantListAction (HbAction *action) {};
+    void setParticipantListCli (int , ParticipantListCli ) {};
+    void addAction (int , HbAction *) {};
+    void clearActions (int ) {};
+    QGraphicsWidget* graphicsWidgetForAction (HbAction *) const { return 0;};
+    void addParticipantListAction (HbAction *) {};
     int expandedBubble() const { return 1; };
-    void setExpandAction(int bubbleId, HbAction* action) {};
-    void setBubbleSelectionDisabled(bool b) {};
+    void setExpandAction(int , HbAction* ) {};
+    void setBubbleSelectionDisabled(bool ) {};
+    void setRestrictedMode(bool ) {};
     
 signals:
     void dialpadAboutToClose();
@@ -376,6 +381,9 @@
     qDeleteAll(actions.values());
     actions.clear();
     
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::Ihf, true);
+    
     callStates[callId] = EPEStateHeld;
     callState = EPEStateHeld;
     actions = m_commandController->pushButtonActionsForCall(
@@ -520,6 +528,9 @@
     //2 calls
     //////////////////////////////////////////////////////////////////////////
     
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::BluetoothAvailable, true);
+    
     callStates[2] = EPEStateHeldConference;
     actions = m_commandController->pushButtonActionsForCall(
             callState,
@@ -634,6 +645,9 @@
     qDeleteAll(actions.values());
     actions.clear();
     
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::Btaa, true);
+    
     callStates[callId] = EPEStateConnected;
     callStates[2] = EPEStateHeldConference;
     callState = EPEStateHeldConference;
@@ -683,6 +697,7 @@
 
 void TestPhoneUiCommandController::testToolBarActionsForCall()
 {
+    m_phoneButtonFlags = 0;
     int callState = EPEStateConnected;
     QMap<int,int> callStates;
     QMap<int,int> serviceIds;
@@ -692,6 +707,15 @@
     serviceIds[callId] = serviceId;
     m_setInvalidToolBarCommands = false;
     m_setCustomToolBarCommands = false;
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::Btaa, false);
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::BluetoothAvailable, false);
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::IhfAsPushButton, false);
+    PhoneResourceAdapter::Instance()->buttonsController()->
+            setButtonFlags(PhoneUIQtButtonsController::Ihf, false);
+    
     
     QList<PhoneAction *> actions = 
         m_commandController->toolBarActions(
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/phoneapplauncher_stub.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* 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 <devicelockaccessapi.h>
+
+#include "phoneapplauncher.h"
+#include "qtphonelog.h"
+
+/*!
+    PhoneAppLauncher::PhoneAppLauncher.
+ */
+PhoneAppLauncher::PhoneAppLauncher(QObject *parent)
+    : QObject(parent)
+{
+    PHONE_TRACE;
+}
+
+
+/*!
+    PhoneAppLauncher::~PhoneAppLauncher.
+ */
+PhoneAppLauncher::~PhoneAppLauncher()
+{
+    PHONE_TRACE;
+}
+
+/*!
+    PhoneAppLauncher::launchMessaging.
+ */
+void PhoneAppLauncher::launchMessaging(
+        const QString &toField,
+        const QString &name,
+        const QString &messageBody)
+{
+    Q_UNUSED(toField);
+    Q_UNUSED(name);
+    Q_UNUSED(messageBody);
+}
+
+/*!
+    PhoneAppLauncher::launchContacts.
+ */
+void PhoneAppLauncher::launchContacts()
+{
+
+}
+
+/*!
+    PhoneAppLauncher::launchLogs.
+ */
+void PhoneAppLauncher::launchLogs(
+        int activatedView,
+        bool showDialpad,
+        const QString &dialpadText)
+{
+    Q_UNUSED(activatedView);
+    Q_UNUSED(showDialpad);
+    Q_UNUSED(dialpadText);
+}
+
+/*!
+    PhoneAppLauncher::sendServiceRequest.
+ */
+void PhoneAppLauncher::sendServiceRequest(
+        const QString &service, 
+        const QString &interface,
+        const QString &function,
+        const QList<QVariant> &arguments)
+{
+    Q_UNUSED(service);
+    Q_UNUSED(interface);
+    Q_UNUSED(function);
+    Q_UNUSED(arguments);
+}
+
+// end of file
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/phonevisibilityhandler_stub.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/phonevisibilityhandler_stub.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -83,10 +83,10 @@
 /*!
     PhoneVisibilityHandler::ordinalPosition.
  */
-int PhoneVisibilityHandler::ordinalPosition()
+bool PhoneVisibilityHandler::phoneVisible()
 {
     m_ordinalPositionCalled = true;
-    return -1;
+    return false;
 }
 
 /*!
@@ -107,3 +107,12 @@
 {
     Q_UNUSED(action)
 }
+
+/*!
+    PhoneVisibilityHandler::carModeChanged.
+ */
+void PhoneVisibilityHandler::carModeChanged()
+{
+
+}
+
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -34,6 +34,7 @@
 #include "tphonecmdparamemergencycallheaderdata.h"
 #include "tphonecmdparamboolean.h"
 #include "tphonecmdparamringtone.h"
+#include "tphonecmdparamkeycapture.h"
 #include "pevirtualengine.h"
 #include "bubblemanagerif.h"
 #include "phoneresourceids.h"
@@ -105,12 +106,12 @@
     void removeVolumeSlider () { m_removeVolumeSliderCalled = true; };
     void setVolumeSliderValue (
             int value, 
-            int commandId, 
-            int maxVolumeValue, 
-            int minVolumeValue ) { m_setVolumeSliderValueCalled = true; m_volumeSliderValue = value; };
+            int , 
+            int , 
+            int  ) { m_setVolumeSliderValueCalled = true; m_volumeSliderValue = value; };
 
     void setExpandAction(int bubbleId, int commandId) {m_expandAction[bubbleId]=commandId;};
-    void removeExpandAction(int bubbleId) {};
+    void removeExpandAction(int ) {};
     void showDialpad() {m_showDialpadCalled = true;};  
     void hideDialpad() {m_hideDialpadCalled = true;};  
     bool isDialpadVisible() 
@@ -119,69 +120,73 @@
     QString dialpadText() {return m_dialpadText;};
     void clearDialpad() {};
     void clearAndHideDialpad() { m_clearAndHideDialpadCalled = true;};
-    void bringToForeground() {;};
-    void setMenuActions(const QList<PhoneAction*>& actions) { m_setMenuActionsCalled = true;};
-    void shutdownPhoneApp() {;};
-    void setBackButtonVisible(bool visible) {;};
+    void bringToForeground() {};
+    void setMenuActions(const QList<PhoneAction*>& ) { m_setMenuActionsCalled = true;};
+    void shutdownPhoneApp() {};
+    void setBackButtonVisible(bool ) {};
     HbMenu &menuReference(){return m_menu;};
+    void captureKey(Qt::Key key, bool capture) {
+        m_capturedKey = key;
+        m_captured = capture;};
     
     // From BubbleManagerIF
     void startChanges () { m_startChangesCalled=true; };
     void endChanges () { m_endChangesCalled=true; };
     int createCallHeader () { return 0; };
-    void removeCallHeader (int bubbleId) {};
-    void setState (int bubbleId, PhoneCallState state) {};
+    void removeCallHeader (int ) {};
+    void setState (int , PhoneCallState ) {};
     void setLabel ( 
-        int bubbleId, 
-        const QString& text, 
-        Qt::TextElideMode clipDirection) {};
-    void setCli (int bubbleId, 
-                 const QString& cliText, 
-                 Qt::TextElideMode clipDirection) {};
+        int , 
+        const QString& , 
+        Qt::TextElideMode ) {};
+    void setCli (int , 
+                 const QString& , 
+                 Qt::TextElideMode ) {};
     void updateCLI ( 
-        int bubbleId, 
-        const QString& cliText, 
-        Qt::TextElideMode clipDirection) {};
+        int , 
+        const QString& , 
+        Qt::TextElideMode ) {};
     void setSecondaryCli ( 
-        int bubbleId, 
-        const QString& cliText, 
-        Qt::TextElideMode clipDirection = Qt::ElideLeft) {};
-    void setCallTime (int bubbleId, const QString& callTime) {};
+        int , 
+        const QString& , 
+        Qt::TextElideMode ) {};
+    void setCallTime (int , const QString& ) {};
     void updateCallTime (int bubbleId, const QString& callTime) { m_updateCallTimeCalled=true; m_int=bubbleId; m_string=callTime; };
-    void setCallObjectImage (int bubbleId, const QString &fileName) {};
-    void setCallObjectFromTheme (int bubbleId) {};
-    void setCallObjectText (int bubbleId, const QString &text) {};
-    void setCallFlags (int bubbleId, int flags) {};
-    void setCallFlag (int bubbleId, PhoneCallFlags flag, bool set) {};
-    void setNumberType (int bubbleId, PhoneNumberType type) {};
+    void setCallObjectImage (int , const QString &) {};
+    void setCallObjectFromTheme (int ) {};
+    void setCallObjectText (int , const QString &) {};
+    void setCallFlags (int , int ) {};
+    void setCallFlag (int , PhoneCallFlags , bool ) {};
+    void setNumberType (int , PhoneNumberType ) {};
     void updateCallHeaderText( 
-        int bubbleId, 
-        const QString &longText, 
-        const QString &shortText, 
-        Qt::TextElideMode clipDirection) {};
+        int , 
+        const QString &, 
+        const QString &, 
+        Qt::TextElideMode ) {};
     void setPhoneMuted (bool muted) { m_setPhoneMutedCalled = muted; };
-    int createConference (int bubble1, int bubble2) { return 1; };
+    int createConference (int , int ) { return 1; };
     void removeConference () {};
-    void addRowToConference (int bubbleId) {};
-    void removeRowFromConference (int bubbleId) {};
+    void addRowToConference (int ) {};
+    void removeRowFromConference (int ) {};
     int conferenceRowCount () const { return 2; };
-    void setSelectionInConference (int rowNumber) {};
-    void setSelectionIdInConference (int bubbleId) {};
+    void setSelectionInConference (int ) {};
+    void setSelectionIdInConference (int ) {};
     int selectionInConference () const { return 0; };
     int selectionIdInConference () const { return 0; };
     void moveHighlightOneUpInConference () {};
     void moveHighlightOneDownInConference () {};
-    void setExpandedConferenceCallHeader (bool expanded) { m_ExpandConferenceCalled = true; };
+    void setExpandedConferenceCallHeader (bool ) { m_ExpandConferenceCalled = true; };
     bool isConferenceExpanded () const { return false; };
     int shownHeaderCount () const { return 1; };
-    void setParticipantListCli (int aBubbleId, ParticipantListCli aParticipantCli) {};
-    void addAction (int bubble, HbAction *action) {};
-    void clearActions (int bubble) {};
-    QGraphicsWidget* graphicsWidgetForAction (HbAction *action) const { return 0;};
-    void addParticipantListAction (HbAction *action) {};
+    void setParticipantListCli (int , ParticipantListCli ) {};
+    void addAction (int , HbAction *) {};
+    void clearActions (int ) {};
+    QGraphicsWidget* graphicsWidgetForAction (HbAction *) const { return 0;};
+    void addParticipantListAction (HbAction *) {};
     int expandedBubble() const { return 1; };
-    void setExpandAction(int bubbleId, HbAction* action) {};
-    void setBubbleSelectionDisabled(bool b) {};
+    void setExpandAction(int , HbAction* ) {};
+    void setBubbleSelectionDisabled(bool ) {};
+    void setRestrictedMode(bool ) {};
     
 signals:
     void dialpadAboutToClose();
@@ -242,6 +247,8 @@
     void testBeginEndUiUpdate();
     void testIndicatorController();
     void testOpenLogs();
+    void testSetFlags();
+    void testCaptureEndKey();
 
 private:
     PhoneUIQtViewAdapter *m_adapter; // class under test
@@ -269,7 +276,9 @@
     bool m_isDialpadVisible;
     QString m_dialpadText;
     HbMenu m_menu;
-
+    bool m_captured;
+    Qt::Key m_capturedKey;
+    QList<int> mParticipantListActions;
 };
 
 TestPhoneUIQtViewAdapter::TestPhoneUIQtViewAdapter () :
@@ -332,15 +341,15 @@
 
 void TestPhoneUIQtViewAdapter::addParticipantListAction(
     int commandId,
-    const QString& text, 
-    const HbIcon& icon)
+    const QString& , 
+    const HbIcon& )
 {
-
+    mParticipantListActions.append(commandId);
 }
 
 void TestPhoneUIQtViewAdapter::clearParticipantListActions()
 {
-
+    mParticipantListActions.clear();
 }
 
 void TestPhoneUIQtViewAdapter::testEPhoneViewSetTopApplicationCommand ()
@@ -902,6 +911,9 @@
     
     m_adapter->ExecuteCommandL (EPhoneViewCreateConference, 3, &callHeader);    
     QVERIFY (m_creataConferenceCalled == true);
+    QVERIFY (mParticipantListActions.count()==2);
+    QVERIFY (mParticipantListActions.at(0)==EPhoneInCallCmdPrivate);
+    QVERIFY (mParticipantListActions.at(1)==EPhoneInCallCmdDrop);
     
     //
     TPhoneCmdParamBoolean  conferenceDataValue;
@@ -910,6 +922,7 @@
     
     m_adapter->ExecuteCommandL(EPhoneViewRemoveConferenceBubble);
     QVERIFY (m_removeConferenceCalled == true);
+    QVERIFY (mParticipantListActions.count()==0);
     
     m_adapter->ExecuteCommandL (EPhoneViewGetCallExistsInConference, 0, &conferenceDataValue);
     QVERIFY (conferenceDataValue.Boolean() == false);
@@ -1306,6 +1319,49 @@
     QVERIFY(m_sendToBackgroundCalled);
 }
 
+void TestPhoneUIQtViewAdapter::testSetFlags()
+{
+    TPhoneCmdParamBoolean param;
+    param.SetBoolean( ETrue );
+    m_phoneButtonFlags = 0;
+    
+    m_adapter->ExecuteCommand(EPhoneViewSetBlueToothFlag,&param);
+    m_adapter->ExecuteCommand(EPhoneViewSetIhfFlag,&param);
+    m_adapter->ExecuteCommand(EPhoneViewSetMuteFlag,&param);
+    m_adapter->ExecuteCommand(EPhoneViewSetBluetoothAvailableFlag,&param);
+
+    QVERIFY(m_phoneButtonFlags & PhoneUIQtButtonsController::Ihf);
+    QVERIFY(m_phoneButtonFlags & PhoneUIQtButtonsController::Mute);
+    QVERIFY(m_phoneButtonFlags & PhoneUIQtButtonsController::Btaa);
+    QVERIFY(m_phoneButtonFlags & PhoneUIQtButtonsController::BluetoothAvailable);
+}
+
+void TestPhoneUIQtViewAdapter::testCaptureEndKey()
+{
+    TPhoneCmdParamKeyCapture captureParam;
+    captureParam.SetKeyCode( EKeyNo );
+    m_captured = false;
+    m_capturedKey = Qt::Key_0;
+    
+    m_adapter->ExecuteCommand(EPhoneViewStartCapturingKey,&captureParam);
+    QVERIFY(m_captured);
+    QVERIFY(m_capturedKey == Qt::Key_No);
+   
+    m_adapter->ExecuteCommand(EPhoneViewStopCapturingKey,&captureParam);
+    QVERIFY(false == m_captured);
+    QVERIFY(m_capturedKey == Qt::Key_No);
+    
+    m_capturedKey = Qt::Key_0;
+    captureParam.SetKeyCode( EKeyYes );
+    
+    m_adapter->ExecuteCommand(EPhoneViewStartCapturingKey,&captureParam);
+    QVERIFY(false == m_captured);
+    QVERIFY(m_capturedKey == Qt::Key_0);
+    
+    m_adapter->ExecuteCommand(EPhoneViewStopCapturingKey,&captureParam);
+    QVERIFY(false == m_captured);
+    QVERIFY(m_capturedKey == Qt::Key_0);
+}
 
 PHONE_QT_VIEW_ADAPTER_TEST_MAIN(TestPhoneUIQtViewAdapter)
 #include "unit_tests.moc"
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/ut_phoneuiqtviewadapter.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtviewadapter/ut_phoneuiqtviewadapter.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -80,5 +80,7 @@
 SOURCES += cphonemediatorfactory_stub.cpp
 SOURCES += cphonemediatorsender_stub.cpp
 SOURCES += phonenotecontroller_stub.cpp
+HEADERS += ../../inc/phoneapplauncher.h
+SOURCES += phoneapplauncher_stub.cpp
 SOURCES += unit_tests.cpp
 
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonevisibilityhandler/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonevisibilityhandler/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -27,12 +27,16 @@
 #include <telinformationpskeys.h>
 #include <coreapplicationuisdomainpskeys.h>
 #include <ccallinfoiter.h>
+#include <keyguardaccessapi.h>
 #include "phoneuiqtviewif.h"
 #define private public
 #include "phonevisibilityhandler.h"
 #undef public
 
 int m_callCount = 0;
+int g_keyGuardEnabled = false;
+int g_enableKeyGuardCalled = false;
+int g_disableKeyGuardCalled = false;
 
 #define PHONE_TEST_MAIN(TestObject) \
 int main(int argc, char *argv[]) \
@@ -63,26 +67,26 @@
 
     // From PhoneUIQtViewIF
     BubbleManagerIF& bubbleManager () {};
-    void addBubbleCommand (int bubbleId, const PhoneAction& action) {};
-    void clearBubbleCommands (int bubbleId) {};
+    void addBubbleCommand (int , const PhoneAction& ) {};
+    void clearBubbleCommands (int ) {};
     void addParticipantListAction(
-            int commandId,  
-            const QString &text, 
-            const HbIcon &icon) {};
+            int ,  
+            const QString &, 
+            const HbIcon &) {};
     void clearParticipantListActions() {};
     void hideToolbar () {};
     void showToolbar () {};
-    void setToolbarActions (const QList<PhoneAction*>& actions) {};
+    void setToolbarActions (const QList<PhoneAction*>& ) {};
     int volumeSliderValue () {};
     void removeVolumeSlider () {};
     void setVolumeSliderValue (
-            int value, 
-            int commandId, 
-            int maxVolumeValue, 
-            int minVolumeValue ) {};
+            int , 
+            int , 
+            int , 
+            int  ) {};
 
-    void setExpandAction(int bubbleId, int commandId) {};
-    void removeExpandAction(int bubbleId) {};
+    void setExpandAction(int , int ) {};
+    void removeExpandAction(int ) {};
     void showDialpad() {};
     void hideDialpad() {};
     bool isDialpadVisible() {};
@@ -90,10 +94,13 @@
     void clearAndHideDialpad() {};
     void clearDialpad() {};
     void bringToForeground() { m_bringToForegroundCalled = true;};
-    void setMenuActions(const QList<PhoneAction*>& actions) {};
+    void setMenuActions(const QList<PhoneAction*>& ) {};
     void shutdownPhoneApp() {};
-    void setBackButtonVisible(bool visible) {};
+    void setBackButtonVisible(bool ) {};
     HbMenu &menuReference() {};
+    void captureKey(Qt::Key , bool ) {};
+    void setRestrictedMode(bool ) {};
+    
 public slots:
     void initTestCase();
 
@@ -111,6 +118,8 @@
     void t_carmode();
     
     void t_devicelock();
+    
+    void t_keyGuardHandling();
 
     
 private:
@@ -121,6 +130,33 @@
     int m_normalPriority;
 };
 
+CKeyguardAccessApi* CKeyguardAccessApi::NewL()
+{
+    return new CKeyguardAccessApi;
+}
+CKeyguardAccessApi::~CKeyguardAccessApi( ) {}
+CKeyguardAccessApi::CKeyguardAccessApi( ) {}
+
+
+TBool CKeyguardAccessApi::IsKeyguardEnabled()
+{
+    return g_keyGuardEnabled;
+}
+
+TInt CKeyguardAccessApi::EnableKeyguard( TBool  )
+{
+    g_enableKeyGuardCalled = true;
+    return 0;
+}
+
+TInt CKeyguardAccessApi::DisableKeyguard( TBool  )
+{
+    g_disableKeyGuardCalled = true;
+    return 0;
+}
+
+
+
 TestPhoneVisibilityHandler::TestPhoneVisibilityHandler ()
 {
 }
@@ -135,7 +171,7 @@
     
     m_handler = new PhoneVisibilityHandler (*this, this);
     
-    m_startPosition = m_handler->ordinalPosition();
+    m_startPosition = CEikonEnv::Static()->RootWin().OrdinalPosition();
     QVERIFY(m_startPosition > 0); // Expect OrdinalPosition higher than 0
     m_startPriority = CEikonEnv::Static()->RootWin().OrdinalPriority();
     QCOMPARE(m_startPriority, (int)ECoeWinPriorityNeverAtFront);
@@ -153,6 +189,9 @@
 
 void TestPhoneVisibilityHandler::cleanup ()
 {
+    g_keyGuardEnabled = false;
+    g_enableKeyGuardCalled = false;
+    g_disableKeyGuardCalled = false;
     m_bringToForegroundCalled = false;
 }
 
@@ -176,7 +215,7 @@
     m_handler->bringToForeground();
     QVERIFY(m_bringToForegroundCalled);
     QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
-    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
     
     // Test hide device dialogs when foreground ( false )
     m_handler->hideDeviceDialogs(false);
@@ -186,7 +225,7 @@
     // Test hide device dialogs when foreground ( true )
     m_handler->hideDeviceDialogs(true);
     QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
-    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
     
     // send backgroud is called last
     m_handler->sendToBackground(false);
@@ -227,6 +266,11 @@
     QTest::qWait(100);
     QVERIFY(m_handler->m_carModeEnabled == false);
     QVERIFY(m_bringToForegroundCalled == false);
+    
+    // send backgroud is called last
+    m_handler->sendToBackground(false);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
 }
 
 void TestPhoneVisibilityHandler::t_devicelock()
@@ -249,7 +293,7 @@
     m_handler->bringToForeground();
     QVERIFY(m_bringToForegroundCalled);
     QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
-    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
     
     // Test hide device dialogs when foreground ( false )
     m_handler->hideDeviceDialogs(false);
@@ -259,12 +303,12 @@
     // Test hide device dialogs when foreground ( true )
     m_handler->hideDeviceDialogs(true);
     QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
-    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
     
     // Test lock status change
     m_handler->HandlePropertyChangedL(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
     QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
-    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
 
     
     // send backgroud is called last
@@ -275,5 +319,114 @@
 }
 
 
+void TestPhoneVisibilityHandler::t_keyGuardHandling()
+{
+    // Test when keyguard is not enabled before call
+    g_keyGuardEnabled = false; 
+    
+    // bringToForeground is call
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+    
+    cleanup();
+    // send backgroud is called last
+    m_handler->sendToBackground(false);
+    QVERIFY(!g_enableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+    
+    
+    // Test when keyguard is enabled before call
+    cleanup();
+    g_keyGuardEnabled = true; 
+    
+    // bringToForeground is call
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+    
+    cleanup();
+    // send backgroud is called last
+    m_handler->sendToBackground(false);
+    QVERIFY(g_enableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+    
+    // Test when keyguard is enabled before call +
+    // keyguard is not enabled when phone is background
+    cleanup();
+    g_keyGuardEnabled = true;
+    
+    // bringToForeground is call
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+    cleanup();
+    // Test that keyguard is not enabled when phone is background
+    CEikonEnv::Static()->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNormal);
+    m_handler->sendToBackground(false);
+    QVERIFY(!g_enableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+    
+    
+    // Test case where two calls is created and key guard is enabled
+    cleanup();
+    g_keyGuardEnabled = true; 
+    
+    // bringToForeground is call
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+    
+    cleanup();
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+    
+    cleanup();
+    m_handler->sendToBackground(false);
+    QVERIFY(g_enableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+    
+    // Test case where two calls is created and key guard is enabled during middle
+    cleanup();
+    
+    // bringToForeground is call
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+    
+    cleanup();
+    g_keyGuardEnabled = true; 
+    m_handler->bringToForeground();
+    QVERIFY(m_bringToForegroundCalled);
+    QVERIFY(g_disableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+    
+    cleanup();
+    m_handler->sendToBackground(false);
+    QVERIFY(g_enableKeyGuardCalled);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+    QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+}
+
+
 PHONE_TEST_MAIN(TestPhoneVisibilityHandler)
 #include "unit_tests.moc"
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_telephonyservice/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_telephonyservice/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -55,37 +55,40 @@
     
         BubbleManagerIF& bubbleManager (){};
         void addBubbleCommand ( 
-                int bubbleId,
-                const PhoneAction& action ){};
-        void clearBubbleCommands (int bubbleId){};
+                int ,
+                const PhoneAction&  ){};
+        void clearBubbleCommands (int ){};
         void addParticipantListAction(
-                int commandId,  
-                const QString &text, 
-                const HbIcon &icon){};
+                int ,  
+                const QString &, 
+                const HbIcon &){};
         void clearParticipantListActions(){};
         void hideToolbar () {};
         void showToolbar () {};
-        void setToolbarActions (const QList<PhoneAction*>& actions){};
-        int volumeSliderValue () {};
+        void setToolbarActions (const QList<PhoneAction*>& ){};
+        int volumeSliderValue () { return 0; };
         void removeVolumeSlider () {};
         void setVolumeSliderValue (
-                int value, 
-                int commandId, 
-                int maxVolumeValue, 
-                int minVolumeValue ) { };
+                int , 
+                int , 
+                int , 
+                int  ) { };
 
-        void setExpandAction(int bubbleId, int commandId) {};
-        void removeExpandAction(int bubbleId) {};
+        void setExpandAction(int , int ) {};
+        void removeExpandAction(int ) {};
         void showDialpad() {};
         void hideDialpad() {};
-        bool isDialpadVisible() {};
+        bool isDialpadVisible() { return false; };
         QString dialpadText() {return QString("1234567");};
         void clearAndHideDialpad(){};
-        void bringToForeground() {;};
-        void setMenuActions(const QList<PhoneAction*>& actions){;};
-        void shutdownPhoneApp() {;};
-        void setBackButtonVisible(bool visible) {;};        
+        void clearDialpad() {};
+        void bringToForeground() {};
+        void setMenuActions(const QList<PhoneAction*>& ){};
+        void shutdownPhoneApp() {};
+        void setBackButtonVisible(bool ) {};        
         HbMenu &menuReference() { return mMenu; };
+        void captureKey(Qt::Key , bool ) {};
+        void setRestrictedMode(bool ) {};
         
 public slots:
     void initTestCase ();
--- a/phoneapp/phoneuistates/inc/cphoneerrormessageshandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/inc/cphoneerrormessageshandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -113,7 +113,18 @@
         * Return ETrue if video call.
         */
         TBool IsVideoCall( const TInt aCallId ) const;
- 
+        
+        /**
+        * Return ETrue if voice call.
+        */
+        TBool IsVoiceCall( const TInt aCallId ) const;
+
+        /**
+        * Gets cause code and resource id.
+        */
+        TBool GetCauseCode( TInt &aCauseCode, 
+                TInt &aResourceId, TBool &aNotification ) const; 
+				
     protected:
         
         /**
@@ -122,6 +133,10 @@
         MPhoneViewCommandHandle* iViewCommandHandle;
         
         MPhoneStateMachine* iStateMachine;
+        
+        TBool iCauseCodeVariation;
+        
+        TInt iCallId;
               
     };
 
--- a/phoneapp/phoneuistates/src/cphonealerting.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonealerting.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -116,7 +116,7 @@
                 {
                 // Show not allowed note
                 SendGlobalErrorNoteL( 
-                    EPhoneNoteTextNotAllowed );
+                    EPhoneNoteTextNotAllowed, ETrue );
                 }
             break;
 
--- a/phoneapp/phoneuistates/src/cphoneconference.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneconference.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -147,6 +147,12 @@
             {
             TPhoneCmdParamCallHeaderData callHeaderParam;
             callHeaderParam.SetCallState( EPEStateHeld );
+            TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
+            TInt callLabelId = CPhoneMainResourceResolver::Instance()->
+                    ResolveResourceID( EPhoneCallOnHold );
+
+            StringLoader::Load( labelText, callLabelId, CCoeEnv::Static() );
+            callHeaderParam.SetLabelText( labelText );
             iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
                 &callHeaderParam );
             }
@@ -512,7 +518,7 @@
     
     if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
         {
-        SendGlobalInfoNoteL( EPhoneInformationConferenceOnHold );
+        SendGlobalInfoNoteL( EPhoneInformationConferenceOnHold, ETrue );
         }
     
     SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate );
@@ -593,7 +599,7 @@
     
     if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
         { 
-        SendGlobalInfoNoteL( EPhoneInformationConferenceActiveted );
+        SendGlobalInfoNoteL( EPhoneInformationConferenceActiveted, ETrue );
         }
     
     SetTouchPaneButtonEnabled( EPhoneInCallCmdPrivate );
--- a/phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -128,7 +128,7 @@
             break;
             
         case MEngineMonitor::EPEMessageInValidEmergencyNumber:              
-            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );                       
+            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );                       
             break;
             
         case MEngineMonitor::EPEMessageValidEmergencyNumber:
--- a/phoneapp/phoneuistates/src/cphoneconferenceandsingleandwaiting.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandsingleandwaiting.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -409,7 +409,7 @@
                 {
                 // Not allowed to answer
                 SendGlobalWarningNoteL(
-                    EPhoneNoteTextCallNotAllowed );
+                    EPhoneNoteTextCallNotAllowed, ETrue );
                 }
             break;
 
--- a/phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -185,7 +185,7 @@
                 // We can't answer to call in this state so display
                 // Not allowed -note.
                 SendGlobalErrorNoteL( 
-                    EPhoneNoteTextNotAllowed );                                             
+                    EPhoneNoteTextNotAllowed, ETrue );                                             
                  }
             break;
             
--- a/phoneapp/phoneuistates/src/cphoneemergency.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneemergency.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -31,6 +31,7 @@
 #include "tphonecmdparamboolean.h"
 #include "tphonecmdparamemergencycallheaderdata.h"
 #include "tphonecmdparamcallheaderdata.h"
+#include "tphonecmdparamkeycapture.h"
 #include "mphonestatemachine.h"
 #include "phonestatedefinitionsgsm.h"
 #include "phoneviewcommanddefinitions.h"
@@ -221,6 +222,11 @@
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote );
         // Close menu bar, if it is displayed
         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
+        
+        TPhoneCmdParamKeyCapture captureParam;
+        captureParam.SetKeyCode( EKeyNo );
+        iViewCommandHandle->ExecuteCommand( 
+                EPhoneViewStopCapturingKey, &captureParam );
 
         const TBool isSimStateNotPresentWithSecurityMode = IsSimStateNotPresentWithSecurityModeEnabled();
 
@@ -349,6 +355,10 @@
             EPhoneViewSetGlobalNotifiersDisabled,
             &globalNotifierParam );
 
+        TPhoneCmdParamKeyCapture captureParam;
+        captureParam.SetKeyCode( EKeyNo );
+        iViewCommandHandle->ExecuteCommand( EPhoneViewStartCapturingKey, &captureParam );
+        
         // Capture keys when the phone is dialling
         CaptureKeysDuringCallNotificationL( ETrue );
 
@@ -585,7 +595,7 @@
                 if ( neLength )
                     {
                     // Show not allowed note
-                    SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+                    SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
                     }
                 else
                     {
@@ -596,7 +606,7 @@
             else
                 {
                 // Show not allowed note
-                SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+                SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
                 }
             break;
 
@@ -817,7 +827,8 @@
         iStateMachine->PhoneEngineInfo()->AudioOutput();
 
     UpdateSetupCbaL();
-
+    SetTouchPaneButtons(0);
+    
     // view update
     outputParam.SetAudioOutput( audioOutput );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewActivateAudioPathUIChanges,
--- a/phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -34,6 +34,12 @@
 #include "tphonecmdparamglobalnote.h"
 #include "tphonecmdparamnote.h"
 #include "cphonemainresourceresolver.h"
+#include "cphonecenrepproxy.h"
+
+// CONSTANTS
+const TUid KCRUidTelConfiguration = {0x102828B8};
+
+const TUint32 KTelShowCauseCode   = 0x00000002;
 
 
 // ================= MEMBER FUNCTIONS =======================
@@ -45,9 +51,17 @@
     MPhoneViewCommandHandle* aViewCommandHandle,
     MPhoneStateMachine* aStateMachine ) :
     iViewCommandHandle( aViewCommandHandle),
-    iStateMachine (aStateMachine )
+    iStateMachine( aStateMachine ),
+    iCauseCodeVariation( EFalse )
     {
-    }
+    if ( KErrNone != CPhoneCenRepProxy::Instance()->GetInt(
+            KCRUidTelConfiguration,
+            KTelShowCauseCode,
+            iCauseCodeVariation ) )
+        {
+        iCauseCodeVariation = EFalse;
+        }
+    } 
 
 // -----------------------------------------------------------
 // CPhoneErrorMessagesHandler::~CPhoneErrorMessagesHandler()
@@ -113,12 +127,28 @@
         TPhoneCmdParamGlobalNote globalNoteParam;
       
         globalNoteParam.SetType( EAknGlobalInformationNote );
-        globalNoteParam.SetTextResourceId( 
-            CPhoneMainResourceResolver::Instance()->
-            ResolveResourceID( aResourceId ) );
+
         globalNoteParam.SetTone( EAvkonSIDInformationTone );
         globalNoteParam.SetNotificationDialog( aNotificationDialog );
 
+        TInt resourceID( KErrNotFound );
+        TInt causeCode( KErrNotFound );
+        TBool notification( ETrue );
+        if ( iCauseCodeVariation && GetCauseCode( causeCode, resourceID, notification ) )
+            {
+            globalNoteParam.SetNotificationDialog( notification );
+            globalNoteParam.SetCauseCode(causeCode);
+            globalNoteParam.SetTextResourceId( 
+                CPhoneMainResourceResolver::Instance()->
+                ResolveResourceID( resourceID ) );
+            }
+        else
+            {
+            globalNoteParam.SetTextResourceId( 
+                CPhoneMainResourceResolver::Instance()->
+                ResolveResourceID( aResourceId ) );
+            }
+        
         iViewCommandHandle->ExecuteCommandL( 
             EPhoneViewShowGlobalNote, &globalNoteParam );    
         }
@@ -148,12 +178,28 @@
             
         TPhoneCmdParamGlobalNote globalNoteParam;
         globalNoteParam.SetType( EAknGlobalErrorNote );
-        globalNoteParam.SetTextResourceId( 
-            CPhoneMainResourceResolver::Instance()->
-            ResolveResourceID( aResourceId ) );
+
         globalNoteParam.SetTone( CAknNoteDialog::EErrorTone );
         globalNoteParam.SetNotificationDialog( aNotificationDialog );
         
+        TInt resourceID( KErrNotFound );
+        TInt causeCode( KErrNotFound );
+        TBool notification( ETrue );
+        if ( iCauseCodeVariation && GetCauseCode( causeCode, resourceID, notification ) )
+            {
+            globalNoteParam.SetNotificationDialog( notification );
+            globalNoteParam.SetCauseCode(causeCode);
+            globalNoteParam.SetTextResourceId( 
+                CPhoneMainResourceResolver::Instance()->
+                ResolveResourceID( resourceID ) );
+            }
+        else
+            {
+            globalNoteParam.SetTextResourceId( 
+                CPhoneMainResourceResolver::Instance()->
+                ResolveResourceID( aResourceId ) );
+            }
+        
         iViewCommandHandle->ExecuteCommandL(  
             EPhoneViewShowGlobalNote, &globalNoteParam );
         }
@@ -183,12 +229,28 @@
             
         TPhoneCmdParamGlobalNote globalNoteParam;
         globalNoteParam.SetType( EAknGlobalWarningNote );
-        globalNoteParam.SetTextResourceId( 
-            CPhoneMainResourceResolver::Instance()->
-            ResolveResourceID( aResourceId ) );
+
         globalNoteParam.SetTone( EAvkonSIDWarningTone );
         globalNoteParam.SetNotificationDialog( aNotificationDialog );
 
+        TInt resourceID( KErrNotFound );
+        TInt causeCode( KErrNotFound );
+        TBool notification( ETrue );
+        if ( iCauseCodeVariation && GetCauseCode( causeCode, resourceID, notification) )
+            {
+            globalNoteParam.SetNotificationDialog( notification );
+            globalNoteParam.SetCauseCode(causeCode);
+            globalNoteParam.SetTextResourceId( 
+                CPhoneMainResourceResolver::Instance()->
+                ResolveResourceID( resourceID ) );
+            }
+        else
+            {
+            globalNoteParam.SetTextResourceId( 
+                CPhoneMainResourceResolver::Instance()->
+                ResolveResourceID( aResourceId ) );
+            }
+        
         iViewCommandHandle->ExecuteCommandL( 
             EPhoneViewShowGlobalNote, &globalNoteParam );
         }
@@ -217,7 +279,8 @@
     __PHONELOG1( EBasic, EPhoneControl,
             "PhoneUIControl: CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL - aErrorInfo.iErrorCode =%d ",
             aErrorInfo.iErrorCode);
-
+    iCallId = aErrorInfo.iCallId;
+    
     switch( aErrorInfo.iErrorCode )
         {
         case ECCPErrorRejected:
@@ -286,15 +349,12 @@
             break;
 
         case ECCPErrorUnacceptableChannel:
-        case ECCPErrorCCDestinationOutOfOrder:
-        case ECCPErrorAccessInformationDiscarded:
-        case ECCPErrorQualityOfServiceNotAvailable:        
+        case ECCPErrorCCDestinationOutOfOrder:                
         case ECCPErrorInvalidCallReferenceValue:
         case ECCPErrorCCInvalidTransitNetworkSelection:        
         case ECCPErrorConnectionError:        
         case ECCPErrorCCIncompatibleMessageInCallState:        
-            if( IsVideoCall( aErrorInfo.iCallId ) &&
-                iStateMachine->PhoneEngineInfo()->ProfileId() != EProfileOffLineId )
+            if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
                 SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible );
                 }
@@ -303,7 +363,9 @@
                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
                 }
             break;
-            
+           
+        case ECCPErrorQualityOfServiceNotAvailable:
+        case ECCPErrorAccessInformationDiscarded:
         case ECCPErrorCCResourceNotAvailable:
             SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
             break;
@@ -355,17 +417,21 @@
                 {
                 SendGlobalInfoNoteL( EPhoneNumberNotInCUG, ETrue );
                 }
-             else
+            else
                 {
                 SendGlobalWarningNoteL( EPhoneNumberNotInCUG, ETrue );   
                 }
             break;
             
         case ECCPErrorCCNoRouteToDestination:
-            if( IsVideoCall( aErrorInfo.iCallId ) )
-                {
-                SendGlobalInfoNoteL( EPhoneNotePhoneOutOf3GCoverage );
-                }
+             if( IsVideoCall( aErrorInfo.iCallId ) )
+                 {
+                 SendGlobalInfoNoteL( EPhoneErrorInConnection );
+                 }
+             else
+                 {
+                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
+                 }
              break;
             
         case ECCPErrorCCNormalCallClearing:
@@ -378,7 +444,7 @@
         case ECCPErrorCCUserNotResponding:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue18 ); 
+                SendGlobalInfoNoteL( EPhoneNoAnswer ); 
                 }
             else
                 {
@@ -387,16 +453,27 @@
             break;
             
         case ECCPErrorCCCallRejected:
-            if( IsVideoCall( aErrorInfo.iCallId ) )
+            if ( !iStateMachine->PhoneEngineInfo()->IsOutgoingCallBarringActivated() )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCalledNumberHasBarredIncomingCalls, ETrue );
+                if( IsVideoCall( aErrorInfo.iCallId ) )
+                    {
+                    SendGlobalInfoNoteL( EPhoneNoteCalledNumberHasBarredIncomingCalls, ETrue );
+                    }
+                else if ( IsVoiceCall( aErrorInfo.iCallId ))
+                    {
+                    SendGlobalWarningNoteL( EPhoneNoteCallInfoCauseValue21 );
+                    }
                 }
             break;
             
         case ECCPErrorMovedPermanently:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue22 );
+                SendGlobalInfoNoteL( EPhoneNumberNotInUse );
+                }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneNumberNotInUse, ETrue );
                 }
             break;
             
@@ -414,7 +491,7 @@
         case ECCPErrorCCNoChannelAvailable:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue34 ); 
+                SendGlobalInfoNoteL( EPhoneNetworkBusy ); 
                 }
             else
                 {
@@ -425,7 +502,11 @@
         case ECCPErrorNetworkOutOfOrder:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue38 );
+                SendGlobalInfoNoteL( EPhoneErrorInConnection );
+                }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
                 }
             break;
             
@@ -443,7 +524,11 @@
         case ECCPErrorCCIncomingCallsBarredInCug:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue55 );
+                SendGlobalInfoNoteL( EPhoneNumberBarred );
+                }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneNumberBarred, ETrue );
                 }
             break;
             
@@ -453,12 +538,22 @@
                 {
                 SendGlobalInfoNoteL( EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone );
                 }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
+                }
             break;
         
         case ECCPErrorCCBearerCapabilityNotCurrentlyAvailable:
+        case ECCPErrorCCInvalidMandatoryInformation:
+        case ECCPErrorCCUnspecifiedInterworkingError:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue58 );
+                SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible );
+                }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
                 }
             break;
             
@@ -473,19 +568,7 @@
                 } 
             break;
             
-        case ECCPErrorCCUnspecifiedInterworkingError:
-            if( IsVideoCall( aErrorInfo.iCallId ) )
-                {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue127 );
-                }
-            break;
-            
-        case ECCPErrorCCPreemption:        
-        case ECCPErrorCCResponseToStatusEnquiry:        
-        case ECCPErrorCCInvalidMandatoryInformation:        
-        case ECCPErrorCCNonExistentMessageType:        
-        case ECCPErrorCCIncompatibleMessageInProtocolState:        
-        case ECCPErrorCCNonExistentInformationElement:
+        case ECCPErrorCCPreemption:                                              
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
                 SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );
@@ -495,18 +578,21 @@
                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
                 }     
             break;
-
-        case ECCPErrorCCRecoveryOnTimerExpiry:        
+        case ECCPErrorCCResponseToStatusEnquiry: 
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );                
+                SendGlobalInfoNoteL( EPhoneErrorInConnection );
                 }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
+                }              
             break;
             
         case ECCPErrorCCFacilityRejected:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );
+                SendGlobalInfoNoteL( EPhoneNoteTextRequestRejected );
                 }
             else
                 {
@@ -518,15 +604,39 @@
             SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected, ETrue );
             break;
  
-        case ECCPErrorCCServiceNotAvailable:
         case ECCPErrorCCBearerServiceNotImplemented:
         case ECCPErrorCCOnlyRestrictedDigitalInformationBCAvailable:
+        case ECCPErrorCCNonExistentMessageType:
+        case ECCPErrorCCIncompatibleMessageInProtocolState:
+        case ECCPErrorCCNonExistentInformationElement:
+        case ECCPErrorCCRecoveryOnTimerExpiry:
+            if ( IsVideoCall( aErrorInfo.iCallId ) ) 
+                {
+                SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible ); //Video call didn't succeed to called end.
+                }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
+                }
+            break;
+            
         case ECCPErrorCCServiceNotImplemented:
             if( IsVideoCall( aErrorInfo.iCallId ) )
                 {
                 SendGlobalInfoNoteL( EPhoneNoteCallInfoServiceNotAvailable );
                 }
             break;
+
+        case ECCPErrorCCServiceNotAvailable:
+            if( IsVideoCall( aErrorInfo.iCallId ) )
+                {
+                SendGlobalInfoNoteL( EPhoneErrorInConnection );
+                }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
+                }
+            break;
             
         case ECCPErrorCUGOutgoingCallsBarred:
             SendGlobalInfoNoteL( EPhoneOutgoingCallsBarredWithinCUG, ETrue );
@@ -565,6 +675,8 @@
                 aErrorInfo.iErrorCode);
             break;
         } 
+    
+    iCallId = KErrNotFound;
     }    
 
 // -----------------------------------------------------------
@@ -585,5 +697,483 @@
     return ( iStateMachine->PhoneEngineInfo()
         ->CallType( aCallId )== EPECallTypeVideo );
     }
+
+// -----------------------------------------------------------
+// CPhoneErrorMessagesHandler::IsVoiceCall
+// -----------------------------------------------------------
+//
+TBool CPhoneErrorMessagesHandler::IsVoiceCall( const TInt aCallId ) const
+    {
+    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneErrorMessagesHandler::IsVoiceCall() ");
+
+    if( aCallId == KErrNotFound )
+        {
+       // Illegal call id, check call type command
+        return ( iStateMachine->PhoneEngineInfo()->CallTypeCommand()
+            == EPECallTypeCSVoice );  
+        }
+     
+    return ( iStateMachine->PhoneEngineInfo()
+            ->CallType( aCallId )== EPECallTypeCSVoice );
+	}
     
+// -----------------------------------------------------------
+// CPhoneErrorMessagesHandler::GetCauseCode
+// -----------------------------------------------------------
+//
+TBool CPhoneErrorMessagesHandler::GetCauseCode( 
+        TInt &aCauseCode, TInt &aResourceId, TBool &aNotification ) const
+    {
+    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneErrorMessagesHandler::CauseCode() ");
+
+    aCauseCode = KErrNotFound;
+    aNotification = ETrue;
+    TInt callId = (KErrNotFound == iCallId) ? 
+        iStateMachine->PhoneEngineInfo()->CallId() :
+        iCallId;
+    
+    
+    //get exit code error from call data
+    TInt callError = iStateMachine->PhoneEngineInfo()->ProtocolError( 
+            callId );
+
+    switch( callError )
+        {
+        case KErrGsmCCUnassignedNumber:
+            aResourceId = EPhoneNumberNotInUse;
+            aCauseCode = 1;                
+            break;
+            
+        case KErrGsmCCNoRouteToDestination:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 3;                
+            break;
+
+        case KErrGsmCCChannelUnacceptable:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 6;                
+            break;
+            
+        case KErrGsmCCOperatorDeterminedBarring:
+            aResourceId = EPhoneNumberBarred;
+            aCauseCode = 8;            
+            break;
+            
+        case KErrGsmCCUserBusy:
+            aResourceId = EPhoneNumberBusy;
+            aCauseCode = 17;                
+            break;
+            
+        case KErrGsmCCUserNotResponding:
+            aResourceId = EPhoneNoAnswer;
+            aCauseCode = 18;                
+            break;
+            
+        case KErrGsmCCUserAlertingNoAnswer:
+            aResourceId = EPhoneNoAnswer;
+            aCauseCode = 19;                
+            break;
+            
+        case KErrGsmCCCallRejected:
+            if ( !iStateMachine->PhoneEngineInfo()->IsOutgoingCallBarringActivated() )
+                {
+                aResourceId = EPhoneNoteCalledNumberHasBarredIncomingCalls;
+                aCauseCode = 21;
+                }
+            break;
+            
+        case KErrGsmCCNumberChanged:
+            aResourceId = EPhoneNumberNotInUse;
+            aCauseCode = 22;
+            break;
+        
+        case KErrGsmCCNonSelectedUserClearing:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNotePhoneOutOf3GCoverage; 
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneNoAnswer;
+                }
+            aCauseCode = 26;                
+            break;
+            
+        case KErrGsmCCDestinationOutOfOrder:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 27;
+            break;
+
+        case KErrGsmCCInvalidNumberFormat:
+            aResourceId = EPhoneInvalidPhoneNumber;
+            aCauseCode = 28;                
+            break;
+            
+        case KErrGsmCCFacilityRejected:
+            aResourceId = EPhoneNoteTextRequestRejected;
+            aCauseCode = 29;                
+            break;
+     
+        case KErrGsmCCResponseToStatusEnquiry:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 30;                
+            break;
+            
+        case KErrGsmCCNormalUnspecified:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNotePhoneOutOf3GCoverage; 
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneNoAnswer;
+                }
+            aCauseCode = 31;                
+            break;
+            
+        case KErrGsmCCNoChannelAvailable:
+            aResourceId = EPhoneNetworkBusy;
+            aCauseCode = 34;                
+            break;
+            
+        case KErrGsmCCNetworkOutOfOrder:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 38;                
+            break;
+            
+        case KErrGsmCCTemporaryFailure:
+            aResourceId = EPhoneNetworkBusy;
+            aCauseCode = 41;                
+            break;
+            
+        case KErrGsmCCSwitchingEquipmentCongestion:
+            aResourceId = EPhoneNetworkBusy;
+            aCauseCode = 42;                
+            break;
+            
+        case KErrGsmCCAccessInformationDiscarded:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 43;                
+            break;
+            
+        case KErrGsmCCRequestedChannelNotAvailable:
+            aResourceId = EPhoneNetworkBusy;
+            aCauseCode = 44;                
+            break;
+            
+        case KErrGsmCCResourceNotAvailable:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 47;                
+            break;
+            
+        case KErrGsmCCQualityOfServiceNotAvailable:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 49;                
+            break;
+            
+        case KErrGsmCCRequestedFacilityNotSubscribed:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallOnlyPossibleUnder3GCoverage; 
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneNoteTextNotAllowed;
+                }
+            aCauseCode = 50;                
+            break;
+            
+        case KErrGsmCCIncomingCallsBarredInCug:
+            aResourceId = EPhoneNumberBarred;
+            aCauseCode = 55;                
+            break;
+            
+        case KErrGsmCCBearerCapabilityNotAuthorised:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone; 
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 57;                
+            break;
+   
+        case KErrGsmCCBearerCapabilityNotCurrentlyAvailable:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 58;                
+            break;
+            
+        case KErrGsmCCServiceNotAvailable:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 63;                
+            break;
+            
+        case KErrGsmCCBearerServiceNotImplemented:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 65;                
+            break;
+ 
+        case KErrGsmCCAcmGreaterThanAcmMax:
+            aResourceId = EPhoneErrorInConnection;
+            aCauseCode = 68;                
+            break;
+            
+        case KErrGsmCCRequestedFacilityNotImplemented:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNotePhoneOutOf3GCoverage;
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneNoteTextCheckNetworkservices;
+                }
+            aCauseCode = 69;                
+            break;
+            
+        case KErrGsmCCOnlyRestrictedDigitalInformationBCAvailable:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible;
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneNoteTextCheckNetworkservices;
+                }
+            aCauseCode = 70;                
+            break;
+            
+        case KErrGsmCCServiceNotImplemented:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible;
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 79;                
+            break;
+            
+        case KErrGsmCCInvalidCallReferenceValue:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible;
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 81;                
+            break;
+            
+        case KErrGsmCCUserNotInCug:
+            // Todo correct string missing
+            aResourceId = EPhoneNumberNotInCUG;
+            aCauseCode = 87;                
+            break;
+            
+        case KErrGsmCCIncompatibleDestination:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone;
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 88;                
+            break;
+       
+        case KErrGsmCCInvalidTransitNetworkSelection:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 91;                
+            break;
+            
+        case KErrGsmCCSemanticallyIncorrectMessage:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 95;                
+            break;
+            
+        case KErrGsmCCInvalidMandatoryInformation:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 96;                
+            break;
+            
+        case KErrGsmCCNonExistentMessageType:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 97;                
+            break;
+            
+        case KErrGsmCCIncompatibleMessageInProtocolState:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 98;                
+            break;
+            
+        case KErrGsmCCNonExistentInformationElement:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 99;                
+            break;
+            
+        case KErrGsmCCConditionalIEError:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 100;                
+            break;
+            
+        case KErrGsmCCIncompatibleMessageInCallState:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 101;                
+            break;
+            
+        case KErrGsmCCRecoveryOnTimerExpiry:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 102;                
+            break;
+            
+        case KErrGsmCCUnspecifiedProtocolError:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 111;                
+            break;
+            
+        case KErrGsmCCUnspecifiedInterworkingError:
+            if ( IsVideoCall( callId ) ) 
+                {
+                aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
+                aNotification = EFalse;
+                }
+            else
+                {
+                aResourceId = EPhoneErrorInConnection;
+                }
+            aCauseCode = 127;
+            break;
+        default:
+            break;
+        }  
+
+    return (aCauseCode != KErrNotFound);
+    }
+
 // End of File
--- a/phoneapp/phoneuistates/src/cphonesingleandalerting.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonesingleandalerting.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -138,7 +138,7 @@
                 {
                 // Show not allowed note
                 CPhoneState::SendGlobalErrorNoteL( 
-                    EPhoneNoteTextNotAllowed );
+                    EPhoneNoteTextNotAllowed, ETrue );
                 }
             break;
 
--- a/phoneapp/phoneuistates/src/cphonesingleandcallsetup.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonesingleandcallsetup.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -142,7 +142,7 @@
                 {
                 // Show not allowed note
                 CPhoneState::SendGlobalErrorNoteL( 
-                    EPhoneNoteTextNotAllowed );
+                    EPhoneNoteTextNotAllowed, ETrue );
                 }
             break;
 
--- a/phoneapp/phoneuistates/src/cphonesingleandcallsetupandwaiting.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonesingleandcallsetupandwaiting.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -130,7 +130,7 @@
                 // We can't answer to waiting call in this state
                 // so display Not allowed -note.                        
                 CPhoneState::SendGlobalErrorNoteL( 
-                    EPhoneNoteTextNotAllowed );
+                    EPhoneNoteTextNotAllowed, ETrue );
                 }
             break;
             
--- a/phoneapp/phoneuistates/src/cphonesinglecall.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonesinglecall.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -238,7 +238,7 @@
             break;
         
         case MEngineMonitor::EPEMessageInValidEmergencyNumber:
-            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+            SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
             break;
             
         case MEngineMonitor::EPEMessageValidEmergencyNumber:
@@ -495,7 +495,7 @@
         }
     else
         {
-        SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed );    
+        SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed, ETrue );    
         }
     }
         
@@ -710,7 +710,7 @@
     else
         {
         // Show not allowed note
-        SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed );    
+        SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed, ETrue );    
         }
     }
     
@@ -737,7 +737,7 @@
     else
         {
         // Show not allowed note
-        SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed );    
+        SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed, ETrue );    
         }                
     }
 
--- a/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -57,251 +57,253 @@
 	?LittleBubbleVisible@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 56 NONAME ; int TPhoneCmdParamIncallIndicatorData::LittleBubbleVisible(void) const
 	?SetCallState@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 57 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetCallState(int)
 	?GetString@CPhoneCenRepProxy@@QBEHABVTUid@@IAAVTDes16@@@Z @ 58 NONAME ; int CPhoneCenRepProxy::GetString(class TUid const &, unsigned int, class TDes16 &) const
-	?ResourceId@TPhoneCmdParamProgressNote@@QBEHXZ @ 59 NONAME ; int TPhoneCmdParamProgressNote::ResourceId(void) const
-	?CallId@TPhoneCmdParamCallStateData@@QBEHXZ @ 60 NONAME ; int TPhoneCmdParamCallStateData::CallId(void) const
-	?NotifyChangeL@CPhoneCenRepProxy@@QAEXABVTUid@@IPAVMPhoneCenRepObserver@@@Z @ 61 NONAME ; void CPhoneCenRepProxy::NotifyChangeL(class TUid const &, unsigned int, class MPhoneCenRepObserver *)
-	?SetResourceId@TPhoneCmdParamDynMenu@@QAEXH@Z @ 62 NONAME ; void TPhoneCmdParamDynMenu::SetResourceId(int)
-	?Validate@CPhoneKeys@@SAHABVTDesC16@@@Z @ 63 NONAME ; int CPhoneKeys::Validate(class TDesC16 const &)
-	??0TPhoneCmdParamKeyCapture@@QAE@XZ @ 64 NONAME ; TPhoneCmdParamKeyCapture::TPhoneCmdParamKeyCapture(void)
-	?SetResourceId@TPhoneCmdParamNote@@QAEXH@Z @ 65 NONAME ; void TPhoneCmdParamNote::SetResourceId(int)
-	?LogMsgFromPEToPhoneUI@CPhoneLogger@@QAEXHH@Z @ 66 NONAME ; void CPhoneLogger::LogMsgFromPEToPhoneUI(int, int)
-	??0TPhoneCmdParamProgressNote@@QAE@XZ @ 67 NONAME ; TPhoneCmdParamProgressNote::TPhoneCmdParamProgressNote(void)
-	?CallState@TPhoneCmdParamCallStateData@@QBEHXZ @ 68 NONAME ; int TPhoneCmdParamCallStateData::CallState(void) const
-	?SetPointer@TPhoneCmdParamPointer@@QAEXPAX@Z @ 69 NONAME ; void TPhoneCmdParamPointer::SetPointer(void *)
-	??1CPhoneCenRepProxy@@UAE@XZ @ 70 NONAME ; CPhoneCenRepProxy::~CPhoneCenRepProxy(void)
-	?SetEventCode@TPhoneCmdParamKeyEvent@@QAEXW4TEventCode@@@Z @ 71 NONAME ; void TPhoneCmdParamKeyEvent::SetEventCode(enum TEventCode)
-	?WaitTime@TPhoneCmdParamProgressNote@@QBE?AVTTimeIntervalMicroSeconds32@@XZ @ 72 NONAME ; class TTimeIntervalMicroSeconds32 TPhoneCmdParamProgressNote::WaitTime(void) const
-	?SetParam@TPhoneCmdParamAppInfo@@QAEXABVTDesC8@@@Z @ 73 NONAME ; void TPhoneCmdParamAppInfo::SetParam(class TDesC8 const &)
-	??0TPhoneCmdParamPointer@@QAE@XZ @ 74 NONAME ; TPhoneCmdParamPointer::TPhoneCmdParamPointer(void)
-	??0TPhoneCmdParamGlobalNote@@QAE@XZ @ 75 NONAME ; TPhoneCmdParamGlobalNote::TPhoneCmdParamGlobalNote(void)
-	?CallType@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 76 NONAME ; int TPhoneCmdParamCallHeaderData::CallType(void) const
-	?SetCiphering@TPhoneCmdParamEmergencyCallHeaderData@@QAEXH@Z @ 77 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetCiphering(int)
-	?SetTone@TPhoneCmdParamNote@@QAEXW4TTone@CAknNoteDialog@@@Z @ 78 NONAME ; void TPhoneCmdParamNote::SetTone(enum CAknNoteDialog::TTone)
-	?SetCustomCommandForTimeOut@TPhoneCmdParamQuery@@QAEXH@Z @ 79 NONAME ; void TPhoneCmdParamQuery::SetCustomCommandForTimeOut(int)
-	?IsBTAccAvailable@TPhoneCmdParamAudioAvailability@@QBEHXZ @ 80 NONAME ; int TPhoneCmdParamAudioAvailability::IsBTAccAvailable(void) const
-	?NewL@CPhoneStorage@@SAPAV1@XZ @ 81 NONAME ; class CPhoneStorage * CPhoneStorage::NewL(void)
-	?CNAPTextClippingDirection@TPhoneCmdParamCallHeaderData@@QBE?AW4TPhoneTextClippingDirection@1@XZ @ 82 NONAME ; enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection TPhoneCmdParamCallHeaderData::CNAPTextClippingDirection(void) const
-	?Timeout@TPhoneCmdParamNote@@QBE?AW4TTimeout@CAknNoteDialog@@XZ @ 83 NONAME ; enum CAknNoteDialog::TTimeout TPhoneCmdParamNote::Timeout(void) const
-	?Instance@CPhoneRecoverySystem@@SAPAV1@XZ @ 84 NONAME ; class CPhoneRecoverySystem * CPhoneRecoverySystem::Instance(void)
-	?CancelTimer@CPhoneTimer@@QAEXXZ @ 85 NONAME ; void CPhoneTimer::CancelTimer(void)
-	?NewL@CPhoneTimer@@SAPAV1@H@Z @ 86 NONAME ; class CPhoneTimer * CPhoneTimer::NewL(int)
-	?GetInt@CPhoneCenRepProxy@@QBEHABVTUid@@IAAH@Z @ 87 NONAME ; int CPhoneCenRepProxy::GetInt(class TUid const &, unsigned int, int &) const
-	?SetTextToSay@TPhoneCmdParamRingTone@@QAEXABVTDesC16@@@Z @ 88 NONAME ; void TPhoneCmdParamRingTone::SetTextToSay(class TDesC16 const &)
-	?SetCallState@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 89 NONAME ; void TPhoneCmdParamCallHeaderData::SetCallState(int)
-	?ContentCba@TPhoneCmdParamQuery@@QBEHXZ @ 90 NONAME ; int TPhoneCmdParamQuery::ContentCba(void) const
-	?SetTextResourceId@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 91 NONAME ; void TPhoneCmdParamGlobalNote::SetTextResourceId(int)
-	??0TPhoneCmdParamDynMenu@@QAE@XZ @ 92 NONAME ; TPhoneCmdParamDynMenu::TPhoneCmdParamDynMenu(void)
-	?CancelAllNotifications@CPhonePubSubProxy@@SAXPAVMPhonePubSubObserver@@@Z @ 93 NONAME ; void CPhonePubSubProxy::CancelAllNotifications(class MPhonePubSubObserver *)
-	??0TPhoneCommandParam@@QAE@XZ @ 94 NONAME ; TPhoneCommandParam::TPhoneCommandParam(void)
-	?SetCLIText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@W4TPhoneTextClippingDirection@1@@Z @ 95 NONAME ; void TPhoneCmdParamCallHeaderData::SetCLIText(class TDesC16 const &, enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection)
-	??1CPhoneLogger@@UAE@XZ @ 96 NONAME ; CPhoneLogger::~CPhoneLogger(void)
-	?Softkeys@TPhoneCmdParamGlobalNote@@QBEHXZ @ 97 NONAME ; int TPhoneCmdParamGlobalNote::Softkeys(void) const
-	?SetCallState@TPhoneCmdParamCallStateData@@QAEXH@Z @ 98 NONAME ; void TPhoneCmdParamCallStateData::SetCallState(int)
-	?CallerText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 99 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::CallerText(void) const
-	?Diverted@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 100 NONAME ; int TPhoneCmdParamCallHeaderData::Diverted(void) const
-	?String@TPhoneCmdParamString@@QAEPAVTPtr16@@XZ @ 101 NONAME ; class TPtr16 * TPhoneCmdParamString::String(void)
-	?SetKey@TPhoneCmdParamKeyCapture@@QAEXW4TStdScanCode@@@Z @ 102 NONAME ; void TPhoneCmdParamKeyCapture::SetKey(enum TStdScanCode)
-	?IsExtraChar@CPhoneKeys@@SAHH@Z @ 103 NONAME ; int CPhoneKeys::IsExtraChar(int)
-	?SetDynMenu@TPhoneCmdParamDynMenu@@QAEXPAX@Z @ 104 NONAME ; void TPhoneCmdParamDynMenu::SetDynMenu(void *)
-	?IsSecondHashKey@CPhoneKeys@@SAHABVTDes16@@@Z @ 105 NONAME ; int CPhoneKeys::IsSecondHashKey(class TDes16 const &)
-	?SetCallerImageStatus@TPhoneCmdParamRingTone@@QAEXH@Z @ 106 NONAME ; void TPhoneCmdParamRingTone::SetCallerImageStatus(int)
-	?SetTimeout@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 107 NONAME ; void TPhoneCmdParamGlobalNote::SetTimeout(int)
-	?GetReal@CPhoneCenRepProxy@@QBEHABVTUid@@IAAN@Z @ 108 NONAME ; int CPhoneCenRepProxy::GetReal(class TUid const &, unsigned int, double &) const
-	?SetShortLabelText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 109 NONAME ; void TPhoneCmdParamCallHeaderData::SetShortLabelText(class TDesC16 const &)
-	?SetDialerController@TPhoneCmdParamCustomDialer@@QAEXPAVMPhoneDialerController@@@Z @ 110 NONAME ; void TPhoneCmdParamCustomDialer::SetDialerController(class MPhoneDialerController *)
-	?RingTone@TPhoneCmdParamRingTone@@QBEABVTDesC16@@XZ @ 111 NONAME ; class TDesC16 const & TPhoneCmdParamRingTone::RingTone(void) const
-	?TimeOut@TPhoneCmdParamQuery@@QBEHXZ @ 112 NONAME ; int TPhoneCmdParamQuery::TimeOut(void) const
-	?ShortLabelText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 113 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::ShortLabelText(void) const
-	?SetInteger@TPhoneCmdParamInteger@@QAEXH@Z @ 114 NONAME ; void TPhoneCmdParamInteger::SetInteger(int)
-	?SetMaskBitmap@TPhoneCmdParamBitmap@@QAEXPAVCFbsBitmap@@@Z @ 115 NONAME ; void TPhoneCmdParamBitmap::SetMaskBitmap(class CFbsBitmap *)
-	?SetTimeout@TPhoneCmdParamNote@@QAEXW4TTimeout@CAknNoteDialog@@@Z @ 116 NONAME ; void TPhoneCmdParamNote::SetTimeout(enum CAknNoteDialog::TTimeout)
-	?IsBlockedKeysListEmpty@CPhoneStorage@@UAEHXZ @ 117 NONAME ; int CPhoneStorage::IsBlockedKeysListEmpty(void)
-	?SetCustomMessage@TPhoneCmdParamAppInfo@@QAEXABVTDesC8@@@Z @ 118 NONAME ; void TPhoneCmdParamAppInfo::SetCustomMessage(class TDesC8 const &)
-	?BaseConstructL@CPhoneResourceResolverBase@@QAEXXZ @ 119 NONAME ; void CPhoneResourceResolverBase::BaseConstructL(void)
-	?SetTextResourceId@TPhoneCmdParamNote@@QAEXH@Z @ 120 NONAME ; void TPhoneCmdParamNote::SetTextResourceId(int)
-	?SetString@TPhoneCmdParamString@@QAEXPAVTPtr16@@@Z @ 121 NONAME ; void TPhoneCmdParamString::SetString(class TPtr16 *)
-	?SetAppUid@TPhoneCmdParamAppInfo@@QAEXABVTUid@@@Z @ 122 NONAME ; void TPhoneCmdParamAppInfo::SetAppUid(class TUid const &)
-	?SetBTAccAvailable@TPhoneCmdParamAudioAvailability@@QAEXH@Z @ 123 NONAME ; void TPhoneCmdParamAudioAvailability::SetBTAccAvailable(int)
-	?IsTelephonyFeatureSupported@CPhoneCenRepProxy@@QAEHH@Z @ 124 NONAME ; int CPhoneCenRepProxy::IsTelephonyFeatureSupported(int)
-	?CallImageThemeFilePath@CPhoneCallThemeMonitor@@QBE?AVTPtrC16@@XZ @ 125 NONAME ; class TPtrC16 CPhoneCallThemeMonitor::CallImageThemeFilePath(void) const
-	?HasThumbnail@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 126 NONAME ; int TPhoneCmdParamCallHeaderData::HasThumbnail(void) const
-	?ClearBlackListNow@CPhoneClearBlacklist@@QAEXXZ @ 127 NONAME ; void CPhoneClearBlacklist::ClearBlackListNow(void)
-	?SetCipheringIndicatorAllowed@TPhoneCmdParamEmergencyCallHeaderData@@QAEXH@Z @ 128 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetCipheringIndicatorAllowed(int)
-	?SetCommandParamId@TPhoneCmdParamQuery@@QAEXW4TPhoneParamId@TPhoneCommandParam@@@Z @ 129 NONAME ; void TPhoneCmdParamQuery::SetCommandParamId(enum TPhoneCommandParam::TPhoneParamId)
-	??0TPhoneCmdParamEmergencyCallHeaderData@@QAE@XZ @ 130 NONAME ; TPhoneCmdParamEmergencyCallHeaderData::TPhoneCmdParamEmergencyCallHeaderData(void)
-	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@PAVMPhoneTimer@@@Z @ 131 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class MPhoneTimer *)
-	?NewL@CPhoneLibraryContainer@@SAPAV1@XZ @ 132 NONAME ; class CPhoneLibraryContainer * CPhoneLibraryContainer::NewL(void)
-	?CreateL@CPhoneClearBlacklist@@SAPAV1@AAVRWsSession@@ABVRWindowBase@@@Z @ 133 NONAME ; class CPhoneClearBlacklist * CPhoneClearBlacklist::CreateL(class RWsSession &, class RWindowBase const &)
-	??1CPhoneStorage@@UAE@XZ @ 134 NONAME ; CPhoneStorage::~CPhoneStorage(void)
-	?SetVolume@TPhoneCmdParamRingTone@@QAEXH@Z @ 135 NONAME ; void TPhoneCmdParamRingTone::SetVolume(int)
-	??0TPhoneCmdParamString@@QAE@XZ @ 136 NONAME ; TPhoneCmdParamString::TPhoneCmdParamString(void)
-	?SetContactLink@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC8@@@Z @ 137 NONAME ; void TPhoneCmdParamCallHeaderData::SetContactLink(class TDesC8 const &)
-	??4TPhoneCmdParamQuery@@QAEAAV0@ABV0@@Z @ 138 NONAME ; class TPhoneCmdParamQuery & TPhoneCmdParamQuery::operator=(class TPhoneCmdParamQuery const &)
-	??0TPhoneCmdParamAudioAvailability@@QAE@XZ @ 139 NONAME ; TPhoneCmdParamAudioAvailability::TPhoneCmdParamAudioAvailability(void)
-	?GetBlockedKeyList@CPhoneStorage@@UBEABV?$RArray@H@@XZ @ 140 NONAME ; class RArray<int> const & CPhoneStorage::GetBlockedKeyList(void) const
-	?Timeout@TPhoneCmdParamGlobalNote@@QBEHXZ @ 141 NONAME ; int TPhoneCmdParamGlobalNote::Timeout(void) const
-	??0TPhoneCmdParamRingTone@@QAE@XZ @ 142 NONAME ; TPhoneCmdParamRingTone::TPhoneCmdParamRingTone(void)
-	?Observer@TPhoneCmdParamNumberEntryObserver@@QAE?AVTCallBack@@XZ @ 143 NONAME ; class TCallBack TPhoneCmdParamNumberEntryObserver::Observer(void)
-	?SetSoftkeys@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 144 NONAME ; void TPhoneCmdParamGlobalNote::SetSoftkeys(int)
-	??0CPhoneResourceResolverBase@@IAE@XZ @ 145 NONAME ; CPhoneResourceResolverBase::CPhoneResourceResolverBase(void)
-	?SetCallId@TPhoneCmdParamCallStateData@@QAEXH@Z @ 146 NONAME ; void TPhoneCmdParamCallStateData::SetCallId(int)
-	?MultipleInstances@TPhoneCmdParamAppInfo@@QBEHXZ @ 147 NONAME ; int TPhoneCmdParamAppInfo::MultipleInstances(void) const
-	?ItemTextArrayForListQuery@TPhoneCmdParamQuery@@QBEPAVMDesC16Array@@XZ @ 148 NONAME ; class MDesC16Array * TPhoneCmdParamQuery::ItemTextArrayForListQuery(void) const
-	?SetHeaderText@TPhoneCmdParamEmergencyCallHeaderData@@QAEXABVTDesC16@@@Z @ 149 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetHeaderText(class TDesC16 const &)
-	?SetContentCba@TPhoneCmdParamQuery@@QAEXH@Z @ 150 NONAME ; void TPhoneCmdParamQuery::SetContentCba(int)
-	?CaptureType@TPhoneCmdParamKeyCapture@@QBE?AW4TPhoneCaptureType@@XZ @ 151 NONAME ; enum TPhoneCaptureType TPhoneCmdParamKeyCapture::CaptureType(void) const
-	?SetQueryResourceId@TPhoneCmdParamQuery@@QAEXH@Z @ 152 NONAME ; void TPhoneCmdParamQuery::SetQueryResourceId(int)
-	?CancelNotify@CPhoneCenRepProxy@@QAEXPAVMPhoneCenRepObserver@@I@Z @ 153 NONAME ; void CPhoneCenRepProxy::CancelNotify(class MPhoneCenRepObserver *, unsigned int)
-	?Param@TPhoneCmdParamAppInfo@@QBEABVTDesC8@@XZ @ 154 NONAME ; class TDesC8 const & TPhoneCmdParamAppInfo::Param(void) const
-	??0CPhoneMethodLogger@@QAE@W4TPhoneUILoggingComponent@@VTPtrC16@@@Z @ 155 NONAME ; CPhoneMethodLogger::CPhoneMethodLogger(enum TPhoneUILoggingComponent, class TPtrC16)
-	?IsDtmfTone@CPhoneKeys@@SAHABUTKeyEvent@@W4TEventCode@@@Z @ 156 NONAME ; int CPhoneKeys::IsDtmfTone(struct TKeyEvent const &, enum TEventCode)
-	?SetMode@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 157 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetMode(int)
-	?NewL@CPhoneCallThemeMonitor@@SAPAV1@XZ @ 158 NONAME ; class CPhoneCallThemeMonitor * CPhoneCallThemeMonitor::NewL(void)
-	?SendKeyEnabled@TPhoneCmdParamQuery@@QBEHXZ @ 159 NONAME ; int TPhoneCmdParamQuery::SendKeyEnabled(void) const
-	?SetNeedToEnableKeylock@CPhoneStorage@@UAEXH@Z @ 160 NONAME ; void CPhoneStorage::SetNeedToEnableKeylock(int)
-	?Find@CPhoneCenRepProxy@@QBEHABVTUid@@KKAAV?$RArray@K@@@Z @ 161 NONAME ; int CPhoneCenRepProxy::Find(class TUid const &, unsigned long, unsigned long, class RArray<unsigned long> &) const
-	?SetLabelText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 162 NONAME ; void TPhoneCmdParamCallHeaderData::SetLabelText(class TDesC16 const &)
-	?CNAPText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 163 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::CNAPText(void) const
-	?SetOwnPhoneNumberText@TPhoneCmdParamEmergencyCallHeaderData@@QAEXABVTDesC16@@@Z @ 164 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetOwnPhoneNumberText(class TDesC16 const &)
-	?Emergency@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 165 NONAME ; int TPhoneCmdParamIncallIndicatorData::Emergency(void) const
-	?AppUid@TPhoneCmdParamAppInfo@@QBE?AVTUid@@XZ @ 166 NONAME ; class TUid TPhoneCmdParamAppInfo::AppUid(void) const
-	?CustomMessage@TPhoneCmdParamAppInfo@@QBEABVTDesC8@@XZ @ 167 NONAME ; class TDesC8 const & TPhoneCmdParamAppInfo::CustomMessage(void) const
-	?QueryResourceId@TPhoneCmdParamQuery@@QBEHXZ @ 168 NONAME ; int TPhoneCmdParamQuery::QueryResourceId(void) const
-	?NotifyChangeL@CPhonePubSubProxy@@QAEXABVTUid@@IPAVMPhonePubSubObserver@@@Z @ 169 NONAME ; void CPhonePubSubProxy::NotifyChangeL(class TUid const &, unsigned int, class MPhonePubSubObserver *)
-	?SetRingTone@TPhoneCmdParamRingTone@@QAEXABVTDesC16@@@Z @ 170 NONAME ; void TPhoneCmdParamRingTone::SetRingTone(class TDesC16 const &)
-	?AppendBlockedKeysListL@CPhoneStorage@@UAEXW4TStdScanCode@@@Z @ 171 NONAME ; void CPhoneStorage::AppendBlockedKeysListL(enum TStdScanCode)
-	?SetEmergency@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 172 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetEmergency(int)
-	?SetDefaultCba@TPhoneCmdParamQuery@@QAEXH@Z @ 173 NONAME ; void TPhoneCmdParamQuery::SetDefaultCba(int)
-	?Type@TPhoneCmdParamTransEffect@@QBE?AW4TPhoneTransEffectType@@XZ @ 174 NONAME ; enum TPhoneTransEffectType TPhoneCmdParamTransEffect::Type(void) const
-	??0TPhoneCmdParamSfiData@@QAE@XZ @ 175 NONAME ; TPhoneCmdParamSfiData::TPhoneCmdParamSfiData(void)
-	??0TPhoneCmdParamCallHeaderData@@QAE@XZ @ 176 NONAME ; TPhoneCmdParamCallHeaderData::TPhoneCmdParamCallHeaderData(void)
-	??1CPhoneClearBlacklist@@UAE@XZ @ 177 NONAME ; CPhoneClearBlacklist::~CPhoneClearBlacklist(void)
-	?SetMute@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 178 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetMute(int)
-	?KeyCode@TPhoneCmdParamKeyCapture@@QBE?AW4TKeyCode@@XZ @ 179 NONAME ; enum TKeyCode TPhoneCmdParamKeyCapture::KeyCode(void) const
-	?IsNumberKey@CPhoneKeys@@SAHABUTKeyEvent@@W4TEventCode@@@Z @ 180 NONAME ; int CPhoneKeys::IsNumberKey(struct TKeyEvent const &, enum TEventCode)
-	?TextResourceId@TPhoneCmdParamGlobalNote@@QBEHXZ @ 181 NONAME ; int TPhoneCmdParamGlobalNote::TextResourceId(void) const
-	?SetCiphering@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 182 NONAME ; void TPhoneCmdParamCallHeaderData::SetCiphering(int)
-	?EnablePreconditionL@CPhoneRecoverySystem@@QAEXXZ @ 183 NONAME ; void CPhoneRecoverySystem::EnablePreconditionL(void)
-	?AddL@CPhoneRecoverySystem@@QAEHVTCallBack@@CW4TRecoveryState@CTeleRecoverySystem@@@Z @ 184 NONAME ; int CPhoneRecoverySystem::AddL(class TCallBack, signed char, enum CTeleRecoverySystem::TRecoveryState)
-	?SetLine2@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 185 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetLine2(int)
-	?SetAudioOutput@TPhoneCmdParamAudioOutput@@QAEXW4TPEAudioOutput@@@Z @ 186 NONAME ; void TPhoneCmdParamAudioOutput::SetAudioOutput(enum TPEAudioOutput)
-	?HeaderText@TPhoneCmdParamEmergencyCallHeaderData@@QBEABVTDesC16@@XZ @ 187 NONAME ; class TDesC16 const & TPhoneCmdParamEmergencyCallHeaderData::HeaderText(void) const
-	?CallImageThemeSettings@CPhoneCallThemeMonitor@@QBEHXZ @ 188 NONAME ; int CPhoneCallThemeMonitor::CallImageThemeSettings(void) const
-	??0TPhoneCmdParamTransEffect@@QAE@XZ @ 189 NONAME ; TPhoneCmdParamTransEffect::TPhoneCmdParamTransEffect(void)
-	?Number@TPhoneCmdParamSfiData@@QBEABVTDesC16@@XZ @ 190 NONAME ; class TDesC16 const & TPhoneCmdParamSfiData::Number(void) const
-	?OwnPhoneNumberText@TPhoneCmdParamEmergencyCallHeaderData@@QBEABVTDesC16@@XZ @ 191 NONAME ; class TDesC16 const & TPhoneCmdParamEmergencyCallHeaderData::OwnPhoneNumberText(void) const
-	?QueryPrompt@TPhoneCmdParamQuery@@QBEABVTDesC16@@XZ @ 192 NONAME ; class TDesC16 const & TPhoneCmdParamQuery::QueryPrompt(void) const
-	?SetQueryPrompt@TPhoneCmdParamQuery@@QAEXABVTDesC16@@@Z @ 193 NONAME ; void TPhoneCmdParamQuery::SetQueryPrompt(class TDesC16 const &)
-	?IsNumericKey@CPhoneKeys@@SAHABUTKeyEvent@@W4TEventCode@@@Z @ 194 NONAME ; int CPhoneKeys::IsNumericKey(struct TKeyEvent const &, enum TEventCode)
-	?SetCaptureType@TPhoneCmdParamKeyCapture@@QAEXW4TPhoneCaptureType@@@Z @ 195 NONAME ; void TPhoneCmdParamKeyCapture::SetCaptureType(enum TPhoneCaptureType)
-	?ViewUid@TPhoneCmdParamAppInfo@@QBE?AVTUid@@XZ @ 196 NONAME ; class TUid TPhoneCmdParamAppInfo::ViewUid(void) const
-	?SetLabelText@TPhoneCmdParamEmergencyCallHeaderData@@QAEXABVTDesC16@@@Z @ 197 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetLabelText(class TDesC16 const &)
-	?IsCallerText@TPhoneCmdParamRingTone@@QAEHXZ @ 198 NONAME ; int TPhoneCmdParamRingTone::IsCallerText(void)
-	?SetBitmap@TPhoneCmdParamBitmap@@QAEXPAVCFbsBitmap@@@Z @ 199 NONAME ; void TPhoneCmdParamBitmap::SetBitmap(class CFbsBitmap *)
-	?SetNumber@TPhoneCmdParamSfiData@@QAEXABVTDesC16@@@Z @ 200 NONAME ; void TPhoneCmdParamSfiData::SetNumber(class TDesC16 const &)
-	?CipheringIndicatorAllowed@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 201 NONAME ; int TPhoneCmdParamCallHeaderData::CipheringIndicatorAllowed(void) const
-	?Name@TPhoneCmdParamSfiData@@QBEABVTDesC16@@XZ @ 202 NONAME ; class TDesC16 const & TPhoneCmdParamSfiData::Name(void) const
-	??0TPhoneCmdParamQuery@@QAE@ABV0@@Z @ 203 NONAME ; TPhoneCmdParamQuery::TPhoneCmdParamQuery(class TPhoneCmdParamQuery const &)
-	?CallState@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 204 NONAME ; int TPhoneCmdParamCallHeaderData::CallState(void) const
-	??0TPhoneCmdParamIncallIndicatorData@@QAE@XZ @ 205 NONAME ; TPhoneCmdParamIncallIndicatorData::TPhoneCmdParamIncallIndicatorData(void)
-	?Picture@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 206 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::Picture(void) const
-	?SetCallThemeSettingsObserver@CPhoneCallThemeMonitor@@QAEXPAVMPhoneCallThemeSettingsObserver@@@Z @ 207 NONAME ; void CPhoneCallThemeMonitor::SetCallThemeSettingsObserver(class MPhoneCallThemeSettingsObserver *)
-	?SetDiverted@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 208 NONAME ; void TPhoneCmdParamCallHeaderData::SetDiverted(int)
-	?ServiceId@TPhoneCmdParamCallHeaderData@@QBEKXZ @ 209 NONAME ; unsigned long TPhoneCmdParamCallHeaderData::ServiceId(void) const
-	?LabelText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 210 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::LabelText(void) const
-	?Overflow@CPhoneLogger@@EAEXAAVTDes16@@@Z @ 211 NONAME ; void CPhoneLogger::Overflow(class TDes16 &)
-	?SetCNAPText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@W4TPhoneTextClippingDirection@1@@Z @ 212 NONAME ; void TPhoneCmdParamCallHeaderData::SetCNAPText(class TDesC16 const &, enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection)
-	?SetKeyEvent@TPhoneCmdParamKeyEvent@@QAEXABUTKeyEvent@@@Z @ 213 NONAME ; void TPhoneCmdParamKeyEvent::SetKeyEvent(struct TKeyEvent const &)
-	?Instance@CPhonePubSubProxy@@SAPAV1@XZ @ 214 NONAME ; class CPhonePubSubProxy * CPhonePubSubProxy::Instance(void)
-	?ResourceId@TPhoneCmdParamNote@@QBEHXZ @ 215 NONAME ; int TPhoneCmdParamNote::ResourceId(void) const
-	?CipheringIndicatorAllowed@TPhoneCmdParamEmergencyCallHeaderData@@QBEHXZ @ 216 NONAME ; int TPhoneCmdParamEmergencyCallHeaderData::CipheringIndicatorAllowed(void) const
-	?CancelAllNotifies@CPhoneCenRepProxy@@SAXPAVMPhoneCenRepObserver@@@Z @ 217 NONAME ; void CPhoneCenRepProxy::CancelAllNotifies(class MPhoneCenRepObserver *)
-	?TextResourceId@TPhoneCmdParamNote@@QBEHXZ @ 218 NONAME ; int TPhoneCmdParamNote::TextResourceId(void) const
-	?SetRemotePhoneNumber@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 219 NONAME ; void TPhoneCmdParamCallHeaderData::SetRemotePhoneNumber(class TDesC16 const &)
-	?CipheringIndicatorAllowed@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 220 NONAME ; int TPhoneCmdParamIncallIndicatorData::CipheringIndicatorAllowed(void) const
-	??0TPhoneCmdParamCallStateData@@QAE@XZ @ 221 NONAME ; TPhoneCmdParamCallStateData::TPhoneCmdParamCallStateData(void)
-	?SetKeyCode@TPhoneCmdParamKeyCapture@@QAEXW4TKeyCode@@@Z @ 222 NONAME ; void TPhoneCmdParamKeyCapture::SetKeyCode(enum TKeyCode)
-	?SetScreenLocked@CPhoneStorage@@UAEXH@Z @ 223 NONAME ; void CPhoneStorage::SetScreenLocked(int)
-	?CustomMessageId@TPhoneCmdParamAppInfo@@QBE?AVTUid@@XZ @ 224 NONAME ; class TUid TPhoneCmdParamAppInfo::CustomMessageId(void) const
-	?RemotePhoneNumber@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 225 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::RemotePhoneNumber(void) const
-	?SetType@TPhoneCmdParamNote@@QAEXW4TPhoneNoteType@@@Z @ 226 NONAME ; void TPhoneCmdParamNote::SetType(enum TPhoneNoteType)
-	?Instance@CPhoneClearBlacklist@@SAPAV1@XZ @ 227 NONAME ; class CPhoneClearBlacklist * CPhoneClearBlacklist::Instance(void)
-	?TextToSay@TPhoneCmdParamRingTone@@QBEABVTDesC16@@XZ @ 228 NONAME ; class TDesC16 const & TPhoneCmdParamRingTone::TextToSay(void) const
-	?Type@TPhoneCmdParamNote@@QBE?AW4TPhoneNoteType@@XZ @ 229 NONAME ; enum TPhoneNoteType TPhoneCmdParamNote::Type(void) const
-	?SetPicture@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 230 NONAME ; void TPhoneCmdParamCallHeaderData::SetPicture(class TDesC16 const &)
-	?Integer@TPhoneCmdParamInteger@@QBEHXZ @ 231 NONAME ; int TPhoneCmdParamInteger::Integer(void) const
-	?Mode@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 232 NONAME ; int TPhoneCmdParamIncallIndicatorData::Mode(void) const
-	?SetCallerTextStatus@TPhoneCmdParamRingTone@@QAEXH@Z @ 233 NONAME ; void TPhoneCmdParamRingTone::SetCallerTextStatus(int)
-	?SetText@TPhoneCmdParamNote@@QAEXABVTDesC16@@@Z @ 234 NONAME ; void TPhoneCmdParamNote::SetText(class TDesC16 const &)
-	?IsWiredAccAvailable@TPhoneCmdParamAudioAvailability@@QBEHXZ @ 235 NONAME ; int TPhoneCmdParamAudioAvailability::IsWiredAccAvailable(void) const
-	?SetWaitForReady@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 236 NONAME ; void TPhoneCmdParamGlobalNote::SetWaitForReady(int)
-	??0TPhoneCmdParamBoolean@@QAE@XZ @ 237 NONAME ; TPhoneCmdParamBoolean::TPhoneCmdParamBoolean(void)
-	?QueryCommandObserver@TPhoneCmdParamQuery@@QAEPAVMPhoneQueryCommandObserver@@XZ @ 238 NONAME ; class MPhoneQueryCommandObserver * TPhoneCmdParamQuery::QueryCommandObserver(void)
-	?DataText@TPhoneCmdParamQuery@@QBEPAVTDes16@@XZ @ 239 NONAME ; class TDes16 * TPhoneCmdParamQuery::DataText(void) const
-	?SetReal@CPhoneCenRepProxy@@QAEHABVTUid@@IN@Z @ 240 NONAME ; int CPhoneCenRepProxy::SetReal(class TUid const &, unsigned int, double)
-	??0TPhoneCmdParamCustomDialer@@QAE@XZ @ 241 NONAME ; TPhoneCmdParamCustomDialer::TPhoneCmdParamCustomDialer(void)
-	??1CPhonePubSubProxy@@UAE@XZ @ 242 NONAME ; CPhonePubSubProxy::~CPhonePubSubProxy(void)
-	??0TPhoneCmdParamNote@@QAE@XZ @ 243 NONAME ; TPhoneCmdParamNote::TPhoneCmdParamNote(void)
-	?Volume@TPhoneCmdParamRingTone@@QBEHXZ @ 244 NONAME ; int TPhoneCmdParamRingTone::Volume(void) const
-	?SetItemTextArrayForListQuery@TPhoneCmdParamQuery@@QAEXAAVMDesC16Array@@@Z @ 245 NONAME ; void TPhoneCmdParamQuery::SetItemTextArrayForListQuery(class MDesC16Array &)
-	?Type@TPhoneCmdParamRingTone@@QBE?AW4TPhoneRingToneType@@XZ @ 246 NONAME ; enum TPhoneRingToneType TPhoneCmdParamRingTone::Type(void) const
-	?Key@TPhoneCmdParamKeyCapture@@QBE?AW4TStdScanCode@@XZ @ 247 NONAME ; enum TStdScanCode TPhoneCmdParamKeyCapture::Key(void) const
-	?LabelText@TPhoneCmdParamEmergencyCallHeaderData@@QBEABVTDesC16@@XZ @ 248 NONAME ; class TDesC16 const & TPhoneCmdParamEmergencyCallHeaderData::LabelText(void) const
-	?Ciphering@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 249 NONAME ; int TPhoneCmdParamIncallIndicatorData::Ciphering(void) const
-	?SetQueryCommandObserver@TPhoneCmdParamQuery@@QAEXAAVMPhoneQueryCommandObserver@@@Z @ 250 NONAME ; void TPhoneCmdParamQuery::SetQueryCommandObserver(class MPhoneQueryCommandObserver &)
-	?IsPhoneUIFeatureSupported@CPhoneCenRepProxy@@QAEHH@Z @ 251 NONAME ; int CPhoneCenRepProxy::IsPhoneUIFeatureSupported(int)
-	?DefaultCba@TPhoneCmdParamQuery@@QBEHXZ @ 252 NONAME ; int TPhoneCmdParamQuery::DefaultCba(void) const
-	?CallState@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 253 NONAME ; int TPhoneCmdParamIncallIndicatorData::CallState(void) const
-	??0TPhoneCmdParamNumberEntryObserver@@QAE@XZ @ 254 NONAME ; TPhoneCmdParamNumberEntryObserver::TPhoneCmdParamNumberEntryObserver(void)
-	?SetLine2@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 255 NONAME ; void TPhoneCmdParamCallHeaderData::SetLine2(int)
-	?FetchValuesFromCenRepL@CPhoneCenRepProxy@@QAEXAAVTPhoneCmdParamAppInfo@@W4TKeyCode@@PAVHBufC8@@AAH@Z @ 256 NONAME ; void CPhoneCenRepProxy::FetchValuesFromCenRepL(class TPhoneCmdParamAppInfo &, enum TKeyCode, class HBufC8 *, int &)
-	?ParticipantCLI@TPhoneCmdParamCallHeaderData@@QBE?AW4TPhoneParticipantListCLI@1@XZ @ 257 NONAME ; enum TPhoneCmdParamCallHeaderData::TPhoneParticipantListCLI TPhoneCmdParamCallHeaderData::ParticipantCLI(void) const
-	?Thumbnail@TPhoneCmdParamCallHeaderData@@QBEPAVCFbsBitmap@@XZ @ 258 NONAME ; class CFbsBitmap * TPhoneCmdParamCallHeaderData::Thumbnail(void) const
-	?SetTimeOut@TPhoneCmdParamQuery@@QAEXH@Z @ 259 NONAME ; void TPhoneCmdParamQuery::SetTimeOut(int)
-	?Boolean@TPhoneCmdParamBoolean@@QBEHXZ @ 260 NONAME ; int TPhoneCmdParamBoolean::Boolean(void) const
-	?CLITextClippingDirection@TPhoneCmdParamCallHeaderData@@QBE?AW4TPhoneTextClippingDirection@1@XZ @ 261 NONAME ; enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection TPhoneCmdParamCallHeaderData::CLITextClippingDirection(void) const
-	?LogMsgFromPhoneUIToPE@CPhoneLogger@@QAEXHH@Z @ 262 NONAME ; void CPhoneLogger::LogMsgFromPhoneUIToPE(int, int)
-	?SetCustomMessageId@TPhoneCmdParamAppInfo@@QAEXABVTUid@@@Z @ 263 NONAME ; void TPhoneCmdParamAppInfo::SetCustomMessageId(class TUid const &)
-	?ResolveResourceID@CPhoneResourceResolverBase@@UBEHABH@Z @ 264 NONAME ; int CPhoneResourceResolverBase::ResolveResourceID(int const &) const
-	?SetName@TPhoneCmdParamSfiData@@QAEXABVTDesC16@@@Z @ 265 NONAME ; void TPhoneCmdParamSfiData::SetName(class TDesC16 const &)
-	?SetType@TPhoneCmdParamGlobalNote@@QAEXW4TAknGlobalNoteType@@@Z @ 266 NONAME ; void TPhoneCmdParamGlobalNote::SetType(enum TAknGlobalNoteType)
-	?SetLittleBubbleVisible@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 267 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetLittleBubbleVisible(int)
-	?Ciphering@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 268 NONAME ; int TPhoneCmdParamCallHeaderData::Ciphering(void) const
-	?SetType@TPhoneCmdParamRingTone@@QAEXW4TPhoneRingToneType@@@Z @ 269 NONAME ; void TPhoneCmdParamRingTone::SetType(enum TPhoneRingToneType)
-	?ResourceId@TPhoneCmdParamDynMenu@@QBEHXZ @ 270 NONAME ; int TPhoneCmdParamDynMenu::ResourceId(void) const
-	?SetCipheringIndicatorAllowed@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 271 NONAME ; void TPhoneCmdParamCallHeaderData::SetCipheringIndicatorAllowed(int)
-	?SetWaitTime@TPhoneCmdParamProgressNote@@QAEXVTTimeIntervalMicroSeconds32@@@Z @ 272 NONAME ; void TPhoneCmdParamProgressNote::SetWaitTime(class TTimeIntervalMicroSeconds32)
-	?Ciphering@TPhoneCmdParamEmergencyCallHeaderData@@QBEHXZ @ 273 NONAME ; int TPhoneCmdParamEmergencyCallHeaderData::Ciphering(void) const
-	??1CPhoneCallThemeMonitor@@UAE@XZ @ 274 NONAME ; CPhoneCallThemeMonitor::~CPhoneCallThemeMonitor(void)
-	?SetNumberType@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 275 NONAME ; void TPhoneCmdParamCallHeaderData::SetNumberType(int)
-	?Mute@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 276 NONAME ; int TPhoneCmdParamIncallIndicatorData::Mute(void) const
-	?SetBoolean@TPhoneCmdParamBoolean@@QAEXH@Z @ 277 NONAME ; void TPhoneCmdParamBoolean::SetBoolean(int)
-	?IsTelephonyFeatureSupported@CPhoneResourceResolverBase@@MBEHH@Z @ 278 NONAME ; int CPhoneResourceResolverBase::IsTelephonyFeatureSupported(int) const
-	?Instance@CPhoneMainErrorMessagesHandler@@SAPAV1@XZ @ 279 NONAME ; class CPhoneMainErrorMessagesHandler * CPhoneMainErrorMessagesHandler::Instance(void)
-	?SetViewUid@TPhoneCmdParamAppInfo@@QAEXABVTUid@@@Z @ 280 NONAME ; void TPhoneCmdParamAppInfo::SetViewUid(class TUid const &)
-	?SetServiceId@TPhoneCmdParamCallHeaderData@@QAEXK@Z @ 281 NONAME ; void TPhoneCmdParamCallHeaderData::SetServiceId(unsigned long)
-	?Instance@CPhoneCenRepProxy@@SAPAV1@XZ @ 282 NONAME ; class CPhoneCenRepProxy * CPhoneCenRepProxy::Instance(void)
-	?SetQueryType@TPhoneCmdParamQuery@@QAEXW4TPhoneQueryType@@@Z @ 283 NONAME ; void TPhoneCmdParamQuery::SetQueryType(enum TPhoneQueryType)
-	?Value@CPhonePubSubProxy@@QAEHABVTUid@@I@Z @ 284 NONAME ; int CPhonePubSubProxy::Value(class TUid const &, unsigned int)
-	?SetWiredAccAvailable@TPhoneCmdParamAudioAvailability@@QAEXH@Z @ 285 NONAME ; void TPhoneCmdParamAudioAvailability::SetWiredAccAvailable(int)
-	??0TPhoneCmdParamAudioOutput@@QAE@XZ @ 286 NONAME ; TPhoneCmdParamAudioOutput::TPhoneCmdParamAudioOutput(void)
-	?IsCallerImage@TPhoneCmdParamRingTone@@QAEHXZ @ 287 NONAME ; int TPhoneCmdParamRingTone::IsCallerImage(void)
-	??0TPhoneCmdParamQuery@@QAE@XZ @ 288 NONAME ; TPhoneCmdParamQuery::TPhoneCmdParamQuery(void)
-	?Instance@CPhoneMainResourceResolver@@SAPAV1@XZ @ 289 NONAME ; class CPhoneMainResourceResolver * CPhoneMainResourceResolver::Instance(void)
-	??1CPhoneLibraryContainer@@UAE@XZ @ 290 NONAME ; CPhoneLibraryContainer::~CPhoneLibraryContainer(void)
-	?ClearBlackListOnNextKey@CPhoneClearBlacklist@@QAEXXZ @ 291 NONAME ; void CPhoneClearBlacklist::ClearBlackListOnNextKey(void)
-	?Tone@TPhoneCmdParamQuery@@QBEHXZ @ 292 NONAME ; int TPhoneCmdParamQuery::Tone(void) const
-	?SetCiphering@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 293 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetCiphering(int)
-	?SetRingingType@TPhoneCmdParamRingTone@@QAEXH@Z @ 294 NONAME ; void TPhoneCmdParamRingTone::SetRingingType(int)
-	?SetCipheringIndicatorAllowed@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 295 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetCipheringIndicatorAllowed(int)
-	?NeedToEnableKeylock@CPhoneStorage@@UAEHXZ @ 296 NONAME ; int CPhoneStorage::NeedToEnableKeylock(void)
-	?AudioOutput@TPhoneCmdParamAudioOutput@@QBE?AW4TPEAudioOutput@@XZ @ 297 NONAME ; enum TPEAudioOutput TPhoneCmdParamAudioOutput::AudioOutput(void) const
-	?SetResourceId@TPhoneCmdParamProgressNote@@QAEXH@Z @ 298 NONAME ; void TPhoneCmdParamProgressNote::SetResourceId(int)
-	??0TPhoneCmdParamInteger@@QAE@XZ @ 299 NONAME ; TPhoneCmdParamInteger::TPhoneCmdParamInteger(void)
-	?SetType@TPhoneCmdParamTransEffect@@QAEXW4TPhoneTransEffectType@@@Z @ 300 NONAME ; void TPhoneCmdParamTransEffect::SetType(enum TPhoneTransEffectType)
-	?Bitmap@TPhoneCmdParamBitmap@@QBEPAVCFbsBitmap@@XZ @ 301 NONAME ; class CFbsBitmap * TPhoneCmdParamBitmap::Bitmap(void) const
-	?SetTone@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 302 NONAME ; void TPhoneCmdParamGlobalNote::SetTone(int)
-	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@VTCallBack@@@Z @ 303 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class TCallBack)
-	?SetNotificationDialog@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 304 NONAME ; void TPhoneCmdParamGlobalNote::SetNotificationDialog(int)
-	?NotificationDialog@TPhoneCmdParamGlobalNote@@QBEHXZ @ 305 NONAME ; int TPhoneCmdParamGlobalNote::NotificationDialog(void) const
+	?SetCauseCode@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 59 NONAME ; void TPhoneCmdParamGlobalNote::SetCauseCode(int)
+	?ResourceId@TPhoneCmdParamProgressNote@@QBEHXZ @ 60 NONAME ; int TPhoneCmdParamProgressNote::ResourceId(void) const
+	?CallId@TPhoneCmdParamCallStateData@@QBEHXZ @ 61 NONAME ; int TPhoneCmdParamCallStateData::CallId(void) const
+	?NotifyChangeL@CPhoneCenRepProxy@@QAEXABVTUid@@IPAVMPhoneCenRepObserver@@@Z @ 62 NONAME ; void CPhoneCenRepProxy::NotifyChangeL(class TUid const &, unsigned int, class MPhoneCenRepObserver *)
+	?SetResourceId@TPhoneCmdParamDynMenu@@QAEXH@Z @ 63 NONAME ; void TPhoneCmdParamDynMenu::SetResourceId(int)
+	?Validate@CPhoneKeys@@SAHABVTDesC16@@@Z @ 64 NONAME ; int CPhoneKeys::Validate(class TDesC16 const &)
+	??0TPhoneCmdParamKeyCapture@@QAE@XZ @ 65 NONAME ; TPhoneCmdParamKeyCapture::TPhoneCmdParamKeyCapture(void)
+	?SetResourceId@TPhoneCmdParamNote@@QAEXH@Z @ 66 NONAME ; void TPhoneCmdParamNote::SetResourceId(int)
+	?LogMsgFromPEToPhoneUI@CPhoneLogger@@QAEXHH@Z @ 67 NONAME ; void CPhoneLogger::LogMsgFromPEToPhoneUI(int, int)
+	?SetNotificationDialog@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 68 NONAME ; void TPhoneCmdParamGlobalNote::SetNotificationDialog(int)
+	??0TPhoneCmdParamProgressNote@@QAE@XZ @ 69 NONAME ; TPhoneCmdParamProgressNote::TPhoneCmdParamProgressNote(void)
+	?CallState@TPhoneCmdParamCallStateData@@QBEHXZ @ 70 NONAME ; int TPhoneCmdParamCallStateData::CallState(void) const
+	?SetPointer@TPhoneCmdParamPointer@@QAEXPAX@Z @ 71 NONAME ; void TPhoneCmdParamPointer::SetPointer(void *)
+	??1CPhoneCenRepProxy@@UAE@XZ @ 72 NONAME ; CPhoneCenRepProxy::~CPhoneCenRepProxy(void)
+	?SetEventCode@TPhoneCmdParamKeyEvent@@QAEXW4TEventCode@@@Z @ 73 NONAME ; void TPhoneCmdParamKeyEvent::SetEventCode(enum TEventCode)
+	?WaitTime@TPhoneCmdParamProgressNote@@QBE?AVTTimeIntervalMicroSeconds32@@XZ @ 74 NONAME ; class TTimeIntervalMicroSeconds32 TPhoneCmdParamProgressNote::WaitTime(void) const
+	?SetParam@TPhoneCmdParamAppInfo@@QAEXABVTDesC8@@@Z @ 75 NONAME ; void TPhoneCmdParamAppInfo::SetParam(class TDesC8 const &)
+	??0TPhoneCmdParamPointer@@QAE@XZ @ 76 NONAME ; TPhoneCmdParamPointer::TPhoneCmdParamPointer(void)
+	??0TPhoneCmdParamGlobalNote@@QAE@XZ @ 77 NONAME ; TPhoneCmdParamGlobalNote::TPhoneCmdParamGlobalNote(void)
+	?CallType@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 78 NONAME ; int TPhoneCmdParamCallHeaderData::CallType(void) const
+	?SetCiphering@TPhoneCmdParamEmergencyCallHeaderData@@QAEXH@Z @ 79 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetCiphering(int)
+	?SetTone@TPhoneCmdParamNote@@QAEXW4TTone@CAknNoteDialog@@@Z @ 80 NONAME ; void TPhoneCmdParamNote::SetTone(enum CAknNoteDialog::TTone)
+	?SetCustomCommandForTimeOut@TPhoneCmdParamQuery@@QAEXH@Z @ 81 NONAME ; void TPhoneCmdParamQuery::SetCustomCommandForTimeOut(int)
+	?IsBTAccAvailable@TPhoneCmdParamAudioAvailability@@QBEHXZ @ 82 NONAME ; int TPhoneCmdParamAudioAvailability::IsBTAccAvailable(void) const
+	?NewL@CPhoneStorage@@SAPAV1@XZ @ 83 NONAME ; class CPhoneStorage * CPhoneStorage::NewL(void)
+	?CNAPTextClippingDirection@TPhoneCmdParamCallHeaderData@@QBE?AW4TPhoneTextClippingDirection@1@XZ @ 84 NONAME ; enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection TPhoneCmdParamCallHeaderData::CNAPTextClippingDirection(void) const
+	?Timeout@TPhoneCmdParamNote@@QBE?AW4TTimeout@CAknNoteDialog@@XZ @ 85 NONAME ; enum CAknNoteDialog::TTimeout TPhoneCmdParamNote::Timeout(void) const
+	?Instance@CPhoneRecoverySystem@@SAPAV1@XZ @ 86 NONAME ; class CPhoneRecoverySystem * CPhoneRecoverySystem::Instance(void)
+	?CancelTimer@CPhoneTimer@@QAEXXZ @ 87 NONAME ; void CPhoneTimer::CancelTimer(void)
+	?NewL@CPhoneTimer@@SAPAV1@H@Z @ 88 NONAME ; class CPhoneTimer * CPhoneTimer::NewL(int)
+	?GetInt@CPhoneCenRepProxy@@QBEHABVTUid@@IAAH@Z @ 89 NONAME ; int CPhoneCenRepProxy::GetInt(class TUid const &, unsigned int, int &) const
+	?SetTextToSay@TPhoneCmdParamRingTone@@QAEXABVTDesC16@@@Z @ 90 NONAME ; void TPhoneCmdParamRingTone::SetTextToSay(class TDesC16 const &)
+	?SetCallState@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 91 NONAME ; void TPhoneCmdParamCallHeaderData::SetCallState(int)
+	?ContentCba@TPhoneCmdParamQuery@@QBEHXZ @ 92 NONAME ; int TPhoneCmdParamQuery::ContentCba(void) const
+	?SetTextResourceId@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 93 NONAME ; void TPhoneCmdParamGlobalNote::SetTextResourceId(int)
+	??0TPhoneCmdParamDynMenu@@QAE@XZ @ 94 NONAME ; TPhoneCmdParamDynMenu::TPhoneCmdParamDynMenu(void)
+	?CancelAllNotifications@CPhonePubSubProxy@@SAXPAVMPhonePubSubObserver@@@Z @ 95 NONAME ; void CPhonePubSubProxy::CancelAllNotifications(class MPhonePubSubObserver *)
+	??0TPhoneCommandParam@@QAE@XZ @ 96 NONAME ; TPhoneCommandParam::TPhoneCommandParam(void)
+	?SetCLIText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@W4TPhoneTextClippingDirection@1@@Z @ 97 NONAME ; void TPhoneCmdParamCallHeaderData::SetCLIText(class TDesC16 const &, enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection)
+	??1CPhoneLogger@@UAE@XZ @ 98 NONAME ; CPhoneLogger::~CPhoneLogger(void)
+	?Softkeys@TPhoneCmdParamGlobalNote@@QBEHXZ @ 99 NONAME ; int TPhoneCmdParamGlobalNote::Softkeys(void) const
+	?SetCallState@TPhoneCmdParamCallStateData@@QAEXH@Z @ 100 NONAME ; void TPhoneCmdParamCallStateData::SetCallState(int)
+	?CallerText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 101 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::CallerText(void) const
+	?Diverted@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 102 NONAME ; int TPhoneCmdParamCallHeaderData::Diverted(void) const
+	?String@TPhoneCmdParamString@@QAEPAVTPtr16@@XZ @ 103 NONAME ; class TPtr16 * TPhoneCmdParamString::String(void)
+	?SetKey@TPhoneCmdParamKeyCapture@@QAEXW4TStdScanCode@@@Z @ 104 NONAME ; void TPhoneCmdParamKeyCapture::SetKey(enum TStdScanCode)
+	?NotificationDialog@TPhoneCmdParamGlobalNote@@QBEHXZ @ 105 NONAME ; int TPhoneCmdParamGlobalNote::NotificationDialog(void) const
+	?IsExtraChar@CPhoneKeys@@SAHH@Z @ 106 NONAME ; int CPhoneKeys::IsExtraChar(int)
+	?SetDynMenu@TPhoneCmdParamDynMenu@@QAEXPAX@Z @ 107 NONAME ; void TPhoneCmdParamDynMenu::SetDynMenu(void *)
+	?IsSecondHashKey@CPhoneKeys@@SAHABVTDes16@@@Z @ 108 NONAME ; int CPhoneKeys::IsSecondHashKey(class TDes16 const &)
+	?SetCallerImageStatus@TPhoneCmdParamRingTone@@QAEXH@Z @ 109 NONAME ; void TPhoneCmdParamRingTone::SetCallerImageStatus(int)
+	?SetTimeout@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 110 NONAME ; void TPhoneCmdParamGlobalNote::SetTimeout(int)
+	?GetReal@CPhoneCenRepProxy@@QBEHABVTUid@@IAAN@Z @ 111 NONAME ; int CPhoneCenRepProxy::GetReal(class TUid const &, unsigned int, double &) const
+	?SetShortLabelText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 112 NONAME ; void TPhoneCmdParamCallHeaderData::SetShortLabelText(class TDesC16 const &)
+	?SetDialerController@TPhoneCmdParamCustomDialer@@QAEXPAVMPhoneDialerController@@@Z @ 113 NONAME ; void TPhoneCmdParamCustomDialer::SetDialerController(class MPhoneDialerController *)
+	?RingTone@TPhoneCmdParamRingTone@@QBEABVTDesC16@@XZ @ 114 NONAME ; class TDesC16 const & TPhoneCmdParamRingTone::RingTone(void) const
+	?TimeOut@TPhoneCmdParamQuery@@QBEHXZ @ 115 NONAME ; int TPhoneCmdParamQuery::TimeOut(void) const
+	?ShortLabelText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 116 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::ShortLabelText(void) const
+	?SetInteger@TPhoneCmdParamInteger@@QAEXH@Z @ 117 NONAME ; void TPhoneCmdParamInteger::SetInteger(int)
+	?SetMaskBitmap@TPhoneCmdParamBitmap@@QAEXPAVCFbsBitmap@@@Z @ 118 NONAME ; void TPhoneCmdParamBitmap::SetMaskBitmap(class CFbsBitmap *)
+	?SetTimeout@TPhoneCmdParamNote@@QAEXW4TTimeout@CAknNoteDialog@@@Z @ 119 NONAME ; void TPhoneCmdParamNote::SetTimeout(enum CAknNoteDialog::TTimeout)
+	?IsBlockedKeysListEmpty@CPhoneStorage@@UAEHXZ @ 120 NONAME ; int CPhoneStorage::IsBlockedKeysListEmpty(void)
+	?SetCustomMessage@TPhoneCmdParamAppInfo@@QAEXABVTDesC8@@@Z @ 121 NONAME ; void TPhoneCmdParamAppInfo::SetCustomMessage(class TDesC8 const &)
+	?BaseConstructL@CPhoneResourceResolverBase@@QAEXXZ @ 122 NONAME ; void CPhoneResourceResolverBase::BaseConstructL(void)
+	?SetTextResourceId@TPhoneCmdParamNote@@QAEXH@Z @ 123 NONAME ; void TPhoneCmdParamNote::SetTextResourceId(int)
+	?SetString@TPhoneCmdParamString@@QAEXPAVTPtr16@@@Z @ 124 NONAME ; void TPhoneCmdParamString::SetString(class TPtr16 *)
+	?SetAppUid@TPhoneCmdParamAppInfo@@QAEXABVTUid@@@Z @ 125 NONAME ; void TPhoneCmdParamAppInfo::SetAppUid(class TUid const &)
+	?SetBTAccAvailable@TPhoneCmdParamAudioAvailability@@QAEXH@Z @ 126 NONAME ; void TPhoneCmdParamAudioAvailability::SetBTAccAvailable(int)
+	?IsTelephonyFeatureSupported@CPhoneCenRepProxy@@QAEHH@Z @ 127 NONAME ; int CPhoneCenRepProxy::IsTelephonyFeatureSupported(int)
+	?CallImageThemeFilePath@CPhoneCallThemeMonitor@@QBE?AVTPtrC16@@XZ @ 128 NONAME ; class TPtrC16 CPhoneCallThemeMonitor::CallImageThemeFilePath(void) const
+	?HasThumbnail@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 129 NONAME ; int TPhoneCmdParamCallHeaderData::HasThumbnail(void) const
+	?ClearBlackListNow@CPhoneClearBlacklist@@QAEXXZ @ 130 NONAME ; void CPhoneClearBlacklist::ClearBlackListNow(void)
+	?SetCipheringIndicatorAllowed@TPhoneCmdParamEmergencyCallHeaderData@@QAEXH@Z @ 131 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetCipheringIndicatorAllowed(int)
+	?SetCommandParamId@TPhoneCmdParamQuery@@QAEXW4TPhoneParamId@TPhoneCommandParam@@@Z @ 132 NONAME ; void TPhoneCmdParamQuery::SetCommandParamId(enum TPhoneCommandParam::TPhoneParamId)
+	??0TPhoneCmdParamEmergencyCallHeaderData@@QAE@XZ @ 133 NONAME ; TPhoneCmdParamEmergencyCallHeaderData::TPhoneCmdParamEmergencyCallHeaderData(void)
+	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@PAVMPhoneTimer@@@Z @ 134 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class MPhoneTimer *)
+	?NewL@CPhoneLibraryContainer@@SAPAV1@XZ @ 135 NONAME ; class CPhoneLibraryContainer * CPhoneLibraryContainer::NewL(void)
+	?CreateL@CPhoneClearBlacklist@@SAPAV1@AAVRWsSession@@ABVRWindowBase@@@Z @ 136 NONAME ; class CPhoneClearBlacklist * CPhoneClearBlacklist::CreateL(class RWsSession &, class RWindowBase const &)
+	??1CPhoneStorage@@UAE@XZ @ 137 NONAME ; CPhoneStorage::~CPhoneStorage(void)
+	?SetVolume@TPhoneCmdParamRingTone@@QAEXH@Z @ 138 NONAME ; void TPhoneCmdParamRingTone::SetVolume(int)
+	??0TPhoneCmdParamString@@QAE@XZ @ 139 NONAME ; TPhoneCmdParamString::TPhoneCmdParamString(void)
+	?SetContactLink@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC8@@@Z @ 140 NONAME ; void TPhoneCmdParamCallHeaderData::SetContactLink(class TDesC8 const &)
+	??4TPhoneCmdParamQuery@@QAEAAV0@ABV0@@Z @ 141 NONAME ; class TPhoneCmdParamQuery & TPhoneCmdParamQuery::operator=(class TPhoneCmdParamQuery const &)
+	??0TPhoneCmdParamAudioAvailability@@QAE@XZ @ 142 NONAME ; TPhoneCmdParamAudioAvailability::TPhoneCmdParamAudioAvailability(void)
+	?GetBlockedKeyList@CPhoneStorage@@UBEABV?$RArray@H@@XZ @ 143 NONAME ; class RArray<int> const & CPhoneStorage::GetBlockedKeyList(void) const
+	?Timeout@TPhoneCmdParamGlobalNote@@QBEHXZ @ 144 NONAME ; int TPhoneCmdParamGlobalNote::Timeout(void) const
+	??0TPhoneCmdParamRingTone@@QAE@XZ @ 145 NONAME ; TPhoneCmdParamRingTone::TPhoneCmdParamRingTone(void)
+	?Observer@TPhoneCmdParamNumberEntryObserver@@QAE?AVTCallBack@@XZ @ 146 NONAME ; class TCallBack TPhoneCmdParamNumberEntryObserver::Observer(void)
+	?SetSoftkeys@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 147 NONAME ; void TPhoneCmdParamGlobalNote::SetSoftkeys(int)
+	??0CPhoneResourceResolverBase@@IAE@XZ @ 148 NONAME ; CPhoneResourceResolverBase::CPhoneResourceResolverBase(void)
+	?SetCallId@TPhoneCmdParamCallStateData@@QAEXH@Z @ 149 NONAME ; void TPhoneCmdParamCallStateData::SetCallId(int)
+	?MultipleInstances@TPhoneCmdParamAppInfo@@QBEHXZ @ 150 NONAME ; int TPhoneCmdParamAppInfo::MultipleInstances(void) const
+	?ItemTextArrayForListQuery@TPhoneCmdParamQuery@@QBEPAVMDesC16Array@@XZ @ 151 NONAME ; class MDesC16Array * TPhoneCmdParamQuery::ItemTextArrayForListQuery(void) const
+	?SetHeaderText@TPhoneCmdParamEmergencyCallHeaderData@@QAEXABVTDesC16@@@Z @ 152 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetHeaderText(class TDesC16 const &)
+	?SetContentCba@TPhoneCmdParamQuery@@QAEXH@Z @ 153 NONAME ; void TPhoneCmdParamQuery::SetContentCba(int)
+	?CaptureType@TPhoneCmdParamKeyCapture@@QBE?AW4TPhoneCaptureType@@XZ @ 154 NONAME ; enum TPhoneCaptureType TPhoneCmdParamKeyCapture::CaptureType(void) const
+	?SetQueryResourceId@TPhoneCmdParamQuery@@QAEXH@Z @ 155 NONAME ; void TPhoneCmdParamQuery::SetQueryResourceId(int)
+	?CancelNotify@CPhoneCenRepProxy@@QAEXPAVMPhoneCenRepObserver@@I@Z @ 156 NONAME ; void CPhoneCenRepProxy::CancelNotify(class MPhoneCenRepObserver *, unsigned int)
+	?Param@TPhoneCmdParamAppInfo@@QBEABVTDesC8@@XZ @ 157 NONAME ; class TDesC8 const & TPhoneCmdParamAppInfo::Param(void) const
+	??0CPhoneMethodLogger@@QAE@W4TPhoneUILoggingComponent@@VTPtrC16@@@Z @ 158 NONAME ; CPhoneMethodLogger::CPhoneMethodLogger(enum TPhoneUILoggingComponent, class TPtrC16)
+	?IsDtmfTone@CPhoneKeys@@SAHABUTKeyEvent@@W4TEventCode@@@Z @ 159 NONAME ; int CPhoneKeys::IsDtmfTone(struct TKeyEvent const &, enum TEventCode)
+	?SetMode@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 160 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetMode(int)
+	?NewL@CPhoneCallThemeMonitor@@SAPAV1@XZ @ 161 NONAME ; class CPhoneCallThemeMonitor * CPhoneCallThemeMonitor::NewL(void)
+	?SendKeyEnabled@TPhoneCmdParamQuery@@QBEHXZ @ 162 NONAME ; int TPhoneCmdParamQuery::SendKeyEnabled(void) const
+	?SetNeedToEnableKeylock@CPhoneStorage@@UAEXH@Z @ 163 NONAME ; void CPhoneStorage::SetNeedToEnableKeylock(int)
+	?Find@CPhoneCenRepProxy@@QBEHABVTUid@@KKAAV?$RArray@K@@@Z @ 164 NONAME ; int CPhoneCenRepProxy::Find(class TUid const &, unsigned long, unsigned long, class RArray<unsigned long> &) const
+	?SetLabelText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 165 NONAME ; void TPhoneCmdParamCallHeaderData::SetLabelText(class TDesC16 const &)
+	?CNAPText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 166 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::CNAPText(void) const
+	?SetOwnPhoneNumberText@TPhoneCmdParamEmergencyCallHeaderData@@QAEXABVTDesC16@@@Z @ 167 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetOwnPhoneNumberText(class TDesC16 const &)
+	?Emergency@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 168 NONAME ; int TPhoneCmdParamIncallIndicatorData::Emergency(void) const
+	?AppUid@TPhoneCmdParamAppInfo@@QBE?AVTUid@@XZ @ 169 NONAME ; class TUid TPhoneCmdParamAppInfo::AppUid(void) const
+	?CustomMessage@TPhoneCmdParamAppInfo@@QBEABVTDesC8@@XZ @ 170 NONAME ; class TDesC8 const & TPhoneCmdParamAppInfo::CustomMessage(void) const
+	?QueryResourceId@TPhoneCmdParamQuery@@QBEHXZ @ 171 NONAME ; int TPhoneCmdParamQuery::QueryResourceId(void) const
+	?NotifyChangeL@CPhonePubSubProxy@@QAEXABVTUid@@IPAVMPhonePubSubObserver@@@Z @ 172 NONAME ; void CPhonePubSubProxy::NotifyChangeL(class TUid const &, unsigned int, class MPhonePubSubObserver *)
+	?SetRingTone@TPhoneCmdParamRingTone@@QAEXABVTDesC16@@@Z @ 173 NONAME ; void TPhoneCmdParamRingTone::SetRingTone(class TDesC16 const &)
+	?AppendBlockedKeysListL@CPhoneStorage@@UAEXW4TStdScanCode@@@Z @ 174 NONAME ; void CPhoneStorage::AppendBlockedKeysListL(enum TStdScanCode)
+	?SetEmergency@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 175 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetEmergency(int)
+	?SetDefaultCba@TPhoneCmdParamQuery@@QAEXH@Z @ 176 NONAME ; void TPhoneCmdParamQuery::SetDefaultCba(int)
+	?Type@TPhoneCmdParamTransEffect@@QBE?AW4TPhoneTransEffectType@@XZ @ 177 NONAME ; enum TPhoneTransEffectType TPhoneCmdParamTransEffect::Type(void) const
+	??0TPhoneCmdParamSfiData@@QAE@XZ @ 178 NONAME ; TPhoneCmdParamSfiData::TPhoneCmdParamSfiData(void)
+	??0TPhoneCmdParamCallHeaderData@@QAE@XZ @ 179 NONAME ; TPhoneCmdParamCallHeaderData::TPhoneCmdParamCallHeaderData(void)
+	??1CPhoneClearBlacklist@@UAE@XZ @ 180 NONAME ; CPhoneClearBlacklist::~CPhoneClearBlacklist(void)
+	?SetMute@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 181 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetMute(int)
+	?KeyCode@TPhoneCmdParamKeyCapture@@QBE?AW4TKeyCode@@XZ @ 182 NONAME ; enum TKeyCode TPhoneCmdParamKeyCapture::KeyCode(void) const
+	?IsNumberKey@CPhoneKeys@@SAHABUTKeyEvent@@W4TEventCode@@@Z @ 183 NONAME ; int CPhoneKeys::IsNumberKey(struct TKeyEvent const &, enum TEventCode)
+	?TextResourceId@TPhoneCmdParamGlobalNote@@QBEHXZ @ 184 NONAME ; int TPhoneCmdParamGlobalNote::TextResourceId(void) const
+	?SetCiphering@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 185 NONAME ; void TPhoneCmdParamCallHeaderData::SetCiphering(int)
+	?EnablePreconditionL@CPhoneRecoverySystem@@QAEXXZ @ 186 NONAME ; void CPhoneRecoverySystem::EnablePreconditionL(void)
+	?AddL@CPhoneRecoverySystem@@QAEHVTCallBack@@CW4TRecoveryState@CTeleRecoverySystem@@@Z @ 187 NONAME ; int CPhoneRecoverySystem::AddL(class TCallBack, signed char, enum CTeleRecoverySystem::TRecoveryState)
+	?SetLine2@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 188 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetLine2(int)
+	?SetAudioOutput@TPhoneCmdParamAudioOutput@@QAEXW4TPEAudioOutput@@@Z @ 189 NONAME ; void TPhoneCmdParamAudioOutput::SetAudioOutput(enum TPEAudioOutput)
+	?HeaderText@TPhoneCmdParamEmergencyCallHeaderData@@QBEABVTDesC16@@XZ @ 190 NONAME ; class TDesC16 const & TPhoneCmdParamEmergencyCallHeaderData::HeaderText(void) const
+	?CallImageThemeSettings@CPhoneCallThemeMonitor@@QBEHXZ @ 191 NONAME ; int CPhoneCallThemeMonitor::CallImageThemeSettings(void) const
+	??0TPhoneCmdParamTransEffect@@QAE@XZ @ 192 NONAME ; TPhoneCmdParamTransEffect::TPhoneCmdParamTransEffect(void)
+	?Number@TPhoneCmdParamSfiData@@QBEABVTDesC16@@XZ @ 193 NONAME ; class TDesC16 const & TPhoneCmdParamSfiData::Number(void) const
+	?OwnPhoneNumberText@TPhoneCmdParamEmergencyCallHeaderData@@QBEABVTDesC16@@XZ @ 194 NONAME ; class TDesC16 const & TPhoneCmdParamEmergencyCallHeaderData::OwnPhoneNumberText(void) const
+	?CauseCode@TPhoneCmdParamGlobalNote@@QBEHXZ @ 195 NONAME ; int TPhoneCmdParamGlobalNote::CauseCode(void) const
+	?QueryPrompt@TPhoneCmdParamQuery@@QBEABVTDesC16@@XZ @ 196 NONAME ; class TDesC16 const & TPhoneCmdParamQuery::QueryPrompt(void) const
+	?SetQueryPrompt@TPhoneCmdParamQuery@@QAEXABVTDesC16@@@Z @ 197 NONAME ; void TPhoneCmdParamQuery::SetQueryPrompt(class TDesC16 const &)
+	?IsNumericKey@CPhoneKeys@@SAHABUTKeyEvent@@W4TEventCode@@@Z @ 198 NONAME ; int CPhoneKeys::IsNumericKey(struct TKeyEvent const &, enum TEventCode)
+	?SetCaptureType@TPhoneCmdParamKeyCapture@@QAEXW4TPhoneCaptureType@@@Z @ 199 NONAME ; void TPhoneCmdParamKeyCapture::SetCaptureType(enum TPhoneCaptureType)
+	?ViewUid@TPhoneCmdParamAppInfo@@QBE?AVTUid@@XZ @ 200 NONAME ; class TUid TPhoneCmdParamAppInfo::ViewUid(void) const
+	?SetLabelText@TPhoneCmdParamEmergencyCallHeaderData@@QAEXABVTDesC16@@@Z @ 201 NONAME ; void TPhoneCmdParamEmergencyCallHeaderData::SetLabelText(class TDesC16 const &)
+	?IsCallerText@TPhoneCmdParamRingTone@@QAEHXZ @ 202 NONAME ; int TPhoneCmdParamRingTone::IsCallerText(void)
+	?SetBitmap@TPhoneCmdParamBitmap@@QAEXPAVCFbsBitmap@@@Z @ 203 NONAME ; void TPhoneCmdParamBitmap::SetBitmap(class CFbsBitmap *)
+	?SetNumber@TPhoneCmdParamSfiData@@QAEXABVTDesC16@@@Z @ 204 NONAME ; void TPhoneCmdParamSfiData::SetNumber(class TDesC16 const &)
+	?CipheringIndicatorAllowed@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 205 NONAME ; int TPhoneCmdParamCallHeaderData::CipheringIndicatorAllowed(void) const
+	?Name@TPhoneCmdParamSfiData@@QBEABVTDesC16@@XZ @ 206 NONAME ; class TDesC16 const & TPhoneCmdParamSfiData::Name(void) const
+	??0TPhoneCmdParamQuery@@QAE@ABV0@@Z @ 207 NONAME ; TPhoneCmdParamQuery::TPhoneCmdParamQuery(class TPhoneCmdParamQuery const &)
+	?CallState@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 208 NONAME ; int TPhoneCmdParamCallHeaderData::CallState(void) const
+	??0TPhoneCmdParamIncallIndicatorData@@QAE@XZ @ 209 NONAME ; TPhoneCmdParamIncallIndicatorData::TPhoneCmdParamIncallIndicatorData(void)
+	?Picture@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 210 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::Picture(void) const
+	?SetCallThemeSettingsObserver@CPhoneCallThemeMonitor@@QAEXPAVMPhoneCallThemeSettingsObserver@@@Z @ 211 NONAME ; void CPhoneCallThemeMonitor::SetCallThemeSettingsObserver(class MPhoneCallThemeSettingsObserver *)
+	?SetDiverted@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 212 NONAME ; void TPhoneCmdParamCallHeaderData::SetDiverted(int)
+	?ServiceId@TPhoneCmdParamCallHeaderData@@QBEKXZ @ 213 NONAME ; unsigned long TPhoneCmdParamCallHeaderData::ServiceId(void) const
+	?LabelText@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 214 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::LabelText(void) const
+	?Overflow@CPhoneLogger@@EAEXAAVTDes16@@@Z @ 215 NONAME ; void CPhoneLogger::Overflow(class TDes16 &)
+	?SetCNAPText@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@W4TPhoneTextClippingDirection@1@@Z @ 216 NONAME ; void TPhoneCmdParamCallHeaderData::SetCNAPText(class TDesC16 const &, enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection)
+	?SetKeyEvent@TPhoneCmdParamKeyEvent@@QAEXABUTKeyEvent@@@Z @ 217 NONAME ; void TPhoneCmdParamKeyEvent::SetKeyEvent(struct TKeyEvent const &)
+	?Instance@CPhonePubSubProxy@@SAPAV1@XZ @ 218 NONAME ; class CPhonePubSubProxy * CPhonePubSubProxy::Instance(void)
+	?ResourceId@TPhoneCmdParamNote@@QBEHXZ @ 219 NONAME ; int TPhoneCmdParamNote::ResourceId(void) const
+	?CipheringIndicatorAllowed@TPhoneCmdParamEmergencyCallHeaderData@@QBEHXZ @ 220 NONAME ; int TPhoneCmdParamEmergencyCallHeaderData::CipheringIndicatorAllowed(void) const
+	?CancelAllNotifies@CPhoneCenRepProxy@@SAXPAVMPhoneCenRepObserver@@@Z @ 221 NONAME ; void CPhoneCenRepProxy::CancelAllNotifies(class MPhoneCenRepObserver *)
+	?TextResourceId@TPhoneCmdParamNote@@QBEHXZ @ 222 NONAME ; int TPhoneCmdParamNote::TextResourceId(void) const
+	?SetRemotePhoneNumber@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 223 NONAME ; void TPhoneCmdParamCallHeaderData::SetRemotePhoneNumber(class TDesC16 const &)
+	?CipheringIndicatorAllowed@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 224 NONAME ; int TPhoneCmdParamIncallIndicatorData::CipheringIndicatorAllowed(void) const
+	??0TPhoneCmdParamCallStateData@@QAE@XZ @ 225 NONAME ; TPhoneCmdParamCallStateData::TPhoneCmdParamCallStateData(void)
+	?SetKeyCode@TPhoneCmdParamKeyCapture@@QAEXW4TKeyCode@@@Z @ 226 NONAME ; void TPhoneCmdParamKeyCapture::SetKeyCode(enum TKeyCode)
+	?SetScreenLocked@CPhoneStorage@@UAEXH@Z @ 227 NONAME ; void CPhoneStorage::SetScreenLocked(int)
+	?CustomMessageId@TPhoneCmdParamAppInfo@@QBE?AVTUid@@XZ @ 228 NONAME ; class TUid TPhoneCmdParamAppInfo::CustomMessageId(void) const
+	?RemotePhoneNumber@TPhoneCmdParamCallHeaderData@@QBEABVTDesC16@@XZ @ 229 NONAME ; class TDesC16 const & TPhoneCmdParamCallHeaderData::RemotePhoneNumber(void) const
+	?SetType@TPhoneCmdParamNote@@QAEXW4TPhoneNoteType@@@Z @ 230 NONAME ; void TPhoneCmdParamNote::SetType(enum TPhoneNoteType)
+	?Instance@CPhoneClearBlacklist@@SAPAV1@XZ @ 231 NONAME ; class CPhoneClearBlacklist * CPhoneClearBlacklist::Instance(void)
+	?TextToSay@TPhoneCmdParamRingTone@@QBEABVTDesC16@@XZ @ 232 NONAME ; class TDesC16 const & TPhoneCmdParamRingTone::TextToSay(void) const
+	?Type@TPhoneCmdParamNote@@QBE?AW4TPhoneNoteType@@XZ @ 233 NONAME ; enum TPhoneNoteType TPhoneCmdParamNote::Type(void) const
+	?SetPicture@TPhoneCmdParamCallHeaderData@@QAEXABVTDesC16@@@Z @ 234 NONAME ; void TPhoneCmdParamCallHeaderData::SetPicture(class TDesC16 const &)
+	?Integer@TPhoneCmdParamInteger@@QBEHXZ @ 235 NONAME ; int TPhoneCmdParamInteger::Integer(void) const
+	?Mode@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 236 NONAME ; int TPhoneCmdParamIncallIndicatorData::Mode(void) const
+	?SetText@TPhoneCmdParamNote@@QAEXABVTDesC16@@@Z @ 237 NONAME ; void TPhoneCmdParamNote::SetText(class TDesC16 const &)
+	?SetCallerTextStatus@TPhoneCmdParamRingTone@@QAEXH@Z @ 238 NONAME ; void TPhoneCmdParamRingTone::SetCallerTextStatus(int)
+	?IsWiredAccAvailable@TPhoneCmdParamAudioAvailability@@QBEHXZ @ 239 NONAME ; int TPhoneCmdParamAudioAvailability::IsWiredAccAvailable(void) const
+	?SetWaitForReady@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 240 NONAME ; void TPhoneCmdParamGlobalNote::SetWaitForReady(int)
+	??0TPhoneCmdParamBoolean@@QAE@XZ @ 241 NONAME ; TPhoneCmdParamBoolean::TPhoneCmdParamBoolean(void)
+	?QueryCommandObserver@TPhoneCmdParamQuery@@QAEPAVMPhoneQueryCommandObserver@@XZ @ 242 NONAME ; class MPhoneQueryCommandObserver * TPhoneCmdParamQuery::QueryCommandObserver(void)
+	?DataText@TPhoneCmdParamQuery@@QBEPAVTDes16@@XZ @ 243 NONAME ; class TDes16 * TPhoneCmdParamQuery::DataText(void) const
+	?SetReal@CPhoneCenRepProxy@@QAEHABVTUid@@IN@Z @ 244 NONAME ; int CPhoneCenRepProxy::SetReal(class TUid const &, unsigned int, double)
+	??0TPhoneCmdParamCustomDialer@@QAE@XZ @ 245 NONAME ; TPhoneCmdParamCustomDialer::TPhoneCmdParamCustomDialer(void)
+	??1CPhonePubSubProxy@@UAE@XZ @ 246 NONAME ; CPhonePubSubProxy::~CPhonePubSubProxy(void)
+	??0TPhoneCmdParamNote@@QAE@XZ @ 247 NONAME ; TPhoneCmdParamNote::TPhoneCmdParamNote(void)
+	?Volume@TPhoneCmdParamRingTone@@QBEHXZ @ 248 NONAME ; int TPhoneCmdParamRingTone::Volume(void) const
+	?SetItemTextArrayForListQuery@TPhoneCmdParamQuery@@QAEXAAVMDesC16Array@@@Z @ 249 NONAME ; void TPhoneCmdParamQuery::SetItemTextArrayForListQuery(class MDesC16Array &)
+	?Type@TPhoneCmdParamRingTone@@QBE?AW4TPhoneRingToneType@@XZ @ 250 NONAME ; enum TPhoneRingToneType TPhoneCmdParamRingTone::Type(void) const
+	?Key@TPhoneCmdParamKeyCapture@@QBE?AW4TStdScanCode@@XZ @ 251 NONAME ; enum TStdScanCode TPhoneCmdParamKeyCapture::Key(void) const
+	?LabelText@TPhoneCmdParamEmergencyCallHeaderData@@QBEABVTDesC16@@XZ @ 252 NONAME ; class TDesC16 const & TPhoneCmdParamEmergencyCallHeaderData::LabelText(void) const
+	?Ciphering@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 253 NONAME ; int TPhoneCmdParamIncallIndicatorData::Ciphering(void) const
+	?SetQueryCommandObserver@TPhoneCmdParamQuery@@QAEXAAVMPhoneQueryCommandObserver@@@Z @ 254 NONAME ; void TPhoneCmdParamQuery::SetQueryCommandObserver(class MPhoneQueryCommandObserver &)
+	?IsPhoneUIFeatureSupported@CPhoneCenRepProxy@@QAEHH@Z @ 255 NONAME ; int CPhoneCenRepProxy::IsPhoneUIFeatureSupported(int)
+	?DefaultCba@TPhoneCmdParamQuery@@QBEHXZ @ 256 NONAME ; int TPhoneCmdParamQuery::DefaultCba(void) const
+	?CallState@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 257 NONAME ; int TPhoneCmdParamIncallIndicatorData::CallState(void) const
+	??0TPhoneCmdParamNumberEntryObserver@@QAE@XZ @ 258 NONAME ; TPhoneCmdParamNumberEntryObserver::TPhoneCmdParamNumberEntryObserver(void)
+	?SetLine2@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 259 NONAME ; void TPhoneCmdParamCallHeaderData::SetLine2(int)
+	?FetchValuesFromCenRepL@CPhoneCenRepProxy@@QAEXAAVTPhoneCmdParamAppInfo@@W4TKeyCode@@PAVHBufC8@@AAH@Z @ 260 NONAME ; void CPhoneCenRepProxy::FetchValuesFromCenRepL(class TPhoneCmdParamAppInfo &, enum TKeyCode, class HBufC8 *, int &)
+	?ParticipantCLI@TPhoneCmdParamCallHeaderData@@QBE?AW4TPhoneParticipantListCLI@1@XZ @ 261 NONAME ; enum TPhoneCmdParamCallHeaderData::TPhoneParticipantListCLI TPhoneCmdParamCallHeaderData::ParticipantCLI(void) const
+	?Thumbnail@TPhoneCmdParamCallHeaderData@@QBEPAVCFbsBitmap@@XZ @ 262 NONAME ; class CFbsBitmap * TPhoneCmdParamCallHeaderData::Thumbnail(void) const
+	?SetTimeOut@TPhoneCmdParamQuery@@QAEXH@Z @ 263 NONAME ; void TPhoneCmdParamQuery::SetTimeOut(int)
+	?Boolean@TPhoneCmdParamBoolean@@QBEHXZ @ 264 NONAME ; int TPhoneCmdParamBoolean::Boolean(void) const
+	?CLITextClippingDirection@TPhoneCmdParamCallHeaderData@@QBE?AW4TPhoneTextClippingDirection@1@XZ @ 265 NONAME ; enum TPhoneCmdParamCallHeaderData::TPhoneTextClippingDirection TPhoneCmdParamCallHeaderData::CLITextClippingDirection(void) const
+	?LogMsgFromPhoneUIToPE@CPhoneLogger@@QAEXHH@Z @ 266 NONAME ; void CPhoneLogger::LogMsgFromPhoneUIToPE(int, int)
+	?SetCustomMessageId@TPhoneCmdParamAppInfo@@QAEXABVTUid@@@Z @ 267 NONAME ; void TPhoneCmdParamAppInfo::SetCustomMessageId(class TUid const &)
+	?ResolveResourceID@CPhoneResourceResolverBase@@UBEHABH@Z @ 268 NONAME ; int CPhoneResourceResolverBase::ResolveResourceID(int const &) const
+	?SetName@TPhoneCmdParamSfiData@@QAEXABVTDesC16@@@Z @ 269 NONAME ; void TPhoneCmdParamSfiData::SetName(class TDesC16 const &)
+	?SetType@TPhoneCmdParamGlobalNote@@QAEXW4TAknGlobalNoteType@@@Z @ 270 NONAME ; void TPhoneCmdParamGlobalNote::SetType(enum TAknGlobalNoteType)
+	?SetLittleBubbleVisible@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 271 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetLittleBubbleVisible(int)
+	?Ciphering@TPhoneCmdParamCallHeaderData@@QBEHXZ @ 272 NONAME ; int TPhoneCmdParamCallHeaderData::Ciphering(void) const
+	?SetType@TPhoneCmdParamRingTone@@QAEXW4TPhoneRingToneType@@@Z @ 273 NONAME ; void TPhoneCmdParamRingTone::SetType(enum TPhoneRingToneType)
+	?ResourceId@TPhoneCmdParamDynMenu@@QBEHXZ @ 274 NONAME ; int TPhoneCmdParamDynMenu::ResourceId(void) const
+	?SetCipheringIndicatorAllowed@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 275 NONAME ; void TPhoneCmdParamCallHeaderData::SetCipheringIndicatorAllowed(int)
+	?SetWaitTime@TPhoneCmdParamProgressNote@@QAEXVTTimeIntervalMicroSeconds32@@@Z @ 276 NONAME ; void TPhoneCmdParamProgressNote::SetWaitTime(class TTimeIntervalMicroSeconds32)
+	?Ciphering@TPhoneCmdParamEmergencyCallHeaderData@@QBEHXZ @ 277 NONAME ; int TPhoneCmdParamEmergencyCallHeaderData::Ciphering(void) const
+	??1CPhoneCallThemeMonitor@@UAE@XZ @ 278 NONAME ; CPhoneCallThemeMonitor::~CPhoneCallThemeMonitor(void)
+	?SetNumberType@TPhoneCmdParamCallHeaderData@@QAEXH@Z @ 279 NONAME ; void TPhoneCmdParamCallHeaderData::SetNumberType(int)
+	?Mute@TPhoneCmdParamIncallIndicatorData@@QBEHXZ @ 280 NONAME ; int TPhoneCmdParamIncallIndicatorData::Mute(void) const
+	?SetBoolean@TPhoneCmdParamBoolean@@QAEXH@Z @ 281 NONAME ; void TPhoneCmdParamBoolean::SetBoolean(int)
+	?IsTelephonyFeatureSupported@CPhoneResourceResolverBase@@MBEHH@Z @ 282 NONAME ; int CPhoneResourceResolverBase::IsTelephonyFeatureSupported(int) const
+	?Instance@CPhoneMainErrorMessagesHandler@@SAPAV1@XZ @ 283 NONAME ; class CPhoneMainErrorMessagesHandler * CPhoneMainErrorMessagesHandler::Instance(void)
+	?SetViewUid@TPhoneCmdParamAppInfo@@QAEXABVTUid@@@Z @ 284 NONAME ; void TPhoneCmdParamAppInfo::SetViewUid(class TUid const &)
+	?SetServiceId@TPhoneCmdParamCallHeaderData@@QAEXK@Z @ 285 NONAME ; void TPhoneCmdParamCallHeaderData::SetServiceId(unsigned long)
+	?Instance@CPhoneCenRepProxy@@SAPAV1@XZ @ 286 NONAME ; class CPhoneCenRepProxy * CPhoneCenRepProxy::Instance(void)
+	?SetQueryType@TPhoneCmdParamQuery@@QAEXW4TPhoneQueryType@@@Z @ 287 NONAME ; void TPhoneCmdParamQuery::SetQueryType(enum TPhoneQueryType)
+	?Value@CPhonePubSubProxy@@QAEHABVTUid@@I@Z @ 288 NONAME ; int CPhonePubSubProxy::Value(class TUid const &, unsigned int)
+	?SetWiredAccAvailable@TPhoneCmdParamAudioAvailability@@QAEXH@Z @ 289 NONAME ; void TPhoneCmdParamAudioAvailability::SetWiredAccAvailable(int)
+	??0TPhoneCmdParamAudioOutput@@QAE@XZ @ 290 NONAME ; TPhoneCmdParamAudioOutput::TPhoneCmdParamAudioOutput(void)
+	?IsCallerImage@TPhoneCmdParamRingTone@@QAEHXZ @ 291 NONAME ; int TPhoneCmdParamRingTone::IsCallerImage(void)
+	??0TPhoneCmdParamQuery@@QAE@XZ @ 292 NONAME ; TPhoneCmdParamQuery::TPhoneCmdParamQuery(void)
+	?Instance@CPhoneMainResourceResolver@@SAPAV1@XZ @ 293 NONAME ; class CPhoneMainResourceResolver * CPhoneMainResourceResolver::Instance(void)
+	??1CPhoneLibraryContainer@@UAE@XZ @ 294 NONAME ; CPhoneLibraryContainer::~CPhoneLibraryContainer(void)
+	?ClearBlackListOnNextKey@CPhoneClearBlacklist@@QAEXXZ @ 295 NONAME ; void CPhoneClearBlacklist::ClearBlackListOnNextKey(void)
+	?Tone@TPhoneCmdParamQuery@@QBEHXZ @ 296 NONAME ; int TPhoneCmdParamQuery::Tone(void) const
+	?SetCiphering@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 297 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetCiphering(int)
+	?SetRingingType@TPhoneCmdParamRingTone@@QAEXH@Z @ 298 NONAME ; void TPhoneCmdParamRingTone::SetRingingType(int)
+	?SetCipheringIndicatorAllowed@TPhoneCmdParamIncallIndicatorData@@QAEXH@Z @ 299 NONAME ; void TPhoneCmdParamIncallIndicatorData::SetCipheringIndicatorAllowed(int)
+	?NeedToEnableKeylock@CPhoneStorage@@UAEHXZ @ 300 NONAME ; int CPhoneStorage::NeedToEnableKeylock(void)
+	?AudioOutput@TPhoneCmdParamAudioOutput@@QBE?AW4TPEAudioOutput@@XZ @ 301 NONAME ; enum TPEAudioOutput TPhoneCmdParamAudioOutput::AudioOutput(void) const
+	?SetResourceId@TPhoneCmdParamProgressNote@@QAEXH@Z @ 302 NONAME ; void TPhoneCmdParamProgressNote::SetResourceId(int)
+	??0TPhoneCmdParamInteger@@QAE@XZ @ 303 NONAME ; TPhoneCmdParamInteger::TPhoneCmdParamInteger(void)
+	?SetType@TPhoneCmdParamTransEffect@@QAEXW4TPhoneTransEffectType@@@Z @ 304 NONAME ; void TPhoneCmdParamTransEffect::SetType(enum TPhoneTransEffectType)
+	?Bitmap@TPhoneCmdParamBitmap@@QBEPAVCFbsBitmap@@XZ @ 305 NONAME ; class CFbsBitmap * TPhoneCmdParamBitmap::Bitmap(void) const
+	?SetTone@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 306 NONAME ; void TPhoneCmdParamGlobalNote::SetTone(int)
+	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@VTCallBack@@@Z @ 307 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class TCallBack)
 
--- a/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -166,236 +166,238 @@
 	_ZN22TPhoneCmdParamRingToneC2Ev @ 165 NONAME
 	_ZN24TPhoneCmdParamGlobalNote10SetTimeoutEi @ 166 NONAME
 	_ZN24TPhoneCmdParamGlobalNote11SetSoftkeysEi @ 167 NONAME
-	_ZN24TPhoneCmdParamGlobalNote15SetWaitForReadyEi @ 168 NONAME
-	_ZN24TPhoneCmdParamGlobalNote17SetTextResourceIdEi @ 169 NONAME
-	_ZN24TPhoneCmdParamGlobalNote21SetNotificationDialogEi @ 170 NONAME
-	_ZN24TPhoneCmdParamGlobalNote7SetTextERK7TDesC16 @ 171 NONAME
-	_ZN24TPhoneCmdParamGlobalNote7SetToneEi @ 172 NONAME
-	_ZN24TPhoneCmdParamGlobalNote7SetTypeE18TAknGlobalNoteType @ 173 NONAME
-	_ZN24TPhoneCmdParamGlobalNoteC1Ev @ 174 NONAME
-	_ZN24TPhoneCmdParamGlobalNoteC2Ev @ 175 NONAME
-	_ZN24TPhoneCmdParamKeyCapture10SetKeyCodeE8TKeyCode @ 176 NONAME
-	_ZN24TPhoneCmdParamKeyCapture14SetCaptureTypeE17TPhoneCaptureType @ 177 NONAME
-	_ZN24TPhoneCmdParamKeyCapture6SetKeyE12TStdScanCode @ 178 NONAME
-	_ZN24TPhoneCmdParamKeyCaptureC1Ev @ 179 NONAME
-	_ZN24TPhoneCmdParamKeyCaptureC2Ev @ 180 NONAME
-	_ZN25TPhoneCmdParamAudioOutput14SetAudioOutputE14TPEAudioOutput @ 181 NONAME
-	_ZN25TPhoneCmdParamAudioOutputC1Ev @ 182 NONAME
-	_ZN25TPhoneCmdParamAudioOutputC2Ev @ 183 NONAME
-	_ZN25TPhoneCmdParamTransEffect7SetTypeE21TPhoneTransEffectType @ 184 NONAME
-	_ZN25TPhoneCmdParamTransEffectC1Ev @ 185 NONAME
-	_ZN25TPhoneCmdParamTransEffectC2Ev @ 186 NONAME
-	_ZN26CPhoneMainResourceResolver8InstanceEv @ 187 NONAME
-	_ZN26CPhoneResourceResolverBase14BaseConstructLEv @ 188 NONAME
-	_ZN26CPhoneResourceResolverBaseC1Ev @ 189 NONAME
-	_ZN26CPhoneResourceResolverBaseC2Ev @ 190 NONAME
-	_ZN26CPhoneResourceResolverBaseD0Ev @ 191 NONAME
-	_ZN26CPhoneResourceResolverBaseD1Ev @ 192 NONAME
-	_ZN26CPhoneResourceResolverBaseD2Ev @ 193 NONAME
-	_ZN26TPhoneCmdParamCustomDialer16DialerControllerEv @ 194 NONAME
-	_ZN26TPhoneCmdParamCustomDialer19SetDialerControllerEP22MPhoneDialerController @ 195 NONAME
-	_ZN26TPhoneCmdParamCustomDialerC1Ev @ 196 NONAME
-	_ZN26TPhoneCmdParamCustomDialerC2Ev @ 197 NONAME
-	_ZN26TPhoneCmdParamProgressNote11SetWaitTimeE27TTimeIntervalMicroSeconds32 @ 198 NONAME
-	_ZN26TPhoneCmdParamProgressNote13SetResourceIdEi @ 199 NONAME
-	_ZN26TPhoneCmdParamProgressNoteC1Ev @ 200 NONAME
-	_ZN26TPhoneCmdParamProgressNoteC2Ev @ 201 NONAME
-	_ZN27TPhoneCmdParamCallStateData12SetCallStateEi @ 202 NONAME
-	_ZN27TPhoneCmdParamCallStateData9SetCallIdEi @ 203 NONAME
-	_ZN27TPhoneCmdParamCallStateDataC1Ev @ 204 NONAME
-	_ZN27TPhoneCmdParamCallStateDataC2Ev @ 205 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData10SetCLITextERK7TDesC16NS_27TPhoneTextClippingDirectionE @ 206 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData10SetPictureERK7TDesC16 @ 207 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData11SetCNAPTextERK7TDesC16NS_27TPhoneTextClippingDirectionE @ 208 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData11SetCallTypeEi @ 209 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData11SetDivertedEi @ 210 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData12SetCallStateEi @ 211 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData12SetCipheringEi @ 212 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData12SetLabelTextERK7TDesC16 @ 213 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData12SetServiceIdEm @ 214 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData12SetThumbnailEP10CFbsBitmap @ 215 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData13SetCallerTextERK7TDesC16 @ 216 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData13SetNumberTypeEi @ 217 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData14SetContactLinkERK6TDesC8 @ 218 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData15SetHasThumbnailEi @ 219 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData17SetShortLabelTextERK7TDesC16 @ 220 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData20SetRemotePhoneNumberERK7TDesC16 @ 221 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData21SetParticipantListCLIENS_24TPhoneParticipantListCLIE @ 222 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData28SetCipheringIndicatorAllowedEi @ 223 NONAME
-	_ZN28TPhoneCmdParamCallHeaderData8SetLine2Ei @ 224 NONAME
-	_ZN28TPhoneCmdParamCallHeaderDataC1Ev @ 225 NONAME
-	_ZN28TPhoneCmdParamCallHeaderDataC2Ev @ 226 NONAME
-	_ZN30CPhoneMainErrorMessagesHandler8InstanceEv @ 227 NONAME
-	_ZN31TPhoneCmdParamAudioAvailability17SetBTAccAvailableEi @ 228 NONAME
-	_ZN31TPhoneCmdParamAudioAvailability20SetWiredAccAvailableEi @ 229 NONAME
-	_ZN31TPhoneCmdParamAudioAvailabilityC1Ev @ 230 NONAME
-	_ZN31TPhoneCmdParamAudioAvailabilityC2Ev @ 231 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData12SetCallStateEi @ 232 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData12SetCipheringEi @ 233 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData12SetEmergencyEi @ 234 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData22SetLittleBubbleVisibleEi @ 235 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData28SetCipheringIndicatorAllowedEi @ 236 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData7SetModeEi @ 237 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData7SetMuteEi @ 238 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorData8SetLine2Ei @ 239 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorDataC1Ev @ 240 NONAME
-	_ZN33TPhoneCmdParamIncallIndicatorDataC2Ev @ 241 NONAME
-	_ZN33TPhoneCmdParamNumberEntryObserver11SetObserverE9TCallBack @ 242 NONAME
-	_ZN33TPhoneCmdParamNumberEntryObserver8ObserverEv @ 243 NONAME
-	_ZN33TPhoneCmdParamNumberEntryObserverC1Ev @ 244 NONAME
-	_ZN33TPhoneCmdParamNumberEntryObserverC2Ev @ 245 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderData12SetCipheringEi @ 246 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderData12SetLabelTextERK7TDesC16 @ 247 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderData13SetHeaderTextERK7TDesC16 @ 248 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderData21SetOwnPhoneNumberTextERK7TDesC16 @ 249 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderData28SetCipheringIndicatorAllowedEi @ 250 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderDataC1Ev @ 251 NONAME
-	_ZN37TPhoneCmdParamEmergencyCallHeaderDataC2Ev @ 252 NONAME
-	_ZNK13CPhoneStorage17GetBlockedKeyListEv @ 253 NONAME
-	_ZNK17CPhoneCenRepProxy4FindERK4TUidmmR6RArrayImE @ 254 NONAME
-	_ZNK17CPhoneCenRepProxy6GetIntERK4TUidjRi @ 255 NONAME
-	_ZNK17CPhoneCenRepProxy7GetRealERK4TUidjRd @ 256 NONAME
-	_ZNK17CPhoneCenRepProxy9GetStringERK4TUidjR6TDes16 @ 257 NONAME
-	_ZNK18TPhoneCmdParamNote10ResourceIdEv @ 258 NONAME
-	_ZNK18TPhoneCmdParamNote14TextResourceIdEv @ 259 NONAME
-	_ZNK18TPhoneCmdParamNote4TextEv @ 260 NONAME
-	_ZNK18TPhoneCmdParamNote4ToneEv @ 261 NONAME
-	_ZNK18TPhoneCmdParamNote4TypeEv @ 262 NONAME
-	_ZNK18TPhoneCmdParamNote7TimeoutEv @ 263 NONAME
-	_ZNK18TPhoneCommandParam7ParamIdEv @ 264 NONAME
-	_ZNK19TPhoneCmdParamQuery10ContentCbaEv @ 265 NONAME
-	_ZNK19TPhoneCmdParamQuery10DefaultCbaEv @ 266 NONAME
-	_ZNK19TPhoneCmdParamQuery11QueryPromptEv @ 267 NONAME
-	_ZNK19TPhoneCmdParamQuery14SendKeyEnabledEv @ 268 NONAME
-	_ZNK19TPhoneCmdParamQuery15QueryResourceIdEv @ 269 NONAME
-	_ZNK19TPhoneCmdParamQuery17CbaCommandMappingEi @ 270 NONAME
-	_ZNK19TPhoneCmdParamQuery25ItemTextArrayForListQueryEv @ 271 NONAME
-	_ZNK19TPhoneCmdParamQuery26GetCustomCommandForTimeOutERi @ 272 NONAME
-	_ZNK19TPhoneCmdParamQuery4ToneEv @ 273 NONAME
-	_ZNK19TPhoneCmdParamQuery7TimeOutEv @ 274 NONAME
-	_ZNK19TPhoneCmdParamQuery8DataTextEv @ 275 NONAME
-	_ZNK19TPhoneCmdParamQuery9QueryTypeEv @ 276 NONAME
-	_ZNK20TPhoneCmdParamBitmap10MaskBitmapEv @ 277 NONAME
-	_ZNK20TPhoneCmdParamBitmap6BitmapEv @ 278 NONAME
-	_ZNK21TPhoneCmdParamAppInfo13CustomMessageEv @ 279 NONAME
-	_ZNK21TPhoneCmdParamAppInfo15CustomMessageIdEv @ 280 NONAME
-	_ZNK21TPhoneCmdParamAppInfo17MultipleInstancesEv @ 281 NONAME
-	_ZNK21TPhoneCmdParamAppInfo5ParamEv @ 282 NONAME
-	_ZNK21TPhoneCmdParamAppInfo6AppUidEv @ 283 NONAME
-	_ZNK21TPhoneCmdParamAppInfo7ViewUidEv @ 284 NONAME
-	_ZNK21TPhoneCmdParamBoolean7BooleanEv @ 285 NONAME
-	_ZNK21TPhoneCmdParamDynMenu10ResourceIdEv @ 286 NONAME
-	_ZNK21TPhoneCmdParamInteger7IntegerEv @ 287 NONAME
-	_ZNK21TPhoneCmdParamPointer7PointerEv @ 288 NONAME
-	_ZNK21TPhoneCmdParamSfiData4NameEv @ 289 NONAME
-	_ZNK21TPhoneCmdParamSfiData6NumberEv @ 290 NONAME
-	_ZNK22CPhoneCallThemeMonitor22CallImageThemeFilePathEv @ 291 NONAME
-	_ZNK22CPhoneCallThemeMonitor22CallImageThemeSettingsEv @ 292 NONAME
-	_ZNK22TPhoneCmdParamKeyEvent8KeyEventEv @ 293 NONAME
-	_ZNK22TPhoneCmdParamKeyEvent9EventCodeEv @ 294 NONAME
-	_ZNK22TPhoneCmdParamRingTone11RingingTypeEv @ 295 NONAME
-	_ZNK22TPhoneCmdParamRingTone4TypeEv @ 296 NONAME
-	_ZNK22TPhoneCmdParamRingTone6VolumeEv @ 297 NONAME
-	_ZNK22TPhoneCmdParamRingTone8RingToneEv @ 298 NONAME
-	_ZNK22TPhoneCmdParamRingTone9TextToSayEv @ 299 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote12WaitForReadyEv @ 300 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote14TextResourceIdEv @ 301 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote18NotificationDialogEv @ 302 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote4TextEv @ 303 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote4ToneEv @ 304 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote4TypeEv @ 305 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote7TimeoutEv @ 306 NONAME
-	_ZNK24TPhoneCmdParamGlobalNote8SoftkeysEv @ 307 NONAME
-	_ZNK24TPhoneCmdParamKeyCapture11CaptureTypeEv @ 308 NONAME
-	_ZNK24TPhoneCmdParamKeyCapture3KeyEv @ 309 NONAME
-	_ZNK24TPhoneCmdParamKeyCapture7KeyCodeEv @ 310 NONAME
-	_ZNK25TPhoneCmdParamAudioOutput11AudioOutputEv @ 311 NONAME
-	_ZNK25TPhoneCmdParamTransEffect4TypeEv @ 312 NONAME
-	_ZNK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 313 NONAME
-	_ZNK26CPhoneResourceResolverBase27IsTelephonyFeatureSupportedEi @ 314 NONAME
-	_ZNK26TPhoneCmdParamProgressNote10ResourceIdEv @ 315 NONAME
-	_ZNK26TPhoneCmdParamProgressNote8WaitTimeEv @ 316 NONAME
-	_ZNK27TPhoneCmdParamCallStateData6CallIdEv @ 317 NONAME
-	_ZNK27TPhoneCmdParamCallStateData9CallStateEv @ 318 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData10CallerTextEv @ 319 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData10NumberTypeEv @ 320 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData11ContactLinkEv @ 321 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData12HasThumbnailEv @ 322 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData14ParticipantCLIEv @ 323 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData14ShortLabelTextEv @ 324 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData17RemotePhoneNumberEv @ 325 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData24CLITextClippingDirectionEv @ 326 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData25CNAPTextClippingDirectionEv @ 327 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData25CipheringIndicatorAllowedEv @ 328 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData5Line2Ev @ 329 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData7CLITextEv @ 330 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData7PictureEv @ 331 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData8CNAPTextEv @ 332 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData8CallTypeEv @ 333 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData8DivertedEv @ 334 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData9CallStateEv @ 335 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData9CipheringEv @ 336 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData9LabelTextEv @ 337 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData9ServiceIdEv @ 338 NONAME
-	_ZNK28TPhoneCmdParamCallHeaderData9ThumbnailEv @ 339 NONAME
-	_ZNK31TPhoneCmdParamAudioAvailability16IsBTAccAvailableEv @ 340 NONAME
-	_ZNK31TPhoneCmdParamAudioAvailability19IsWiredAccAvailableEv @ 341 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData19LittleBubbleVisibleEv @ 342 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData25CipheringIndicatorAllowedEv @ 343 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData4ModeEv @ 344 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData4MuteEv @ 345 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData5Line2Ev @ 346 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData9CallStateEv @ 347 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData9CipheringEv @ 348 NONAME
-	_ZNK33TPhoneCmdParamIncallIndicatorData9EmergencyEv @ 349 NONAME
-	_ZNK37TPhoneCmdParamEmergencyCallHeaderData10HeaderTextEv @ 350 NONAME
-	_ZNK37TPhoneCmdParamEmergencyCallHeaderData18OwnPhoneNumberTextEv @ 351 NONAME
-	_ZNK37TPhoneCmdParamEmergencyCallHeaderData25CipheringIndicatorAllowedEv @ 352 NONAME
-	_ZNK37TPhoneCmdParamEmergencyCallHeaderData9CipheringEv @ 353 NONAME
-	_ZNK37TPhoneCmdParamEmergencyCallHeaderData9LabelTextEv @ 354 NONAME
-	_ZTI11CPhoneTimer @ 355 NONAME
-	_ZTI12CPhoneLogger @ 356 NONAME
-	_ZTI13CPhoneStorage @ 357 NONAME
-	_ZTI17CPhoneCenRepProxy @ 358 NONAME
-	_ZTI17CPhonePubSubProxy @ 359 NONAME
-	_ZTI18CPhoneMethodLogger @ 360 NONAME
-	_ZTI20CPhoneClearBlacklist @ 361 NONAME
-	_ZTI20CPhoneRecoverySystem @ 362 NONAME
-	_ZTI22CPhoneCallThemeMonitor @ 363 NONAME
-	_ZTI22CPhoneLibraryContainer @ 364 NONAME
-	_ZTI24CPhoneCenRepEventHandler @ 365 NONAME
-	_ZTI25CPhonePublishSubscriberAO @ 366 NONAME
-	_ZTI26CPhoneMainResourceResolver @ 367 NONAME
-	_ZTI26CPhoneResourceResolverBase @ 368 NONAME
-	_ZTI30CPhoneMainErrorMessagesHandler @ 369 NONAME
-	_ZTV11CPhoneTimer @ 370 NONAME
-	_ZTV12CPhoneLogger @ 371 NONAME
-	_ZTV13CPhoneStorage @ 372 NONAME
-	_ZTV17CPhoneCenRepProxy @ 373 NONAME
-	_ZTV17CPhonePubSubProxy @ 374 NONAME
-	_ZTV18CPhoneMethodLogger @ 375 NONAME
-	_ZTV20CPhoneClearBlacklist @ 376 NONAME
-	_ZTV20CPhoneRecoverySystem @ 377 NONAME
-	_ZTV22CPhoneCallThemeMonitor @ 378 NONAME
-	_ZTV22CPhoneLibraryContainer @ 379 NONAME
-	_ZTV24CPhoneCenRepEventHandler @ 380 NONAME
-	_ZTV25CPhonePublishSubscriberAO @ 381 NONAME
-	_ZTV26CPhoneMainResourceResolver @ 382 NONAME
-	_ZTV26CPhoneResourceResolverBase @ 383 NONAME
-	_ZTV30CPhoneMainErrorMessagesHandler @ 384 NONAME
-	_ZThn4_N12CPhoneLoggerD0Ev @ 385 NONAME
-	_ZThn4_N12CPhoneLoggerD1Ev @ 386 NONAME
-	_ZThn4_N13CPhoneStorage14IsScreenLockedEv @ 387 NONAME
-	_ZThn4_N13CPhoneStorage15SetScreenLockedEi @ 388 NONAME
-	_ZThn4_N13CPhoneStorage19NeedToEnableKeylockEv @ 389 NONAME
-	_ZThn4_N13CPhoneStorage20ResetBlockedKeysListEv @ 390 NONAME
-	_ZThn4_N13CPhoneStorage22AppendBlockedKeysListLE12TStdScanCode @ 391 NONAME
-	_ZThn4_N13CPhoneStorage22IsBlockedKeysListEmptyEv @ 392 NONAME
-	_ZThn4_N13CPhoneStorage22SetNeedToEnableKeylockEi @ 393 NONAME
-	_ZThn4_N13CPhoneStorageD0Ev @ 394 NONAME
-	_ZThn4_N13CPhoneStorageD1Ev @ 395 NONAME
-	_ZThn4_N26CPhoneResourceResolverBaseD0Ev @ 396 NONAME
-	_ZThn4_N26CPhoneResourceResolverBaseD1Ev @ 397 NONAME
-	_ZThn4_NK13CPhoneStorage17GetBlockedKeyListEv @ 398 NONAME
-	_ZThn4_NK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 399 NONAME
+	_ZN24TPhoneCmdParamGlobalNote12SetCauseCodeEi @ 168 NONAME
+	_ZN24TPhoneCmdParamGlobalNote15SetWaitForReadyEi @ 169 NONAME
+	_ZN24TPhoneCmdParamGlobalNote17SetTextResourceIdEi @ 170 NONAME
+	_ZN24TPhoneCmdParamGlobalNote21SetNotificationDialogEi @ 171 NONAME
+	_ZN24TPhoneCmdParamGlobalNote7SetTextERK7TDesC16 @ 172 NONAME
+	_ZN24TPhoneCmdParamGlobalNote7SetToneEi @ 173 NONAME
+	_ZN24TPhoneCmdParamGlobalNote7SetTypeE18TAknGlobalNoteType @ 174 NONAME
+	_ZN24TPhoneCmdParamGlobalNoteC1Ev @ 175 NONAME
+	_ZN24TPhoneCmdParamGlobalNoteC2Ev @ 176 NONAME
+	_ZN24TPhoneCmdParamKeyCapture10SetKeyCodeE8TKeyCode @ 177 NONAME
+	_ZN24TPhoneCmdParamKeyCapture14SetCaptureTypeE17TPhoneCaptureType @ 178 NONAME
+	_ZN24TPhoneCmdParamKeyCapture6SetKeyE12TStdScanCode @ 179 NONAME
+	_ZN24TPhoneCmdParamKeyCaptureC1Ev @ 180 NONAME
+	_ZN24TPhoneCmdParamKeyCaptureC2Ev @ 181 NONAME
+	_ZN25TPhoneCmdParamAudioOutput14SetAudioOutputE14TPEAudioOutput @ 182 NONAME
+	_ZN25TPhoneCmdParamAudioOutputC1Ev @ 183 NONAME
+	_ZN25TPhoneCmdParamAudioOutputC2Ev @ 184 NONAME
+	_ZN25TPhoneCmdParamTransEffect7SetTypeE21TPhoneTransEffectType @ 185 NONAME
+	_ZN25TPhoneCmdParamTransEffectC1Ev @ 186 NONAME
+	_ZN25TPhoneCmdParamTransEffectC2Ev @ 187 NONAME
+	_ZN26CPhoneMainResourceResolver8InstanceEv @ 188 NONAME
+	_ZN26CPhoneResourceResolverBase14BaseConstructLEv @ 189 NONAME
+	_ZN26CPhoneResourceResolverBaseC1Ev @ 190 NONAME
+	_ZN26CPhoneResourceResolverBaseC2Ev @ 191 NONAME
+	_ZN26CPhoneResourceResolverBaseD0Ev @ 192 NONAME
+	_ZN26CPhoneResourceResolverBaseD1Ev @ 193 NONAME
+	_ZN26CPhoneResourceResolverBaseD2Ev @ 194 NONAME
+	_ZN26TPhoneCmdParamCustomDialer16DialerControllerEv @ 195 NONAME
+	_ZN26TPhoneCmdParamCustomDialer19SetDialerControllerEP22MPhoneDialerController @ 196 NONAME
+	_ZN26TPhoneCmdParamCustomDialerC1Ev @ 197 NONAME
+	_ZN26TPhoneCmdParamCustomDialerC2Ev @ 198 NONAME
+	_ZN26TPhoneCmdParamProgressNote11SetWaitTimeE27TTimeIntervalMicroSeconds32 @ 199 NONAME
+	_ZN26TPhoneCmdParamProgressNote13SetResourceIdEi @ 200 NONAME
+	_ZN26TPhoneCmdParamProgressNoteC1Ev @ 201 NONAME
+	_ZN26TPhoneCmdParamProgressNoteC2Ev @ 202 NONAME
+	_ZN27TPhoneCmdParamCallStateData12SetCallStateEi @ 203 NONAME
+	_ZN27TPhoneCmdParamCallStateData9SetCallIdEi @ 204 NONAME
+	_ZN27TPhoneCmdParamCallStateDataC1Ev @ 205 NONAME
+	_ZN27TPhoneCmdParamCallStateDataC2Ev @ 206 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData10SetCLITextERK7TDesC16NS_27TPhoneTextClippingDirectionE @ 207 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData10SetPictureERK7TDesC16 @ 208 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData11SetCNAPTextERK7TDesC16NS_27TPhoneTextClippingDirectionE @ 209 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData11SetCallTypeEi @ 210 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData11SetDivertedEi @ 211 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData12SetCallStateEi @ 212 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData12SetCipheringEi @ 213 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData12SetLabelTextERK7TDesC16 @ 214 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData12SetServiceIdEm @ 215 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData12SetThumbnailEP10CFbsBitmap @ 216 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData13SetCallerTextERK7TDesC16 @ 217 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData13SetNumberTypeEi @ 218 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData14SetContactLinkERK6TDesC8 @ 219 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData15SetHasThumbnailEi @ 220 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData17SetShortLabelTextERK7TDesC16 @ 221 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData20SetRemotePhoneNumberERK7TDesC16 @ 222 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData21SetParticipantListCLIENS_24TPhoneParticipantListCLIE @ 223 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData28SetCipheringIndicatorAllowedEi @ 224 NONAME
+	_ZN28TPhoneCmdParamCallHeaderData8SetLine2Ei @ 225 NONAME
+	_ZN28TPhoneCmdParamCallHeaderDataC1Ev @ 226 NONAME
+	_ZN28TPhoneCmdParamCallHeaderDataC2Ev @ 227 NONAME
+	_ZN30CPhoneMainErrorMessagesHandler8InstanceEv @ 228 NONAME
+	_ZN31TPhoneCmdParamAudioAvailability17SetBTAccAvailableEi @ 229 NONAME
+	_ZN31TPhoneCmdParamAudioAvailability20SetWiredAccAvailableEi @ 230 NONAME
+	_ZN31TPhoneCmdParamAudioAvailabilityC1Ev @ 231 NONAME
+	_ZN31TPhoneCmdParamAudioAvailabilityC2Ev @ 232 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData12SetCallStateEi @ 233 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData12SetCipheringEi @ 234 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData12SetEmergencyEi @ 235 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData22SetLittleBubbleVisibleEi @ 236 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData28SetCipheringIndicatorAllowedEi @ 237 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData7SetModeEi @ 238 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData7SetMuteEi @ 239 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorData8SetLine2Ei @ 240 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorDataC1Ev @ 241 NONAME
+	_ZN33TPhoneCmdParamIncallIndicatorDataC2Ev @ 242 NONAME
+	_ZN33TPhoneCmdParamNumberEntryObserver11SetObserverE9TCallBack @ 243 NONAME
+	_ZN33TPhoneCmdParamNumberEntryObserver8ObserverEv @ 244 NONAME
+	_ZN33TPhoneCmdParamNumberEntryObserverC1Ev @ 245 NONAME
+	_ZN33TPhoneCmdParamNumberEntryObserverC2Ev @ 246 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderData12SetCipheringEi @ 247 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderData12SetLabelTextERK7TDesC16 @ 248 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderData13SetHeaderTextERK7TDesC16 @ 249 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderData21SetOwnPhoneNumberTextERK7TDesC16 @ 250 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderData28SetCipheringIndicatorAllowedEi @ 251 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderDataC1Ev @ 252 NONAME
+	_ZN37TPhoneCmdParamEmergencyCallHeaderDataC2Ev @ 253 NONAME
+	_ZNK13CPhoneStorage17GetBlockedKeyListEv @ 254 NONAME
+	_ZNK17CPhoneCenRepProxy4FindERK4TUidmmR6RArrayImE @ 255 NONAME
+	_ZNK17CPhoneCenRepProxy6GetIntERK4TUidjRi @ 256 NONAME
+	_ZNK17CPhoneCenRepProxy7GetRealERK4TUidjRd @ 257 NONAME
+	_ZNK17CPhoneCenRepProxy9GetStringERK4TUidjR6TDes16 @ 258 NONAME
+	_ZNK18TPhoneCmdParamNote10ResourceIdEv @ 259 NONAME
+	_ZNK18TPhoneCmdParamNote14TextResourceIdEv @ 260 NONAME
+	_ZNK18TPhoneCmdParamNote4TextEv @ 261 NONAME
+	_ZNK18TPhoneCmdParamNote4ToneEv @ 262 NONAME
+	_ZNK18TPhoneCmdParamNote4TypeEv @ 263 NONAME
+	_ZNK18TPhoneCmdParamNote7TimeoutEv @ 264 NONAME
+	_ZNK18TPhoneCommandParam7ParamIdEv @ 265 NONAME
+	_ZNK19TPhoneCmdParamQuery10ContentCbaEv @ 266 NONAME
+	_ZNK19TPhoneCmdParamQuery10DefaultCbaEv @ 267 NONAME
+	_ZNK19TPhoneCmdParamQuery11QueryPromptEv @ 268 NONAME
+	_ZNK19TPhoneCmdParamQuery14SendKeyEnabledEv @ 269 NONAME
+	_ZNK19TPhoneCmdParamQuery15QueryResourceIdEv @ 270 NONAME
+	_ZNK19TPhoneCmdParamQuery17CbaCommandMappingEi @ 271 NONAME
+	_ZNK19TPhoneCmdParamQuery25ItemTextArrayForListQueryEv @ 272 NONAME
+	_ZNK19TPhoneCmdParamQuery26GetCustomCommandForTimeOutERi @ 273 NONAME
+	_ZNK19TPhoneCmdParamQuery4ToneEv @ 274 NONAME
+	_ZNK19TPhoneCmdParamQuery7TimeOutEv @ 275 NONAME
+	_ZNK19TPhoneCmdParamQuery8DataTextEv @ 276 NONAME
+	_ZNK19TPhoneCmdParamQuery9QueryTypeEv @ 277 NONAME
+	_ZNK20TPhoneCmdParamBitmap10MaskBitmapEv @ 278 NONAME
+	_ZNK20TPhoneCmdParamBitmap6BitmapEv @ 279 NONAME
+	_ZNK21TPhoneCmdParamAppInfo13CustomMessageEv @ 280 NONAME
+	_ZNK21TPhoneCmdParamAppInfo15CustomMessageIdEv @ 281 NONAME
+	_ZNK21TPhoneCmdParamAppInfo17MultipleInstancesEv @ 282 NONAME
+	_ZNK21TPhoneCmdParamAppInfo5ParamEv @ 283 NONAME
+	_ZNK21TPhoneCmdParamAppInfo6AppUidEv @ 284 NONAME
+	_ZNK21TPhoneCmdParamAppInfo7ViewUidEv @ 285 NONAME
+	_ZNK21TPhoneCmdParamBoolean7BooleanEv @ 286 NONAME
+	_ZNK21TPhoneCmdParamDynMenu10ResourceIdEv @ 287 NONAME
+	_ZNK21TPhoneCmdParamInteger7IntegerEv @ 288 NONAME
+	_ZNK21TPhoneCmdParamPointer7PointerEv @ 289 NONAME
+	_ZNK21TPhoneCmdParamSfiData4NameEv @ 290 NONAME
+	_ZNK21TPhoneCmdParamSfiData6NumberEv @ 291 NONAME
+	_ZNK22CPhoneCallThemeMonitor22CallImageThemeFilePathEv @ 292 NONAME
+	_ZNK22CPhoneCallThemeMonitor22CallImageThemeSettingsEv @ 293 NONAME
+	_ZNK22TPhoneCmdParamKeyEvent8KeyEventEv @ 294 NONAME
+	_ZNK22TPhoneCmdParamKeyEvent9EventCodeEv @ 295 NONAME
+	_ZNK22TPhoneCmdParamRingTone11RingingTypeEv @ 296 NONAME
+	_ZNK22TPhoneCmdParamRingTone4TypeEv @ 297 NONAME
+	_ZNK22TPhoneCmdParamRingTone6VolumeEv @ 298 NONAME
+	_ZNK22TPhoneCmdParamRingTone8RingToneEv @ 299 NONAME
+	_ZNK22TPhoneCmdParamRingTone9TextToSayEv @ 300 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote12WaitForReadyEv @ 301 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote14TextResourceIdEv @ 302 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote18NotificationDialogEv @ 303 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote4TextEv @ 304 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote4ToneEv @ 305 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote4TypeEv @ 306 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote7TimeoutEv @ 307 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote8SoftkeysEv @ 308 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote9CauseCodeEv @ 309 NONAME
+	_ZNK24TPhoneCmdParamKeyCapture11CaptureTypeEv @ 310 NONAME
+	_ZNK24TPhoneCmdParamKeyCapture3KeyEv @ 311 NONAME
+	_ZNK24TPhoneCmdParamKeyCapture7KeyCodeEv @ 312 NONAME
+	_ZNK25TPhoneCmdParamAudioOutput11AudioOutputEv @ 313 NONAME
+	_ZNK25TPhoneCmdParamTransEffect4TypeEv @ 314 NONAME
+	_ZNK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 315 NONAME
+	_ZNK26CPhoneResourceResolverBase27IsTelephonyFeatureSupportedEi @ 316 NONAME
+	_ZNK26TPhoneCmdParamProgressNote10ResourceIdEv @ 317 NONAME
+	_ZNK26TPhoneCmdParamProgressNote8WaitTimeEv @ 318 NONAME
+	_ZNK27TPhoneCmdParamCallStateData6CallIdEv @ 319 NONAME
+	_ZNK27TPhoneCmdParamCallStateData9CallStateEv @ 320 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData10CallerTextEv @ 321 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData10NumberTypeEv @ 322 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData11ContactLinkEv @ 323 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData12HasThumbnailEv @ 324 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData14ParticipantCLIEv @ 325 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData14ShortLabelTextEv @ 326 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData17RemotePhoneNumberEv @ 327 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData24CLITextClippingDirectionEv @ 328 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData25CNAPTextClippingDirectionEv @ 329 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData25CipheringIndicatorAllowedEv @ 330 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData5Line2Ev @ 331 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData7CLITextEv @ 332 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData7PictureEv @ 333 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData8CNAPTextEv @ 334 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData8CallTypeEv @ 335 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData8DivertedEv @ 336 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData9CallStateEv @ 337 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData9CipheringEv @ 338 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData9LabelTextEv @ 339 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData9ServiceIdEv @ 340 NONAME
+	_ZNK28TPhoneCmdParamCallHeaderData9ThumbnailEv @ 341 NONAME
+	_ZNK31TPhoneCmdParamAudioAvailability16IsBTAccAvailableEv @ 342 NONAME
+	_ZNK31TPhoneCmdParamAudioAvailability19IsWiredAccAvailableEv @ 343 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData19LittleBubbleVisibleEv @ 344 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData25CipheringIndicatorAllowedEv @ 345 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData4ModeEv @ 346 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData4MuteEv @ 347 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData5Line2Ev @ 348 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData9CallStateEv @ 349 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData9CipheringEv @ 350 NONAME
+	_ZNK33TPhoneCmdParamIncallIndicatorData9EmergencyEv @ 351 NONAME
+	_ZNK37TPhoneCmdParamEmergencyCallHeaderData10HeaderTextEv @ 352 NONAME
+	_ZNK37TPhoneCmdParamEmergencyCallHeaderData18OwnPhoneNumberTextEv @ 353 NONAME
+	_ZNK37TPhoneCmdParamEmergencyCallHeaderData25CipheringIndicatorAllowedEv @ 354 NONAME
+	_ZNK37TPhoneCmdParamEmergencyCallHeaderData9CipheringEv @ 355 NONAME
+	_ZNK37TPhoneCmdParamEmergencyCallHeaderData9LabelTextEv @ 356 NONAME
+	_ZTI11CPhoneTimer @ 357 NONAME
+	_ZTI12CPhoneLogger @ 358 NONAME
+	_ZTI13CPhoneStorage @ 359 NONAME
+	_ZTI17CPhoneCenRepProxy @ 360 NONAME
+	_ZTI17CPhonePubSubProxy @ 361 NONAME
+	_ZTI18CPhoneMethodLogger @ 362 NONAME
+	_ZTI20CPhoneClearBlacklist @ 363 NONAME
+	_ZTI20CPhoneRecoverySystem @ 364 NONAME
+	_ZTI22CPhoneCallThemeMonitor @ 365 NONAME
+	_ZTI22CPhoneLibraryContainer @ 366 NONAME
+	_ZTI24CPhoneCenRepEventHandler @ 367 NONAME
+	_ZTI25CPhonePublishSubscriberAO @ 368 NONAME
+	_ZTI26CPhoneMainResourceResolver @ 369 NONAME
+	_ZTI26CPhoneResourceResolverBase @ 370 NONAME
+	_ZTI30CPhoneMainErrorMessagesHandler @ 371 NONAME
+	_ZTV11CPhoneTimer @ 372 NONAME
+	_ZTV12CPhoneLogger @ 373 NONAME
+	_ZTV13CPhoneStorage @ 374 NONAME
+	_ZTV17CPhoneCenRepProxy @ 375 NONAME
+	_ZTV17CPhonePubSubProxy @ 376 NONAME
+	_ZTV18CPhoneMethodLogger @ 377 NONAME
+	_ZTV20CPhoneClearBlacklist @ 378 NONAME
+	_ZTV20CPhoneRecoverySystem @ 379 NONAME
+	_ZTV22CPhoneCallThemeMonitor @ 380 NONAME
+	_ZTV22CPhoneLibraryContainer @ 381 NONAME
+	_ZTV24CPhoneCenRepEventHandler @ 382 NONAME
+	_ZTV25CPhonePublishSubscriberAO @ 383 NONAME
+	_ZTV26CPhoneMainResourceResolver @ 384 NONAME
+	_ZTV26CPhoneResourceResolverBase @ 385 NONAME
+	_ZTV30CPhoneMainErrorMessagesHandler @ 386 NONAME
+	_ZThn4_N12CPhoneLoggerD0Ev @ 387 NONAME
+	_ZThn4_N12CPhoneLoggerD1Ev @ 388 NONAME
+	_ZThn4_N13CPhoneStorage14IsScreenLockedEv @ 389 NONAME
+	_ZThn4_N13CPhoneStorage15SetScreenLockedEi @ 390 NONAME
+	_ZThn4_N13CPhoneStorage19NeedToEnableKeylockEv @ 391 NONAME
+	_ZThn4_N13CPhoneStorage20ResetBlockedKeysListEv @ 392 NONAME
+	_ZThn4_N13CPhoneStorage22AppendBlockedKeysListLE12TStdScanCode @ 393 NONAME
+	_ZThn4_N13CPhoneStorage22IsBlockedKeysListEmptyEv @ 394 NONAME
+	_ZThn4_N13CPhoneStorage22SetNeedToEnableKeylockEi @ 395 NONAME
+	_ZThn4_N13CPhoneStorageD0Ev @ 396 NONAME
+	_ZThn4_N13CPhoneStorageD1Ev @ 397 NONAME
+	_ZThn4_N26CPhoneResourceResolverBaseD0Ev @ 398 NONAME
+	_ZThn4_N26CPhoneResourceResolverBaseD1Ev @ 399 NONAME
+	_ZThn4_NK13CPhoneStorage17GetBlockedKeyListEv @ 400 NONAME
+	_ZThn4_NK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 401 NONAME
 
--- a/phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,12 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
-*     Macro definition file for logging.
+* Description:  Macro definition file for logging.
 *
 */
 
-// Autogenerated from phoneloggerviewcommands.st by the stringtable tool - Do not edit
+// Autogenerated from .\phoneloggerviewcommands.st by the stringtable tool - Do not edit
 
 #ifndef STRINGTABLE_PhoneLoggerviewCommands
 #define STRINGTABLE_PhoneLoggerviewCommands
@@ -27,393 +26,429 @@
 
 /** A String table */
 class PhoneLoggerviewCommands 
-    {
+	{
 public:
-    enum TStrings
-        {
-        /** EPhoneViewStartValue */
-        EPhoneViewStartValue,
-        /** EPhoneViewCreateNumberEntry */
-        EPhoneViewCreateNumberEntry,
-        /** EPhoneViewSetNumberEntryContent */
-        EPhoneViewSetNumberEntryContent,
-        /** EPhoneViewSendKeyEventToNumberEntry */
-        EPhoneViewSendKeyEventToNumberEntry,
-        /** EPhoneViewRemoveNumberEntry */
-        EPhoneViewRemoveNumberEntry,
-        /** EPhoneViewSetNumberEntryVisible */
-        EPhoneViewSetNumberEntryVisible,
-        /** EPhoneViewGetNumberFromEntry */
-        EPhoneViewGetNumberFromEntry,
-        /** EPhoneViewGetNumberEntryCount */
-        EPhoneViewGetNumberEntryCount,
-        /** EPhoneViewGetNumberEntryIsUsedStatus */
-        EPhoneViewGetNumberEntryIsUsedStatus,
-        /** EPhoneViewGetNumberEntryIsVisibleStatus */
-        EPhoneViewGetNumberEntryIsVisibleStatus,
-        /** EPhoneViewToggleNumberEntryAlphaNumericMode */
-        EPhoneViewToggleNumberEntryAlphaNumericMode,
-        /** EPhoneViewIsNumberEntryNumericMode */
-        EPhoneViewIsNumberEntryNumericMode,
-        /** EPhoneViewClearNumberEntryContent */
-        EPhoneViewClearNumberEntryContent,
-        /** EPhoneViewCreateCallHeader */
-        EPhoneViewCreateCallHeader,
-        /** EPhoneViewCreateEmergencyCallHeader */
-        EPhoneViewCreateEmergencyCallHeader,
-        /** EPhoneViewUpdateCallHeaderRemoteInfoData */
-        EPhoneViewUpdateCallHeaderRemoteInfoData,
-        /** EPhoneViewUpdateCallHeaderCallDuration */
-        EPhoneViewUpdateCallHeaderCallDuration,
-        /** EPhoneViewRemoveCallHeader */
-        EPhoneViewRemoveCallHeader,
-        /** EPhoneViewMenuBarOpen */
-        EPhoneViewMenuBarOpen,
-        /** EPhoneViewMenuBarClose */
-        EPhoneViewMenuBarClose,
-        /** EPhoneViewDimCbaCommand */
-        EPhoneViewDimCbaCommand,
-        /** EPhoneViewUpdateCba */
-        EPhoneViewUpdateCba,
-        /** EPhoneViewUpdateBubble */
-        EPhoneViewUpdateBubble,
-        /** EPhoneViewMenuPane */
-        EPhoneViewMenuPane,
-        /** EPhoneViewMenuBar */
-        EPhoneViewMenuBar,
-        /** EPhoneViewSetTitlePaneContent */
-        EPhoneViewSetTitlePaneContent,
-        /** EPhoneViewSetNaviPaneContent */
-        EPhoneViewSetNaviPaneContent,
-        /** EPhoneViewSetTitlePanePicture */
-        EPhoneViewSetTitlePanePicture,
-        /** EPhoneViewGetTitlePaneIsVisibleStatus */
-        EPhoneViewGetTitlePaneIsVisibleStatus,
-        /** EPhoneViewActivateAudioPathUIChanges */
-        EPhoneViewActivateAudioPathUIChanges,
-        /** EPhoneViewActivateAudioAvailabilityUIChanges */
-        EPhoneViewActivateAudioAvailabilityUIChanges,
-        /** EPhoneViewActivateMuteUIChanges */
-        EPhoneViewActivateMuteUIChanges,
-        /** EPhoneViewShowNote */
-        EPhoneViewShowNote,
-        /** EPhoneViewShowGlobalNote */
-        EPhoneViewShowGlobalNote,
-        /** EPhoneViewShowProgressNote */
-        EPhoneViewShowProgressNote,
-        /** EPhoneViewRemoveNote */
-        EPhoneViewRemoveNote,
-        /** EPhoneViewRemoveProgressNote */
-        EPhoneViewRemoveProgressNote,
-        /** EPhoneViewRemoveGlobalNote */
-        EPhoneViewRemoveGlobalNote,
-        /** EPhoneViewGetIsNoteVisible */
-        EPhoneViewGetIsNoteVisible,
-        /** EPhoneViewGetIsProgressNoteVisible */
-        EPhoneViewGetIsProgressNoteVisible,
-        /** EPhoneViewShowQuery */
-        EPhoneViewShowQuery,
-        /** EPhoneViewSetListQueryString */
-        EPhoneViewSetListQueryString,
-        /** EPhoneViewRemoveQuery */
-        EPhoneViewRemoveQuery,
-        /** EPhoneViewGetTextQueryContents */
-        EPhoneViewGetTextQueryContents,
-        /** EPhoneViewSetTopApplication */
-        EPhoneViewSetTopApplication,
-        /** EPhoneViewBringAppToForeground */
-        EPhoneViewBringAppToForeground,
-        /** EPhoneViewSendToBackground */
-        EPhoneViewSendToBackground,
-        /** EPhoneViewSetNeedToSendToBackgroundStatus */
-        EPhoneViewSetNeedToSendToBackgroundStatus,
-        /** EPhoneViewGetNeedToSendToBackgroundStatus */
-        EPhoneViewGetNeedToSendToBackgroundStatus,
-        /** EPhoneViewGetTopApplicationIsDisplayedStatus */
-        EPhoneViewGetTopApplicationIsDisplayedStatus,
-        /** EPhoneViewGetForegroundApplication */
-        EPhoneViewGetForegroundApplication,
-        /** EPhoneViewSetBackgroundImageBitmap */
-        EPhoneViewSetBackgroundImageBitmap,
-        /** EPhoneViewGetBackgroundImageBitmap */
-        EPhoneViewGetBackgroundImageBitmap,
-        /** EPhoneViewActivateApp */
-        EPhoneViewActivateApp,
-        /** EPhoneViewActivateAppView */
-        EPhoneViewActivateAppView,
-        /** EPhoneViewActivateAppViewWithCustomMessage */
-        EPhoneViewActivateAppViewWithCustomMessage,
-        /** EPhoneViewActivateAppViewConventional */
-        EPhoneViewActivateAppViewConventional,
-        /** EPhoneViewLaunchApplication */
-        EPhoneViewLaunchApplication,
-        /** EPhoneViewLaunchHelpApplication */
-        EPhoneViewLaunchHelpApplication,
-        /** EPhoneViewOpenMessageEditor */
-        EPhoneViewOpenMessageEditor,
-        /** EPhoneViewExitApplications */
-        EPhoneViewExitApplications,
-        /** EPhoneViewUpdateIncallIndicator */
-        EPhoneViewUpdateIncallIndicator,
-        /** EPhoneViewStartCapturingKey */
-        EPhoneViewStartCapturingKey,
-        /** EPhoneViewStopCapturingKey */
-        EPhoneViewStopCapturingKey,
-        /** EPhoneViewSetGlobalNotifiersDisabled */
-        EPhoneViewSetGlobalNotifiersDisabled,
-        /** EPhoneViewGetHoldFlag */
-        EPhoneViewGetHoldFlag,
-        /** EPhoneViewSetHoldFlag */
-        EPhoneViewSetHoldFlag,
-        /** EPhoneViewSetSoftRejectFlag */
-        EPhoneViewSetSoftRejectFlag,
-        /** EPhoneViewGetSoftRejectFlag */
-        EPhoneViewGetSoftRejectFlag,
-        /** EPhoneViewSetServiceCodeFlag */
-        EPhoneViewSetServiceCodeFlag,
-        /** EPhoneViewUpdateContact */
-        EPhoneViewUpdateContact,
-        /** EPhoneViewAddContact */
-        EPhoneViewAddContact,
-        /** EPhoneViewOpenSingleItemFetchDialog */
-        EPhoneViewOpenSingleItemFetchDialog,
-        /** EPhoneViewRemovePhoneDialogs */
-        EPhoneViewRemovePhoneDialogs,
-        /** EPhoneViewCreateConference */
-        EPhoneViewCreateConference,
-        /** EPhoneViewAddToConference */
-        EPhoneViewAddToConference,
-        /** EPhoneViewRemoveFromConference */
-        EPhoneViewRemoveFromConference,
-        /** EPhoneViewPrivateFromConference */
-        EPhoneViewPrivateFromConference,
-        /** EPhoneViewSelectedConfMember */
-        EPhoneViewSelectedConfMember,
-        /** EPhoneViewOpenConferenceList */
-        EPhoneViewOpenConferenceList,
-        /** EPhoneViewGetConferenceListVisibleFlag */
-        EPhoneViewGetConferenceListVisibleFlag,
-        /** EPhoneViewGetCallState */
-        EPhoneViewGetCallState,
-        /** EPhoneViewGetCallIdByState */
-        EPhoneViewGetCallIdByState,
-        /** EPhoneViewMoveHighLightInList */
-        EPhoneViewMoveHighLightInList,
-        /** EPhoneViewGetCountOfActiveCalls */
-        EPhoneViewGetCountOfActiveCalls,
-        /** EPhoneViewSetNaviPaneAudioVolume */
-        EPhoneViewSetNaviPaneAudioVolume,
-        /** EPhoneViewShowNaviPaneAudioVolume */
-        EPhoneViewShowNaviPaneAudioVolume,
-        /** EPhoneViewHideNaviPaneAudioVolume */
-        EPhoneViewHideNaviPaneAudioVolume,
-        /** EPhoneViewGetIsConference */
-        EPhoneViewGetIsConference,
-        /** EPhoneViewGetCallExistsInConference */
-        EPhoneViewGetCallExistsInConference,
-        /** EPhoneViewRemoveAllCallHeaders */
-        EPhoneViewRemoveAllCallHeaders,
-        /** EPhoneViewPlayRingTone */
-        EPhoneViewPlayRingTone,
-        /** EPhoneViewMuteRingTone */
-        EPhoneViewMuteRingTone,
-        /** EPhoneViewStopRingTone */
-        EPhoneViewStopRingTone,
-        /** EPhoneViewMuteRingToneOnAnswer */
-        EPhoneViewMuteRingToneOnAnswer,
-        /** EPhoneViewCipheringInfoChange */
-        EPhoneViewCipheringInfoChange,
-        /** EPhoneViewUpdateMaxConfMemberFlag */
-        EPhoneViewUpdateMaxConfMemberFlag,
-        /** EPhoneViewCloseFSW */
-        EPhoneViewCloseFSW,
-        /** EPhoneViewLaunchRfsDeep */
-        EPhoneViewLaunchRfsDeep,
-        /** EPhoneViewLaunchRfsNormal */
-        EPhoneViewLaunchRfsNormal,
-        /** EPhoneViewUpdateView */
-        EPhoneViewUpdateView,
-        /** EPhoneViewOpenSoftRejectEditor */
-        EPhoneViewOpenSoftRejectEditor,
-        /** EPhoneViewSendMessage */
-        EPhoneViewSendMessage,
-        /** EPhoneViewSetBlockingDialogStatus */
-        EPhoneViewSetBlockingDialogStatus,
-        /** EPhoneViewSetPhoneNumberAvailableInPhoneEngine */
-        EPhoneViewSetPhoneNumberAvailableInPhoneEngine,
-        /** EPhoneViewSetSecurityMode */
-        EPhoneViewSetSecurityMode,
-        /** EPhoneViewGetSecurityModeStatus */
-        EPhoneViewGetSecurityModeStatus,
-        /** EPhoneViewSetStatusPaneVisible */
-        EPhoneViewSetStatusPaneVisible,
-        /** EPhoneViewEnableKeyLock */
-        EPhoneViewEnableKeyLock,
-        /** EPhoneViewEnableKeyLockWithoutNote */
-        EPhoneViewEnableKeyLockWithoutNote,
-        /** EPhoneViewLaunchFaxModem */
-        EPhoneViewLaunchFaxModem,
-        /** EPhoneViewUpdateFSW */
-        EPhoneViewUpdateFSW,
-        /** EPhoneViewIsQuery */
-        EPhoneViewIsQuery,
-        /** EPhoneViewBringIdleToForeground */
-        EPhoneViewBringIdleToForeground,
-        /** EPhoneViewSetIdleTopApplication */
-        EPhoneViewSetIdleTopApplication,
-        /** EPhoneViewBeginUpdate */
-        EPhoneViewBeginUpdate,
-        /** EPhoneViewEndUpdate */
-        EPhoneViewEndUpdate,
-        /** EPhoneViewSetConfrenceOptionsFlag */
-        EPhoneViewSetConfrenceOptionsFlag,
-        /** EPhoneViewRemoveConferenceBubble */
-        EPhoneViewRemoveConferenceBubble,
-        /** EPhoneViewGetSoftRejectWindowGroupId */
-        EPhoneViewGetSoftRejectWindowGroupId,
-        /** EPhoneViewSetTouchPaneButtons */
-        EPhoneViewSetTouchPaneButtons,
-        /** EPhoneViewSetTouchPaneVisible */
-        EPhoneViewSetTouchPaneVisible,
-        /** EPhoneViewEnableTouchButton */
-        EPhoneViewEnableTouchButton,
-        /** EPhoneViewDisableTouchButton */
-        EPhoneViewDisableTouchButton,
-        /** EPhoneResetTouchButtons */
-        EPhoneResetTouchButtons,
-        /** EPhoneViewGetIsConferenceInSelectionMode */
-        EPhoneViewGetIsConferenceInSelectionMode,
-        /** EPhoneViewIsStraightCallToVideoMailBox */
-        EPhoneViewIsStraightCallToVideoMailBox,
-        /** EPhoneViewSetDtmfDialerViewVisible */
-        EPhoneViewSetDtmfDialerViewVisible,
-        /** EPhoneViewSetRetrictedDialer */
-        EPhoneViewSetRetrictedDialer,
-        /** EPhoneViewIsConferenceInExpandedMode */
-        EPhoneViewIsConferenceInExpandedMode,
-        /** EPhoneViewIsMenuBarVisible */
-        EPhoneViewIsMenuBarVisible,
-        /** EPhoneViewGetBlockingDialogStatus */
-        EPhoneViewGetBlockingDialogStatus,
-        /** EPhoneViewYesSingleItemFetch */
-        EPhoneViewYesSingleItemFetch,
-        /** EPhoneViewNoSingleItemFetch */
-        EPhoneViewNoSingleItemFetch,
-        /** EPhoneViewGetLocalizedNumberFromEntry */
-        EPhoneViewGetLocalizedNumberFromEntry,
-        /** EPhoneViewIsNoteActive */
-        EPhoneViewIsNoteActive,
-        /** EPhoneViewOpenNumberEntry */
-        EPhoneViewOpenNumberEntry,
-        /** EPhoneViewOpenCallHandling */
-        EPhoneViewOpenCallHandling,
-        /** EPhoneViewGetConferenceAndSingleFlag */
-        EPhoneViewGetConferenceAndSingleFlag,
-        /** EPhoneViewSetConferenceAndSingleFlag */
-        EPhoneViewSetConferenceAndSingleFlag,
-        /** EPhoneViewSetVideoCallFlag */
-        EPhoneViewSetVideoCallFlag,
-        /** EPhoneViewSetDtmfOptionsFlag */
-        EPhoneViewSetDtmfOptionsFlag,
-        /** EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery */
-        EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery,
-        /** EPhoneViewGetAudioVolumeLevel */
-        EPhoneViewGetAudioVolumeLevel,
-        /** EPhoneViewIsIdleTopApp */
-        EPhoneViewIsIdleTopApp,
-        /** EPhoneViewUpdateToolbar */
-        EPhoneViewUpdateToolbar,
-        /** EPhoneViewSetControlAndVisibility */
-        EPhoneViewSetControlAndVisibility,
-        /** EPhoneViewAllowWaitingCallHeader */
-        EPhoneViewAllowWaitingCallHeader,
-        /** EPhoneViewBeginTransEffect */
-        EPhoneViewBeginTransEffect,
-        /** EPhoneViewEndTransEffect */
-        EPhoneViewEndTransEffect,
-        /** EPhoneViewSetDialerControlVisible */
-        EPhoneViewSetDialerControlVisible,
-        /** EPhoneViewCloseSingleItemFetchDialog */
-        EPhoneViewCloseSingleItemFetchDialog,
-        /** EPhoneViewGetActivatePreviousApp */
-        EPhoneViewGetActivatePreviousApp,
-        /** EPhoneViewActivatePreviousApp */
-        EPhoneViewActivatePreviousApp,
-        /** EPhoneViewSetPointerCapture */
-        EPhoneViewSetPointerCapture,
-        /** EPhoneViewSetSendKeyDialerActivationFlag */
-        EPhoneViewSetSendKeyDialerActivationFlag,
-        /** EPhoneViewPrepareIcons */
-        EPhoneViewPrepareIcons,
-        /** EPhoneViewKeypadAudioEnabled */
-        EPhoneViewKeypadAudioEnabled,
-        /** EPhoneViewKeypadAudioDisabled */
-        EPhoneViewKeypadAudioDisabled,
-        /** EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel */
-        EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel,
-        /** EPhoneViewRemoveDtmfNote */
-        EPhoneViewRemoveDtmfNote,
-        /** EPhoneViewUpdatePhoneIconToFSW */
-        EPhoneViewUpdatePhoneIconToFSW,
-        /** EPhoneViewSetEikonNotifiersDisabled */
-        EPhoneViewSetEikonNotifiersDisabled,
-        /** EPhoneViewCancelAllNotications */
-        EPhoneViewCancelAllNotications,
-        /** EPhoneViewSetVideoCallDTMFVisibilityFlag */
-        EPhoneViewSetVideoCallDTMFVisibilityFlag,
-        /** EPhoneViewIsKeyLockEnabled */
-        EPhoneViewIsKeyLockEnabled,
-        /** EPhoneViewDisableKeyLock */
-        EPhoneViewDisableKeyLock,
-        /** EPhoneViewLoadPlugins */
-        EPhoneViewLoadPlugins,
-        /** PhoneViewServiceSelection */
-        PhoneViewServiceSelection,
-        /** EPhoneViewOpenVirtualKeyBoard */
-        EPhoneViewOpenVirtualKeyBoard,
-        /** EPhoneViewUpdateNoteSoftkeys */
-        EPhoneViewUpdateNoteSoftkeys,
-        /** EPhoneViewShowCustomizedDialer */
-        EPhoneViewShowCustomizedDialer,
-        /** EPhoneViewHideCustomizedDialer */
-        EPhoneViewHideCustomizedDialer,
-        /** EPhoneViewGetCustomizedDialerMenuResourceId */
-        EPhoneViewGetCustomizedDialerMenuResourceId,
-        /** EPhoneViewGetCustomizedDialerCbaResourceId */
-        EPhoneViewGetCustomizedDialerCbaResourceId,
-        /** EPhoneViewCreatePhoneBookServices */
-        EPhoneViewCreatePhoneBookServices,
-        /** EPhoneViewDisableKeyLockWithoutNote */
-        EPhoneViewDisableKeyLockWithoutNote,
-        /** EPhoneViewGetKeyLockStatus */
-        EPhoneViewGetKeyLockStatus,
-        /** EPhoneViewSetNumberEntryObserver */
-        EPhoneViewSetNumberEntryObserver,
-        /** EPhoneViewGetSingleItemFetchType */
-        EPhoneViewGetSingleItemFetchType,
-        /** EPhoneViewRemoveGlobalWaitNote */
-        EPhoneViewRemoveGlobalWaitNote,
-        /** EPhoneViewSetPhoneCustomization */
-        EPhoneViewSetPhoneCustomization,
-        /** EPhoneViewSetViewCustomization */
-        EPhoneViewSetViewCustomization,
-        /** EPhoneViewSetButtonCustomization */
-        EPhoneViewSetButtonCustomization,
-        /** EPhoneViewUpdateContactByString */
-        EPhoneViewUpdateContactByString,
-        /** EPhoneViewAddContactByString */
-        EPhoneViewAddContactByString,
-        /** EPhoneViewIsActiveNoteDissmissableByKeyEvent */
-        EPhoneViewIsActiveNoteDissmissableByKeyEvent,
-        /** EPhoneViewSetNoConnectedCalls */
-        EPhoneViewSetNoConnectedCalls,
-        /** EPhoneViewIsDTMFEditorVisible */
-        EPhoneViewIsDTMFEditorVisible,
-        /** , // Don't remove this, this should always be the last in list. */
-        EPhoneAmountOfCommands
-        };
-    static const TStringTable Table;    
-    };
+	enum TStrings
+		{
+		/** EPhoneViewStartValue */
+		EPhoneViewStartValue,
+		/** EPhoneViewCreateNumberEntry */
+		EPhoneViewCreateNumberEntry,
+		/** EPhoneViewSetNumberEntryContent */
+		EPhoneViewSetNumberEntryContent,
+		/** EPhoneViewSendKeyEventToNumberEntry */
+		EPhoneViewSendKeyEventToNumberEntry,
+		/** EPhoneViewRemoveNumberEntry */
+		EPhoneViewRemoveNumberEntry,
+		/** EPhoneViewSetNumberEntryVisible */
+		EPhoneViewSetNumberEntryVisible,
+		/** EPhoneViewGetNumberFromEntry */
+		EPhoneViewGetNumberFromEntry,
+		/** EPhoneViewGetNumberEntryCount */
+		EPhoneViewGetNumberEntryCount,
+		/** EPhoneViewGetNumberEntryIsUsedStatus */
+		EPhoneViewGetNumberEntryIsUsedStatus,
+		/** EPhoneViewGetNumberEntryIsVisibleStatus */
+		EPhoneViewGetNumberEntryIsVisibleStatus,
+		/** EPhoneViewToggleNumberEntryAlphaNumericMode */
+		EPhoneViewToggleNumberEntryAlphaNumericMode,
+		/** EPhoneViewIsNumberEntryNumericMode */
+		EPhoneViewIsNumberEntryNumericMode,
+		/** EPhoneViewClearNumberEntryContent */
+		EPhoneViewClearNumberEntryContent,
+		/** EPhoneViewCreateCallHeader */
+		EPhoneViewCreateCallHeader,
+		/** EPhoneViewCreateEmergencyCallHeader */
+		EPhoneViewCreateEmergencyCallHeader,
+		/** EPhoneViewUpdateCallHeaderRemoteInfoData */
+		EPhoneViewUpdateCallHeaderRemoteInfoData,
+		/** EPhoneViewUpdateCallHeaderCallDuration */
+		EPhoneViewUpdateCallHeaderCallDuration,
+		/** EPhoneViewRemoveCallHeader */
+		EPhoneViewRemoveCallHeader,
+		/** EPhoneViewMenuBarOpen */
+		EPhoneViewMenuBarOpen,
+		/** EPhoneViewMenuBarClose */
+		EPhoneViewMenuBarClose,
+		/** EPhoneViewDimCbaCommand */
+		EPhoneViewDimCbaCommand,
+		/** EPhoneViewUpdateCba */
+		EPhoneViewUpdateCba,
+		/** EPhoneViewUpdateBubble */
+		EPhoneViewUpdateBubble,
+		/** EPhoneViewMenuPane */
+		EPhoneViewMenuPane,
+		/** EPhoneViewMenuBar */
+		EPhoneViewMenuBar,
+		/** EPhoneViewSetTitlePaneContent */
+		EPhoneViewSetTitlePaneContent,
+		/** EPhoneViewSetNaviPaneContent */
+		EPhoneViewSetNaviPaneContent,
+		/** EPhoneViewSetTitlePanePicture */
+		EPhoneViewSetTitlePanePicture,
+		/** EPhoneViewGetTitlePaneIsVisibleStatus */
+		EPhoneViewGetTitlePaneIsVisibleStatus,
+		/** EPhoneViewActivateAudioPathUIChanges */
+		EPhoneViewActivateAudioPathUIChanges,
+		/** EPhoneViewActivateAudioAvailabilityUIChanges */
+		EPhoneViewActivateAudioAvailabilityUIChanges,
+		/** EPhoneViewActivateMuteUIChanges */
+		EPhoneViewActivateMuteUIChanges,
+		/** EPhoneViewShowNote */
+		EPhoneViewShowNote,
+		/** EPhoneViewShowGlobalNote */
+		EPhoneViewShowGlobalNote,
+		/** EPhoneViewShowProgressNote */
+		EPhoneViewShowProgressNote,
+		/** EPhoneViewRemoveNote */
+		EPhoneViewRemoveNote,
+		/** EPhoneViewRemoveProgressNote */
+		EPhoneViewRemoveProgressNote,
+		/** EPhoneViewRemoveGlobalNote */
+		EPhoneViewRemoveGlobalNote,
+		/** EPhoneViewGetIsNoteVisible */
+		EPhoneViewGetIsNoteVisible,
+		/** EPhoneViewGetIsProgressNoteVisible */
+		EPhoneViewGetIsProgressNoteVisible,
+		/** EPhoneViewShowQuery */
+		EPhoneViewShowQuery,
+		/** EPhoneViewSetListQueryString */
+		EPhoneViewSetListQueryString,
+		/** EPhoneViewRemoveQuery */
+		EPhoneViewRemoveQuery,
+		/** EPhoneViewGetTextQueryContent */
+		EPhoneViewGetTextQueryContent,
+		/** EPhoneViewSetTopApplication */
+		EPhoneViewSetTopApplication,
+		/** EPhoneViewBringAppToForeground */
+		EPhoneViewBringAppToForeground,
+		/** EPhoneViewSendToBackground */
+		EPhoneViewSendToBackground,
+		/** EPhoneViewSetNeedToSendToBackgroundStatus */
+		EPhoneViewSetNeedToSendToBackgroundStatus,
+		/** EPhoneViewGetNeedToSendToBackgroundStatus */
+		EPhoneViewGetNeedToSendToBackgroundStatus,
+		/** EPhoneViewGetTopApplicationIsDisplayedStatus */
+		EPhoneViewGetTopApplicationIsDisplayedStatus,
+		/** EPhoneViewGetForegroundApplication */
+		EPhoneViewGetForegroundApplication,
+		/** EPhoneViewSetBackgroundImageBitmap */
+		EPhoneViewSetBackgroundImageBitmap,
+		/** EPhoneViewGetBackgroundImageBitmap */
+		EPhoneViewGetBackgroundImageBitmap,
+		/** EPhoneViewActivateApp */
+		EPhoneViewActivateApp,
+		/** EPhoneViewActivateAppView */
+		EPhoneViewActivateAppView,
+		/** EPhoneViewActivateAppViewWithCustomMessage */
+		EPhoneViewActivateAppViewWithCustomMessage,
+		/** EPhoneViewActivateAppViewConventional */
+		EPhoneViewActivateAppViewConventional,
+		/** EPhoneViewLaunchApplication */
+		EPhoneViewLaunchApplication,
+		/** EPhoneViewLaunchHelpApplication */
+		EPhoneViewLaunchHelpApplication,
+		/** EPhoneViewOpenMessageEditor */
+		EPhoneViewOpenMessageEditor,
+		/** EPhoneViewExitApplications */
+		EPhoneViewExitApplications,
+		/** EPhoneViewUpdateIncallIndicator */
+		EPhoneViewUpdateIncallIndicator,
+		/** EPhoneViewStartCapturingKey */
+		EPhoneViewStartCapturingKey,
+		/** EPhoneViewStopCapturingKey */
+		EPhoneViewStopCapturingKey,
+		/** EPhoneViewSetGlobalNotifiersDisabled */
+		EPhoneViewSetGlobalNotifiersDisabled,
+		/** EPhoneViewGetHoldFlag */
+		EPhoneViewGetHoldFlag,
+		/** EPhoneViewSetHoldFlag */
+		EPhoneViewSetHoldFlag,
+		/** EPhoneViewSetSoftRejectFlag */
+		EPhoneViewSetSoftRejectFlag,
+		/** EPhoneViewGetSoftRejectFlag */
+		EPhoneViewGetSoftRejectFlag,
+		/** EPhoneViewSetServiceCodeFlag */
+		EPhoneViewSetServiceCodeFlag,
+		/** EPhoneViewUpdateContact */
+		EPhoneViewUpdateContact,
+		/** EPhoneViewAddContact */
+		EPhoneViewAddContact,
+		/** EPhoneViewOpenSingleItemFetchDialog */
+		EPhoneViewOpenSingleItemFetchDialog,
+		/** EPhoneViewRemovePhoneDialogs */
+		EPhoneViewRemovePhoneDialogs,
+		/** EPhoneViewCreateConference */
+		EPhoneViewCreateConference,
+		/** EPhoneViewAddToConference */
+		EPhoneViewAddToConference,
+		/** EPhoneViewRemoveFromConference */
+		EPhoneViewRemoveFromConference,
+		/** EPhoneViewPrivateFromConference */
+		EPhoneViewPrivateFromConference,
+		/** EPhoneViewSelectedConfMember */
+		EPhoneViewSelectedConfMember,
+		/** EPhoneViewGetConferenceListVisibleFlag */
+		EPhoneViewGetConferenceListVisibleFlag,
+		/** EPhoneViewOpenConferenceList */
+		EPhoneViewOpenConferenceList,
+		/** EPhoneViewGetCallState */
+		EPhoneViewGetCallState,
+		/** EPhoneViewGetCallIdByState */
+		EPhoneViewGetCallIdByState,
+		/** EPhoneViewMoveHighLightInList */
+		EPhoneViewMoveHighLightInList,
+		/** EPhoneViewGetCountOfActiveCalls */
+		EPhoneViewGetCountOfActiveCalls,
+		/** EPhoneViewSetNaviPaneAudioVolume */
+		EPhoneViewSetNaviPaneAudioVolume,
+		/** EPhoneViewShowNaviPaneAudioVolume */
+		EPhoneViewShowNaviPaneAudioVolume,
+		/** EPhoneViewHideNaviPaneAudioVolume */
+		EPhoneViewHideNaviPaneAudioVolume,
+		/** EPhoneViewGetIsConference */
+		EPhoneViewGetIsConference,
+		/** EPhoneViewGetCallExistsInConference */
+		EPhoneViewGetCallExistsInConference,
+		/** EPhoneViewRemoveAllCallHeaders */
+		EPhoneViewRemoveAllCallHeaders,
+		/** EPhoneViewPlayRingTone */
+		EPhoneViewPlayRingTone,
+		/** EPhoneViewMuteRingTone */
+		EPhoneViewMuteRingTone,
+		/** EPhoneViewStopRingTone */
+		EPhoneViewStopRingTone,
+		/** EPhoneViewMuteRingToneOnAnswer */
+		EPhoneViewMuteRingToneOnAnswer,
+		/** EPhoneViewCipheringInfoChange */
+		EPhoneViewCipheringInfoChange,
+		/** EPhoneViewUpdateMaxConfMemberFlag */
+		EPhoneViewUpdateMaxConfMemberFlag,
+		/** EPhoneViewCloseFSW */
+		EPhoneViewCloseFSW,
+		/** EPhoneViewLaunchRfsDeep */
+		EPhoneViewLaunchRfsDeep,
+		/** EPhoneViewLaunchRfsNormal */
+		EPhoneViewLaunchRfsNormal,
+		/** EPhoneViewUpdateView */
+		EPhoneViewUpdateView,
+		/** EPhoneViewOpenSoftRejectEditor */
+		EPhoneViewOpenSoftRejectEditor,
+		/** EPhoneViewSendMessage */
+		EPhoneViewSendMessage,
+		/** EPhoneViewSetBlockingDialogStatus */
+		EPhoneViewSetBlockingDialogStatus,
+		/** EPhoneViewSetPhoneNumberAvailableInPhoneEngine */
+		EPhoneViewSetPhoneNumberAvailableInPhoneEngine,
+		/** EPhoneViewSetSecurityMode */
+		EPhoneViewSetSecurityMode,
+		/** EPhoneViewGetSecurityModeStatus */
+		EPhoneViewGetSecurityModeStatus,
+		/** EPhoneViewSetStatusPaneVisible */
+		EPhoneViewSetStatusPaneVisible,
+		/** EPhoneViewEnableKeyLock */
+		EPhoneViewEnableKeyLock,
+		/** EPhoneViewEnableKeyLockWithoutNote */
+		EPhoneViewEnableKeyLockWithoutNote,
+		/** EPhoneViewLaunchFaxModem */
+		EPhoneViewLaunchFaxModem,
+		/** EPhoneViewUpdateFSW */
+		EPhoneViewUpdateFSW,
+		/** EPhoneViewIsQuery */
+		EPhoneViewIsQuery,
+		/** EPhoneViewBringIdleToForeground */
+		EPhoneViewBringIdleToForeground,
+		/** EPhoneViewSetIdleTopApplication */
+		EPhoneViewSetIdleTopApplication,
+		/** EPhoneViewBeginUpdate */
+		EPhoneViewBeginUpdate,
+		/** EPhoneViewEndUpdate */
+		EPhoneViewEndUpdate,
+		/** EPhoneViewSetConfrenceOptionsFlag */
+		EPhoneViewSetConfrenceOptionsFlag,
+		/** EPhoneViewRemoveConferenceBubble */
+		EPhoneViewRemoveConferenceBubble,
+		/** EPhoneViewGetSoftRejectWindowGroupId */
+		EPhoneViewGetSoftRejectWindowGroupId,
+		/** EPhoneViewSetTouchPaneButtons */
+		EPhoneViewSetTouchPaneButtons,
+		/** EPhoneViewSetTouchPaneVisible */
+		EPhoneViewSetTouchPaneVisible,
+		/** EPhoneViewEnableTouchButton */
+		EPhoneViewEnableTouchButton,
+		/** EPhoneViewDisableTouchButton */
+		EPhoneViewDisableTouchButton,
+		/** EPhoneResetTouchButtons */
+		EPhoneResetTouchButtons,
+		/** EPhoneViewGetIsConferenceInSelectionMode */
+		EPhoneViewGetIsConferenceInSelectionMode,
+		/** EPhoneViewIsStraightCallToVideoMailBox */
+		EPhoneViewIsStraightCallToVideoMailBox,
+		/** EPhoneViewSetDtmfDialerViewVisible */
+		EPhoneViewSetDtmfDialerViewVisible,
+		/** EPhoneViewSetRetrictedDialer */
+		EPhoneViewSetRetrictedDialer,
+		/** EPhoneViewIsConferenceInExpandedMode */
+		EPhoneViewIsConferenceInExpandedMode,
+		/** EPhoneViewIsMenuBarVisible */
+		EPhoneViewIsMenuBarVisible,
+		/** EPhoneViewGetBlockingDialogStatus */
+		EPhoneViewGetBlockingDialogStatus,
+		/** EPhoneViewYesSingleItemFetch */
+		EPhoneViewYesSingleItemFetch,
+		/** EPhoneViewNoSingleItemFetch */
+		EPhoneViewNoSingleItemFetch,
+		/** EPhoneViewGetLocalizedNumberFromEntry */
+		EPhoneViewGetLocalizedNumberFromEntry,
+		/** EPhoneViewIsNoteActive */
+		EPhoneViewIsNoteActive,
+		/** EPhoneViewOpenNumberEntry */
+		EPhoneViewOpenNumberEntry,
+		/** EPhoneViewOpenCallHandling */
+		EPhoneViewOpenCallHandling,
+		/** EPhoneViewGetConferenceAndSingleFlag */
+		EPhoneViewGetConferenceAndSingleFlag,
+		/** EPhoneViewSetConferenceAndSingleFlag */
+		EPhoneViewSetConferenceAndSingleFlag,
+		/** EPhoneViewSetVideoCallFlag */
+		EPhoneViewSetVideoCallFlag,
+		/** EPhoneViewSetDtmfOptionsFlag */
+		EPhoneViewSetDtmfOptionsFlag,
+		/** EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery */
+		EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery,
+		/** EPhoneViewGetAudioVolumeLevel */
+		EPhoneViewGetAudioVolumeLevel,
+		/** EPhoneViewIsIdleTopApp */
+		EPhoneViewIsIdleTopApp,
+		/** EPhoneViewUpdateToolbar */
+		EPhoneViewUpdateToolbar,
+		/** EPhoneViewSetControlAndVisibility */
+		EPhoneViewSetControlAndVisibility,
+		/** EPhoneViewAllowWaitingCallHeader */
+		EPhoneViewAllowWaitingCallHeader,
+		/** EPhoneViewBeginTransEffect */
+		EPhoneViewBeginTransEffect,
+		/** EPhoneViewEndTransEffect */
+		EPhoneViewEndTransEffect,
+		/** EPhoneViewSetDialerControlVisible */
+		EPhoneViewSetDialerControlVisible,
+		/** EPhoneViewCloseSingleItemFetchDialog */
+		EPhoneViewCloseSingleItemFetchDialog,
+		/** EPhoneViewGetActivatePreviousApp */
+		EPhoneViewGetActivatePreviousApp,
+		/** EPhoneViewActivatePreviousApp */
+		EPhoneViewActivatePreviousApp,
+		/** EPhoneViewSetPointerCapture */
+		EPhoneViewSetPointerCapture,
+		/** EPhoneViewSetSendKeyDialerActivationFlag */
+		EPhoneViewSetSendKeyDialerActivationFlag,
+		/** EPhoneViewPrepareIcons */
+		EPhoneViewPrepareIcons,
+		/** EPhoneViewKeypadAudioEnabled */
+		EPhoneViewKeypadAudioEnabled,
+		/** EPhoneViewKeypadAudioDisabled */
+		EPhoneViewKeypadAudioDisabled,
+		/** EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel */
+		EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel,
+		/** EPhoneViewRemoveDtmfNote */
+		EPhoneViewRemoveDtmfNote,
+		/** EPhoneViewUpdatePhoneIconToFSW */
+		EPhoneViewUpdatePhoneIconToFSW,
+		/** EPhoneViewSetEikonNotifiersDisabled */
+		EPhoneViewSetEikonNotifiersDisabled,
+		/** EPhoneViewCancelAllNotications */
+		EPhoneViewCancelAllNotications,
+		/** EPhoneViewSetVideoCallDTMFVisibilityFlag */
+		EPhoneViewSetVideoCallDTMFVisibilityFlag,
+		/** EPhoneViewIsKeyLockEnabled */
+		EPhoneViewIsKeyLockEnabled,
+		/** EPhoneViewDisableKeyLock */
+		EPhoneViewDisableKeyLock,
+		/** EPhoneViewLoadPlugins */
+		EPhoneViewLoadPlugins,
+		/** EPhoneViewOpenVirtualKeyBoard */
+		EPhoneViewOpenVirtualKeyBoard,
+		/** EPhoneViewUpdateNoteSoftkeys */
+		EPhoneViewUpdateNoteSoftkeys,
+		/** EPhoneViewSendAiwCommand */
+		EPhoneViewSendAiwCommand,
+		/** EPhoneViewShowCustomizedDialer */
+		EPhoneViewShowCustomizedDialer,
+		/** EPhoneViewHideCustomizedDialer */
+		EPhoneViewHideCustomizedDialer,
+		/** EPhoneViewGetCustomizedDialerMenuResourceId */
+		EPhoneViewGetCustomizedDialerMenuResourceId,
+		/** EPhoneViewGetCustomizedDialerCbaResourceId */
+		EPhoneViewGetCustomizedDialerCbaResourceId,
+		/** EPhoneViewCipheringInfoChangePlayTone */
+		EPhoneViewCipheringInfoChangePlayTone,
+		/** EPhoneViewCreatePhoneBookServices */
+		EPhoneViewCreatePhoneBookServices,
+		/** EPhoneViewDisableKeyLockWithoutNote */
+		EPhoneViewDisableKeyLockWithoutNote,
+		/** EPhoneViewGetKeyLockStatus */
+		EPhoneViewGetKeyLockStatus,
+		/** EPhoneViewSetNumberEntryObserver */
+		EPhoneViewSetNumberEntryObserver,
+		/** EPhoneViewGetSingleItemFetchType */
+		EPhoneViewGetSingleItemFetchType,
+		/** EPhoneViewRemoveGlobalWaitNote */
+		EPhoneViewRemoveGlobalWaitNote,
+		/** EPhoneViewSetPhoneCustomization */
+		EPhoneViewSetPhoneCustomization,
+		/** EPhoneViewSetViewCustomization */
+		EPhoneViewSetViewCustomization,
+		/** EPhoneViewSetButtonCustomization */
+		EPhoneViewSetButtonCustomization,
+		/** EPhoneViewUpdateContactByString */
+		EPhoneViewUpdateContactByString,
+		/** EPhoneViewAddContactByString */
+		EPhoneViewAddContactByString,
+		/** EPhoneViewIsActiveNoteDissmissableByKeyEvent */
+		EPhoneViewIsActiveNoteDissmissableByKeyEvent,
+		/** EPhoneViewUpdateContextMenu */
+		EPhoneViewUpdateContextMenu,
+		/** EPhoneViewSetNoConnectedCalls */
+		EPhoneViewSetNoConnectedCalls,
+		/** EPhoneViewIsDTMFEditorVisible */
+		EPhoneViewIsDTMFEditorVisible,
+		/** EPhoneViewSetToolbarDimming */
+		EPhoneViewSetToolbarDimming,
+		/** EPhoneViewEnableToolbarButton */
+		EPhoneViewEnableToolbarButton,
+		/** EPhoneViewHideToolbar */
+		EPhoneViewHideToolbar,
+		/** EPhoneViewShowToolbar */
+		EPhoneViewShowToolbar,
+		/** EPhoneViewGetExpandedBubbleCallId */
+		EPhoneViewGetExpandedBubbleCallId,
+		/** EPhoneViewOpenDialer */
+		EPhoneViewOpenDialer,
+		/** EPhoneSetConferenceExpanded */
+		EPhoneSetConferenceExpanded,
+		/** EPhoneAppShutDown */
+		EPhoneAppShutDown,
+		/** EPhoneViewBackButtonActive */
+		EPhoneViewBackButtonActive,
+		/** EPhoneViewHsToForegroundAfterCall */
+		EPhoneViewHsToForegroundAfterCall,
+		/** EPhoneViewOpenContacts */
+		EPhoneViewOpenContacts,
+		/** EPhoneViewSetIhfFlag */
+		EPhoneViewSetIhfFlag,
+		/** EPhoneViewSetMuteFlag */
+		EPhoneViewSetMuteFlag,
+		/** EPhoneViewLaunchLogs */
+		EPhoneViewLaunchLogs,
+		/** EPhoneViewSetBlueToothFlag */
+		EPhoneViewSetBlueToothFlag,
+		/** EPhoneViewSetBluetoothAvailableFlag */
+		EPhoneViewSetBluetoothAvailableFlag,
+		/** , // Don't remove this, this should always be the last in list. */
+		EPhoneAmountOfCommands
+		};
+	static const TStringTable Table;	
+	};
 
 #endif // STRINGTABLE_PhoneLoggerviewCommands
 
--- a/phoneapp/phoneuiutils/inc/phonerssbase.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/phonerssbase.h	Tue Jul 06 14:15:47 2010 +0300
@@ -340,6 +340,7 @@
     EPhoneNoteNoService,
     EPhoneNoteCallInfoCauseValue16,
     EPhoneNoteCallInfoCauseValue18,
+    EPhoneNoteCallInfoCauseValue21,
     EPhoneNoteCallInfoCauseValue22,
     EPhoneNoteCallInfoCauseValue34,
     EPhoneNoteCallInfoCauseValue38,
--- a/phoneapp/phoneuiutils/inc/phonestatestrings.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/phonestatestrings.h	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,12 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
-*     Macro definition file for logging.
+* Description:  Macro definition file for logging.
 *
 */
 
-// Autogenerated from phonestatestrings.st by the stringtable tool - Do not edit
+// Autogenerated from .\phonestatestrings.st by the stringtable tool - Do not edit
 
 #ifndef STRINGTABLE_PhoneStateStrings
 #define STRINGTABLE_PhoneStateStrings
@@ -27,27 +26,27 @@
 
 /** A String table */
 class PhoneStateStrings 
-    {
+	{
 public:
-    enum TStrings
-        {
-        /** EPhoneStateNull */
-        EPhoneStateNull,
-        /** EPhoneStateStartup */
-        EPhoneStateStartup,
-        /** EPhoneStateIdle */
-        EPhoneStateIdle,
-        /** EPhoneStateCallSetup */
-        EPhoneStateCallSetup,
-        /** EPhoneStateSingle */
-        EPhoneStateSingle,
-        /** EPhoneStateIncoming */
-        EPhoneStateIncoming,
-        /** EPhoneStateEmergency */
-        EPhoneStateEmergency
-        };
-    static const TStringTable Table;    
-    };
+	enum TStrings
+		{
+		/** EPhoneStateNull */
+		EPhoneStateNull,
+		/** EPhoneStateStartup */
+		EPhoneStateStartup,
+		/** EPhoneStateIdle */
+		EPhoneStateIdle,
+		/** EPhoneStateCallSetup */
+		EPhoneStateCallSetup,
+		/** EPhoneStateSingle */
+		EPhoneStateSingle,
+		/** EPhoneStateIncoming */
+		EPhoneStateIncoming,
+		/** EPhoneStateEmergency */
+		EPhoneStateEmergency
+		};
+	static const TStringTable Table;	
+	};
 
 #endif // STRINGTABLE_PhoneStateStrings
 
--- a/phoneapp/phoneuiutils/inc/phonestatestringsgsm.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/phonestatestringsgsm.h	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,12 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
-*     Macro definition file for logging.
+* Description:  Macro definition file for logging.
 *
 */
 
-// Autogenerated from phonestatestringsgsm.st by the stringtable tool - Do not edit
+// Autogenerated from .\phonestatestringsgsm.st by the stringtable tool - Do not edit
 
 #ifndef STRINGTABLE_PhoneStateStringsGSM
 #define STRINGTABLE_PhoneStateStringsGSM
@@ -27,44 +26,44 @@
 
 /** A String table */
 class PhoneStateStringsGSM 
-    {
+	{
 public:
-    enum TStrings
-        {
-        // GSM States - start at KPhoneStateProtocolFirst
-        /** EPhoneStateAlerting */
-        EPhoneStateAlerting,
-        /** EPhoneStateAlertingInSingle */
-        EPhoneStateAlertingInSingle,
-        /** EPhoneStateWaitingInSingle */
-        EPhoneStateWaitingInSingle,
-        /** EPhoneStateTwoSingles */
-        EPhoneStateTwoSingles,
-        /** EPhoneStateCallSetupInSingle */
-        EPhoneStateCallSetupInSingle,
-        /** EPhoneStateConference */
-        EPhoneStateConference,
-        /** EPhoneStateConferenceAndCallSetup */
-        EPhoneStateConferenceAndCallSetup,
-        /** EPhoneStateConferenceAndSingle */
-        EPhoneStateConferenceAndSingle,
-        /** EPhoneStateConferenceAndWaiting */
-        EPhoneStateConferenceAndWaiting,
-        /** EPhoneStateSingleAndCallSetupAndWaiting */
-        EPhoneStateSingleAndCallSetupAndWaiting,
-        /** EPhoneStateCallSetupAndWaiting */
-        EPhoneStateCallSetupAndWaiting,
-        /** EPhoneStateTwoSinglesAndWaiting */
-        EPhoneStateTwoSinglesAndWaiting,
-        /** EPhoneStateConferenceAndSingleAndWaiting */
-        EPhoneStateConferenceAndSingleAndWaiting,
-        /** EPhoneStateConferenceAndWaitingAndCallSetup */
-        EPhoneStateConferenceAndWaitingAndCallSetup,
-        /** EPhoneStateLastGSMState */
-        EPhoneStateLastGSMState
-        };
-    static const TStringTable Table;    
-    };
+	enum TStrings
+		{
+		// GSM States - start at KPhoneStateProtocolFirst
+		/** EPhoneStateAlerting */
+		EPhoneStateAlerting,
+		/** EPhoneStateAlertingInSingle */
+		EPhoneStateAlertingInSingle,
+		/** EPhoneStateWaitingInSingle */
+		EPhoneStateWaitingInSingle,
+		/** EPhoneStateTwoSingles */
+		EPhoneStateTwoSingles,
+		/** EPhoneStateCallSetupInSingle */
+		EPhoneStateCallSetupInSingle,
+		/** EPhoneStateConference */
+		EPhoneStateConference,
+		/** EPhoneStateConferenceAndCallSetup */
+		EPhoneStateConferenceAndCallSetup,
+		/** EPhoneStateConferenceAndSingle */
+		EPhoneStateConferenceAndSingle,
+		/** EPhoneStateConferenceAndWaiting */
+		EPhoneStateConferenceAndWaiting,
+		/** EPhoneStateSingleAndCallSetupAndWaiting */
+		EPhoneStateSingleAndCallSetupAndWaiting,
+		/** EPhoneStateCallSetupAndWaiting */
+		EPhoneStateCallSetupAndWaiting,
+		/** EPhoneStateTwoSinglesAndWaiting */
+		EPhoneStateTwoSinglesAndWaiting,
+		/** EPhoneStateConferenceAndSingleAndWaiting */
+		EPhoneStateConferenceAndSingleAndWaiting,
+		/** EPhoneStateConferenceAndWaitingAndCallSetup */
+		EPhoneStateConferenceAndWaitingAndCallSetup,
+		/** EPhoneStateLastGSMState */
+		EPhoneStateLastGSMState
+		};
+	static const TStringTable Table;	
+	};
 
 #endif // STRINGTABLE_PhoneStateStringsGSM
 
--- a/phoneapp/phoneuiutils/inc/tphonecmdparamglobalnote.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/tphonecmdparamglobalnote.h	Tue Jul 06 14:15:47 2010 +0300
@@ -96,6 +96,12 @@
         IMPORT_C void SetNotificationDialog( TBool aNotificationDialog );
         
         /**
+        * Sets cause code.
+        * @param aCauseCode Cause code.
+        */
+        IMPORT_C void SetCauseCode( TInt aCauseCode );
+        
+        /**
         * Returns the global note type
         * @return Returns the type
         */
@@ -142,6 +148,12 @@
          * @return Notification dialog flag.
          */
         IMPORT_C TBool NotificationDialog() const;
+        
+        /**
+        * Returns cause code.
+        * @return Cause code.
+        */
+        IMPORT_C TInt CauseCode() const;
     
     private:    
         
@@ -185,6 +197,10 @@
         */
         TBool iNotificationDialog;
         
+        /**
+        * Cause code. 
+        */
+        TInt iCauseCode; 
     };
 
 #endif // __TPHONECMDPARAMGLOBALNOTE_H
--- a/phoneapp/phoneuiutils/src/cphonepubsubproxy.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/cphonepubsubproxy.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -170,7 +170,7 @@
     {
     __ASSERT_DEBUG( aObserver, Panic( EPhoneUtilsParameterNotInitialized ) );
     __LOGMETHODSTARTEND(EPhoneUIUtils, "CPhonePubSubProxy::NotifyChangeL() ");
-    
+
     // make sure this a new item in iObserverArray
     TBool requestIssued = EFalse;
     TBool sameRequestIssuedByObserver = EFalse;
@@ -291,7 +291,7 @@
     {
     TInt count = iObserverArray->Count();
 
-    // Remove the observer and its subscriptions
+    // Remove the observer
     TBool observerRemoved = EFalse;
     for( TInt i = count - 1; i >= 0 && !observerRemoved; i-- ) 
         {
@@ -301,22 +301,6 @@
             // Remove observer 
             observerRemoved = ETrue;
             iObserverArray->Delete( i );
-
-            // Remove this observers' subscriptions
-            TInt pubSubCount = iPublishSubscriberArray->Count();
-     
-            for ( TInt j = 0; j < pubSubCount; j++ )
-                {
-                CPhonePublishSubscriberAO* publishSubscriber = 
-                    iPublishSubscriberArray->At( j );
-
-                if ( publishSubscriber->Category() == observerTag.iCategory && 
-                    publishSubscriber->Key() == observerTag.iKey )
-                    {
-                    iPublishSubscriberArray->Delete( i );
-                    delete publishSubscriber;
-                    }
-                }
             }
         }
     }
--- a/phoneapp/phoneuiutils/src/cphoneresourceresolverbase.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/cphoneresourceresolverbase.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1400,6 +1400,10 @@
         case EPhoneNoteCalledNumberHasBarredIncomingCalls:
             retVal = R_NOTE_CALLED_NUMBER_HAS_BARRED_INCOMING_CALLS;
             break;
+            
+        case EPhoneNoteCallInfoCauseValue21:
+            retVal = R_CALL_INFO_CAUSE_VALUE21;
+            break;
 
         case EPhoneNoteCallInfoCauseValue22:
             retVal = R_CALL_INFO_CAUSE_VALUE22;
--- a/phoneapp/phoneuiutils/src/generate.bat	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/generate.bat	Tue Jul 06 14:15:47 2010 +0300
@@ -14,11 +14,11 @@
 rem Description: Generate string tables and move headers.
 rem
 
-perl %EPOCROOT%epoc32\tools\stringtable.pl phoneloggerviewcommands.st
-perl %EPOCROOT%epoc32\tools\stringtable.pl phonestatestrings.st
-perl %EPOCROOT%epoc32\tools\stringtable.pl phonestatestringsgsm.st
+perl %EPOCROOT%epoc32\tools\stringtable.pl .\phoneloggerviewcommands.st
+perl %EPOCROOT%epoc32\tools\stringtable.pl .\phonestatestrings.st
+perl %EPOCROOT%epoc32\tools\stringtable.pl .\phonestatestringsgsm.st
 
-perl ..\..\phoneui\internal\tools\add_copyright.pl
+perl ..\internal\tools\add_copyright.pl
 
 move /Y phoneloggerviewcommands.h  ..\inc\phoneloggerviewcommands.h
 move /Y phonestatestrings.h ..\inc\phonestatestrings.h 
--- a/phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,12 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
-*     Macro definition file for logging.
+* Description:  Macro definition file for logging.
 *
 */
 
-// Autogenerated from phoneloggerviewcommands.st by the stringtable tool - Do not edit
+// Autogenerated from .\phoneloggerviewcommands.st by the stringtable tool - Do not edit
 #include <e32std.h>
 #include <stringpool.h>
 #include <stringtablesupport.h>
@@ -68,7 +67,7 @@
 _STLIT8(K41, "EPhoneViewShowQuery");
 _STLIT8(K42, "EPhoneViewSetListQueryString");
 _STLIT8(K43, "EPhoneViewRemoveQuery");
-_STLIT8(K44, "EPhoneViewGetTextQueryContents");
+_STLIT8(K44, "EPhoneViewGetTextQueryContent");
 _STLIT8(K45, "EPhoneViewSetTopApplication");
 _STLIT8(K46, "EPhoneViewBringAppToForeground");
 _STLIT8(K47, "EPhoneViewSendToBackground");
@@ -90,326 +89,362 @@
 _STLIT8(K63, "EPhoneViewStartCapturingKey");
 _STLIT8(K64, "EPhoneViewStopCapturingKey");
 _STLIT8(K65, "EPhoneViewSetGlobalNotifiersDisabled");
-_STLIT8(K69, "EPhoneViewGetHoldFlag");
-_STLIT8(K70, "EPhoneViewSetHoldFlag");
-_STLIT8(K71, "EPhoneViewSetSoftRejectFlag");
-_STLIT8(K72, "EPhoneViewGetSoftRejectFlag");
-_STLIT8(K73, "EPhoneViewSetServiceCodeFlag");
-_STLIT8(K74, "EPhoneViewUpdateContact");
-_STLIT8(K75, "EPhoneViewAddContact");
-_STLIT8(K76, "EPhoneViewOpenSingleItemFetchDialog");
-_STLIT8(K77, "EPhoneViewRemovePhoneDialogs");
-_STLIT8(K78, "EPhoneViewCreateConference");
-_STLIT8(K79, "EPhoneViewAddToConference");
-_STLIT8(K80, "EPhoneViewRemoveFromConference");
-_STLIT8(K81, "EPhoneViewPrivateFromConference");
-_STLIT8(K82, "EPhoneViewSelectedConfMember");
-_STLIT8(K83, "EPhoneViewOpenConferenceList");
-_STLIT8(K84, "EPhoneViewGetConferenceListVisibleFlag");
-_STLIT8(K85, "EPhoneViewGetCallState");
-_STLIT8(K86, "EPhoneViewGetCallIdByState");
-_STLIT8(K87, "EPhoneViewMoveHighLightInList");
-_STLIT8(K88, "EPhoneViewGetCountOfActiveCalls");
-_STLIT8(K89, "EPhoneViewSetNaviPaneAudioVolume");
-_STLIT8(K90, "EPhoneViewShowNaviPaneAudioVolume");
-_STLIT8(K91, "EPhoneViewHideNaviPaneAudioVolume");
-_STLIT8(K92, "EPhoneViewGetIsConference");
-_STLIT8(K93, "EPhoneViewGetCallExistsInConference");
-_STLIT8(K94, "EPhoneViewRemoveAllCallHeaders");
-_STLIT8(K95, "EPhoneViewPlayRingTone");
-_STLIT8(K96, "EPhoneViewMuteRingTone");
-_STLIT8(K97, "EPhoneViewStopRingTone");
-_STLIT8(K98, "EPhoneViewMuteRingToneOnAnswer");
-_STLIT8(K99, "EPhoneViewCipheringInfoChange");
-_STLIT8(K100, "EPhoneViewUpdateMaxConfMemberFlag");
-_STLIT8(K101, "EPhoneViewCloseFSW");
-_STLIT8(K102, "EPhoneViewLaunchRfsDeep");
-_STLIT8(K103, "EPhoneViewLaunchRfsNormal");
-_STLIT8(K104, "EPhoneViewUpdateView");
-_STLIT8(K105, "EPhoneViewOpenSoftRejectEditor");
-_STLIT8(K106, "EPhoneViewSendMessage");
-_STLIT8(K107, "EPhoneViewSetBlockingDialogStatus");
-_STLIT8(K108, "EPhoneViewSetPhoneNumberAvailableInPhoneEngine");
-_STLIT8(K109, "EPhoneViewSetSecurityMode");
-_STLIT8(K110, "EPhoneViewGetSecurityModeStatus");
-_STLIT8(K111, "EPhoneViewSetStatusPaneVisible");
-_STLIT8(K112, "EPhoneViewEnableKeyLock");
-_STLIT8(K113, "EPhoneViewEnableKeyLockWithoutNote");
-_STLIT8(K114, "EPhoneViewLaunchFaxModem");
-_STLIT8(K115, "EPhoneViewUpdateFSW");
-_STLIT8(K116, "EPhoneViewIsQuery");
-_STLIT8(K117, "EPhoneViewBringIdleToForeground");
-_STLIT8(K118, "EPhoneViewSetIdleTopApplication");
-_STLIT8(K119, "EPhoneViewBeginUpdate");
-_STLIT8(K120, "EPhoneViewEndUpdate");
-_STLIT8(K121, "EPhoneViewSetConfrenceOptionsFlag");
-_STLIT8(K122, "EPhoneViewRemoveConferenceBubble");
-_STLIT8(K123, "EPhoneViewGetSoftRejectWindowGroupId");
-_STLIT8(K124, "EPhoneViewSetTouchPaneButtons");
-_STLIT8(K125, "EPhoneViewSetTouchPaneVisible");
-_STLIT8(K126, "EPhoneViewEnableTouchButton");
-_STLIT8(K127, "EPhoneViewDisableTouchButton");
-_STLIT8(K128, "EPhoneResetTouchButtons");
-_STLIT8(K129, "EPhoneViewGetIsConferenceInSelectionMode");
-_STLIT8(K130, "EPhoneViewIsStraightCallToVideoMailBox");
-_STLIT8(K131, "EPhoneViewSetDtmfDialerViewVisible");
-_STLIT8(K132, "EPhoneViewSetRetrictedDialer");
-_STLIT8(K133, "EPhoneViewIsConferenceInExpandedMode");
-_STLIT8(K134, "EPhoneViewIsMenuBarVisible");
-_STLIT8(K135, "EPhoneViewGetBlockingDialogStatus");
-_STLIT8(K136, "EPhoneViewYesSingleItemFetch");
-_STLIT8(K137, "EPhoneViewNoSingleItemFetch");
-_STLIT8(K138, "EPhoneViewGetLocalizedNumberFromEntry");
-_STLIT8(K139, "EPhoneViewIsNoteActive");
-_STLIT8(K140, "EPhoneViewOpenNumberEntry");
-_STLIT8(K141, "EPhoneViewOpenCallHandling");
-_STLIT8(K142, "EPhoneViewGetConferenceAndSingleFlag");
-_STLIT8(K143, "EPhoneViewSetConferenceAndSingleFlag");
-_STLIT8(K144, "EPhoneViewSetVideoCallFlag");
-_STLIT8(K145, "EPhoneViewSetDtmfOptionsFlag");
-_STLIT8(K146, "EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery");
-_STLIT8(K147, "EPhoneViewGetAudioVolumeLevel");
-_STLIT8(K148, "EPhoneViewIsIdleTopApp");
-_STLIT8(K149, "EPhoneViewUpdateToolbar");
-_STLIT8(K150, "EPhoneViewSetControlAndVisibility");
-_STLIT8(K151, "EPhoneViewAllowWaitingCallHeader");
-_STLIT8(K152, "EPhoneViewBeginTransEffect");
-_STLIT8(K153, "EPhoneViewEndTransEffect");
-_STLIT8(K154, "EPhoneViewSetDialerControlVisible");
-_STLIT8(K155, "EPhoneViewCloseSingleItemFetchDialog");
-_STLIT8(K156, "EPhoneViewGetActivatePreviousApp");
-_STLIT8(K157, "EPhoneViewActivatePreviousApp");
-_STLIT8(K158, "EPhoneViewSetPointerCapture");
-_STLIT8(K159, "EPhoneViewSetSendKeyDialerActivationFlag");
-_STLIT8(K160, "EPhoneViewPrepareIcons");
-_STLIT8(K161, "EPhoneViewKeypadAudioEnabled");
-_STLIT8(K162, "EPhoneViewKeypadAudioDisabled");
-_STLIT8(K163, "EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel");
-_STLIT8(K164, "EPhoneViewRemoveDtmfNote");
-_STLIT8(K165, "EPhoneViewUpdatePhoneIconToFSW");
-_STLIT8(K166, "EPhoneViewSetEikonNotifiersDisabled");
-_STLIT8(K167, "EPhoneViewCancelAllNotications");
-_STLIT8(K168, "EPhoneViewSetVideoCallDTMFVisibilityFlag");
-_STLIT8(K169, "EPhoneViewIsKeyLockEnabled");
-_STLIT8(K170, "EPhoneViewDisableKeyLock");
-_STLIT8(K171, "EPhoneViewLoadPlugins");
-_STLIT8(K172, "PhoneViewServiceSelection");
-_STLIT8(K173, "EPhoneViewOpenVirtualKeyBoard");
-_STLIT8(K174, "EPhoneViewUpdateNoteSoftkeys");
-_STLIT8(K175, "EPhoneViewShowCustomizedDialer");
-_STLIT8(K176, "EPhoneViewHideCustomizedDialer");
-_STLIT8(K177, "EPhoneViewGetCustomizedDialerMenuResourceId");
-_STLIT8(K178, "EPhoneViewGetCustomizedDialerCbaResourceId");
-_STLIT8(K179, "EPhoneViewCreatePhoneBookServices");
-_STLIT8(K180, "EPhoneViewDisableKeyLockWithoutNote");
-_STLIT8(K181, "EPhoneViewGetKeyLockStatus");
-_STLIT8(K182, "EPhoneViewSetNumberEntryObserver");
-_STLIT8(K183, "EPhoneViewGetSingleItemFetchType");
-_STLIT8(K184, "EPhoneViewRemoveGlobalWaitNote");
-_STLIT8(K185, "EPhoneViewSetPhoneCustomization");
-_STLIT8(K186, "EPhoneViewSetViewCustomization");
-_STLIT8(K187, "EPhoneViewSetButtonCustomization");
-_STLIT8(K188, "EPhoneViewUpdateContactByString");
-_STLIT8(K189, "EPhoneViewAddContactByString");
-_STLIT8(K190, "EPhoneViewIsActiveNoteDissmissableByKeyEvent");
-_STLIT8(K191, "EPhoneViewSetNoConnectedCalls");
-_STLIT8(K192, "EPhoneViewIsDTMFEditorVisible");
-_STLIT8(K193, ", // Don't remove this, this should always be the last in list.");
+_STLIT8(K66, "EPhoneViewGetHoldFlag");
+_STLIT8(K67, "EPhoneViewSetHoldFlag");
+_STLIT8(K68, "EPhoneViewSetSoftRejectFlag");
+_STLIT8(K69, "EPhoneViewGetSoftRejectFlag");
+_STLIT8(K70, "EPhoneViewSetServiceCodeFlag");
+_STLIT8(K71, "EPhoneViewUpdateContact");
+_STLIT8(K72, "EPhoneViewAddContact");
+_STLIT8(K73, "EPhoneViewOpenSingleItemFetchDialog");
+_STLIT8(K74, "EPhoneViewRemovePhoneDialogs");
+_STLIT8(K75, "EPhoneViewCreateConference");
+_STLIT8(K76, "EPhoneViewAddToConference");
+_STLIT8(K77, "EPhoneViewRemoveFromConference");
+_STLIT8(K78, "EPhoneViewPrivateFromConference");
+_STLIT8(K79, "EPhoneViewSelectedConfMember");
+_STLIT8(K80, "EPhoneViewGetConferenceListVisibleFlag");
+_STLIT8(K81, "EPhoneViewOpenConferenceList");
+_STLIT8(K82, "EPhoneViewGetCallState");
+_STLIT8(K83, "EPhoneViewGetCallIdByState");
+_STLIT8(K84, "EPhoneViewMoveHighLightInList");
+_STLIT8(K85, "EPhoneViewGetCountOfActiveCalls");
+_STLIT8(K86, "EPhoneViewSetNaviPaneAudioVolume");
+_STLIT8(K87, "EPhoneViewShowNaviPaneAudioVolume");
+_STLIT8(K88, "EPhoneViewHideNaviPaneAudioVolume");
+_STLIT8(K89, "EPhoneViewGetIsConference");
+_STLIT8(K90, "EPhoneViewGetCallExistsInConference");
+_STLIT8(K91, "EPhoneViewRemoveAllCallHeaders");
+_STLIT8(K92, "EPhoneViewPlayRingTone");
+_STLIT8(K93, "EPhoneViewMuteRingTone");
+_STLIT8(K94, "EPhoneViewStopRingTone");
+_STLIT8(K95, "EPhoneViewMuteRingToneOnAnswer");
+_STLIT8(K96, "EPhoneViewCipheringInfoChange");
+_STLIT8(K97, "EPhoneViewUpdateMaxConfMemberFlag");
+_STLIT8(K98, "EPhoneViewCloseFSW");
+_STLIT8(K99, "EPhoneViewLaunchRfsDeep");
+_STLIT8(K100, "EPhoneViewLaunchRfsNormal");
+_STLIT8(K101, "EPhoneViewUpdateView");
+_STLIT8(K102, "EPhoneViewOpenSoftRejectEditor");
+_STLIT8(K103, "EPhoneViewSendMessage");
+_STLIT8(K104, "EPhoneViewSetBlockingDialogStatus");
+_STLIT8(K105, "EPhoneViewSetPhoneNumberAvailableInPhoneEngine");
+_STLIT8(K106, "EPhoneViewSetSecurityMode");
+_STLIT8(K107, "EPhoneViewGetSecurityModeStatus");
+_STLIT8(K108, "EPhoneViewSetStatusPaneVisible");
+_STLIT8(K109, "EPhoneViewEnableKeyLock");
+_STLIT8(K110, "EPhoneViewEnableKeyLockWithoutNote");
+_STLIT8(K111, "EPhoneViewLaunchFaxModem");
+_STLIT8(K112, "EPhoneViewUpdateFSW");
+_STLIT8(K113, "EPhoneViewIsQuery");
+_STLIT8(K114, "EPhoneViewBringIdleToForeground");
+_STLIT8(K115, "EPhoneViewSetIdleTopApplication");
+_STLIT8(K116, "EPhoneViewBeginUpdate");
+_STLIT8(K117, "EPhoneViewEndUpdate");
+_STLIT8(K118, "EPhoneViewSetConfrenceOptionsFlag");
+_STLIT8(K119, "EPhoneViewRemoveConferenceBubble");
+_STLIT8(K120, "EPhoneViewGetSoftRejectWindowGroupId");
+_STLIT8(K121, "EPhoneViewSetTouchPaneButtons");
+_STLIT8(K122, "EPhoneViewSetTouchPaneVisible");
+_STLIT8(K123, "EPhoneViewEnableTouchButton");
+_STLIT8(K124, "EPhoneViewDisableTouchButton");
+_STLIT8(K125, "EPhoneResetTouchButtons");
+_STLIT8(K126, "EPhoneViewGetIsConferenceInSelectionMode");
+_STLIT8(K127, "EPhoneViewIsStraightCallToVideoMailBox");
+_STLIT8(K128, "EPhoneViewSetDtmfDialerViewVisible");
+_STLIT8(K129, "EPhoneViewSetRetrictedDialer");
+_STLIT8(K130, "EPhoneViewIsConferenceInExpandedMode");
+_STLIT8(K131, "EPhoneViewIsMenuBarVisible");
+_STLIT8(K132, "EPhoneViewGetBlockingDialogStatus");
+_STLIT8(K133, "EPhoneViewYesSingleItemFetch");
+_STLIT8(K134, "EPhoneViewNoSingleItemFetch");
+_STLIT8(K135, "EPhoneViewGetLocalizedNumberFromEntry");
+_STLIT8(K136, "EPhoneViewIsNoteActive");
+_STLIT8(K137, "EPhoneViewOpenNumberEntry");
+_STLIT8(K138, "EPhoneViewOpenCallHandling");
+_STLIT8(K139, "EPhoneViewGetConferenceAndSingleFlag");
+_STLIT8(K140, "EPhoneViewSetConferenceAndSingleFlag");
+_STLIT8(K141, "EPhoneViewSetVideoCallFlag");
+_STLIT8(K142, "EPhoneViewSetDtmfOptionsFlag");
+_STLIT8(K143, "EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery");
+_STLIT8(K144, "EPhoneViewGetAudioVolumeLevel");
+_STLIT8(K145, "EPhoneViewIsIdleTopApp");
+_STLIT8(K146, "EPhoneViewUpdateToolbar");
+_STLIT8(K147, "EPhoneViewSetControlAndVisibility");
+_STLIT8(K148, "EPhoneViewAllowWaitingCallHeader");
+_STLIT8(K149, "EPhoneViewBeginTransEffect");
+_STLIT8(K150, "EPhoneViewEndTransEffect");
+_STLIT8(K151, "EPhoneViewSetDialerControlVisible");
+_STLIT8(K152, "EPhoneViewCloseSingleItemFetchDialog");
+_STLIT8(K153, "EPhoneViewGetActivatePreviousApp");
+_STLIT8(K154, "EPhoneViewActivatePreviousApp");
+_STLIT8(K155, "EPhoneViewSetPointerCapture");
+_STLIT8(K156, "EPhoneViewSetSendKeyDialerActivationFlag");
+_STLIT8(K157, "EPhoneViewPrepareIcons");
+_STLIT8(K158, "EPhoneViewKeypadAudioEnabled");
+_STLIT8(K159, "EPhoneViewKeypadAudioDisabled");
+_STLIT8(K160, "EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel");
+_STLIT8(K161, "EPhoneViewRemoveDtmfNote");
+_STLIT8(K162, "EPhoneViewUpdatePhoneIconToFSW");
+_STLIT8(K163, "EPhoneViewSetEikonNotifiersDisabled");
+_STLIT8(K164, "EPhoneViewCancelAllNotications");
+_STLIT8(K165, "EPhoneViewSetVideoCallDTMFVisibilityFlag");
+_STLIT8(K166, "EPhoneViewIsKeyLockEnabled");
+_STLIT8(K167, "EPhoneViewDisableKeyLock");
+_STLIT8(K168, "EPhoneViewLoadPlugins");
+_STLIT8(K169, "EPhoneViewOpenVirtualKeyBoard");
+_STLIT8(K170, "EPhoneViewUpdateNoteSoftkeys");
+_STLIT8(K171, "EPhoneViewSendAiwCommand");
+_STLIT8(K172, "EPhoneViewShowCustomizedDialer");
+_STLIT8(K173, "EPhoneViewHideCustomizedDialer");
+_STLIT8(K174, "EPhoneViewGetCustomizedDialerMenuResourceId");
+_STLIT8(K175, "EPhoneViewGetCustomizedDialerCbaResourceId");
+_STLIT8(K176, "EPhoneViewCipheringInfoChangePlayTone");
+_STLIT8(K177, "EPhoneViewCreatePhoneBookServices");
+_STLIT8(K178, "EPhoneViewDisableKeyLockWithoutNote");
+_STLIT8(K179, "EPhoneViewGetKeyLockStatus");
+_STLIT8(K180, "EPhoneViewSetNumberEntryObserver");
+_STLIT8(K181, "EPhoneViewGetSingleItemFetchType");
+_STLIT8(K182, "EPhoneViewRemoveGlobalWaitNote");
+_STLIT8(K183, "EPhoneViewSetPhoneCustomization");
+_STLIT8(K184, "EPhoneViewSetViewCustomization");
+_STLIT8(K185, "EPhoneViewSetButtonCustomization");
+_STLIT8(K186, "EPhoneViewUpdateContactByString");
+_STLIT8(K187, "EPhoneViewAddContactByString");
+_STLIT8(K188, "EPhoneViewIsActiveNoteDissmissableByKeyEvent");
+_STLIT8(K189, "EPhoneViewUpdateContextMenu");
+_STLIT8(K190, "EPhoneViewSetNoConnectedCalls");
+_STLIT8(K191, "EPhoneViewIsDTMFEditorVisible");
+_STLIT8(K192, "EPhoneViewSetToolbarDimming");
+_STLIT8(K193, "EPhoneViewEnableToolbarButton");
+_STLIT8(K194, "EPhoneViewHideToolbar");
+_STLIT8(K195, "EPhoneViewShowToolbar");
+_STLIT8(K196, "EPhoneViewGetExpandedBubbleCallId");
+_STLIT8(K197, "EPhoneViewOpenDialer");
+_STLIT8(K198, "EPhoneSetConferenceExpanded");
+_STLIT8(K199, "EPhoneAppShutDown");
+_STLIT8(K200, "EPhoneViewBackButtonActive");
+_STLIT8(K201, "EPhoneViewHsToForegroundAfterCall");
+_STLIT8(K202, "EPhoneViewOpenContacts");
+_STLIT8(K203, "EPhoneViewSetIhfFlag");
+_STLIT8(K204, "EPhoneViewSetMuteFlag");
+_STLIT8(K205, "EPhoneViewLaunchLogs");
+_STLIT8(K206, "EPhoneViewSetBlueToothFlag");
+_STLIT8(K207, "EPhoneViewSetBluetoothAvailableFlag");
+_STLIT8(K208, ", // Don't remove this, this should always be the last in list.");
 
 // Intermediate
 const void * const KStringPointers[] =
-    {
-    (const void*)&K1,
-    (const void*)&K2,
-    (const void*)&K3,
-    (const void*)&K4,
-    (const void*)&K5,
-    (const void*)&K6,
-    (const void*)&K7,
-    (const void*)&K8,
-    (const void*)&K9,
-    (const void*)&K10,
-    (const void*)&K11,
-    (const void*)&K12,
-    (const void*)&K13,
-    (const void*)&K14,
-    (const void*)&K15,
-    (const void*)&K16,
-    (const void*)&K17,
-    (const void*)&K18,
-    (const void*)&K19,
-    (const void*)&K20,
-    (const void*)&K21,
-    (const void*)&K22,
-    (const void*)&K23,
-    (const void*)&K24,
-    (const void*)&K25,
-    (const void*)&K26,
-    (const void*)&K27,
-    (const void*)&K28,
-    (const void*)&K29,
-    (const void*)&K30,
-    (const void*)&K31,
-    (const void*)&K32,
-    (const void*)&K33,
-    (const void*)&K34,
-    (const void*)&K35,
-    (const void*)&K36,
-    (const void*)&K37,
-    (const void*)&K38,
-    (const void*)&K39,
-    (const void*)&K40,
-    (const void*)&K41,
-    (const void*)&K42,
-    (const void*)&K43,
-    (const void*)&K44,
-    (const void*)&K45,
-    (const void*)&K46,
-    (const void*)&K47,
-    (const void*)&K48,
-    (const void*)&K49,
-    (const void*)&K50,
-    (const void*)&K51,
-    (const void*)&K52,
-    (const void*)&K53,
-    (const void*)&K54,
-    (const void*)&K55,
-    (const void*)&K56,
-    (const void*)&K57,
-    (const void*)&K58,
-    (const void*)&K59,
-    (const void*)&K60,
-    (const void*)&K61,
-    (const void*)&K62,
-    (const void*)&K63,
-    (const void*)&K64,
-    (const void*)&K65,
-    (const void*)&K69,
-    (const void*)&K70,
-    (const void*)&K71,
-    (const void*)&K72,
-    (const void*)&K73,
-    (const void*)&K74,
-    (const void*)&K75,
-    (const void*)&K76,
-    (const void*)&K77,
-    (const void*)&K78,
-    (const void*)&K79,
-    (const void*)&K80,
-    (const void*)&K81,
-    (const void*)&K82,
-    (const void*)&K83,
-    (const void*)&K84,
-    (const void*)&K85,
-    (const void*)&K86,
-    (const void*)&K87,
-    (const void*)&K88,
-    (const void*)&K89,
-    (const void*)&K90,
-    (const void*)&K91,
-    (const void*)&K92,
-    (const void*)&K93,
-    (const void*)&K94,
-    (const void*)&K95,
-    (const void*)&K96,
-    (const void*)&K97,
-    (const void*)&K98,
-    (const void*)&K99,
-    (const void*)&K100,
-    (const void*)&K101,
-    (const void*)&K102,
-    (const void*)&K103,
-    (const void*)&K104,
-    (const void*)&K105,
-    (const void*)&K106,
-    (const void*)&K107,
-    (const void*)&K108,
-    (const void*)&K109,
-    (const void*)&K110,
-    (const void*)&K111,
-    (const void*)&K112,
-    (const void*)&K113,
-    (const void*)&K114,
-    (const void*)&K115,
-    (const void*)&K116,
-    (const void*)&K117,
-    (const void*)&K118,
-    (const void*)&K119,
-    (const void*)&K120,
-    (const void*)&K121,
-    (const void*)&K122,
-    (const void*)&K123,
-    (const void*)&K124,
-    (const void*)&K125,
-    (const void*)&K126,
-    (const void*)&K127,
-    (const void*)&K128,
-    (const void*)&K129,
-    (const void*)&K130,
-    (const void*)&K131,
-    (const void*)&K132,
-    (const void*)&K133,
-    (const void*)&K134,
-    (const void*)&K135,
-    (const void*)&K136,
-    (const void*)&K137,
-    (const void*)&K138,
-    (const void*)&K139,
-    (const void*)&K140,
-    (const void*)&K141,
-    (const void*)&K142,
-    (const void*)&K143,
-    (const void*)&K144,
-    (const void*)&K145,
-    (const void*)&K146,
-    (const void*)&K147,
-    (const void*)&K148,
-    (const void*)&K149,
-    (const void*)&K150,
-    (const void*)&K151,
-    (const void*)&K152,
-    (const void*)&K153,
-    (const void*)&K154,
-    (const void*)&K155,
-    (const void*)&K156,
-    (const void*)&K157,
-    (const void*)&K158,
-    (const void*)&K159,
-    (const void*)&K160,
-    (const void*)&K161,
-    (const void*)&K162,
-    (const void*)&K163,
-    (const void*)&K164,
-    (const void*)&K165,
-    (const void*)&K166,
-    (const void*)&K167,
-    (const void*)&K168,
-    (const void*)&K169,
-    (const void*)&K170,
-    (const void*)&K171,
-    (const void*)&K172,
-    (const void*)&K173,
-    (const void*)&K174,
-    (const void*)&K175,
-    (const void*)&K176,
-    (const void*)&K177,
-    (const void*)&K178,
-    (const void*)&K179,
-    (const void*)&K180,
-    (const void*)&K181,
-    (const void*)&K182,
-    (const void*)&K183,
-    (const void*)&K184,
-    (const void*)&K185,
-    (const void*)&K186,
-    (const void*)&K187,
-    (const void*)&K188,
-    (const void*)&K189,
-    (const void*)&K190,
-    (const void*)&K191,
-    (const void*)&K192,
-    (const void*)&K193
-    };
+	{
+	(const void*)&K1,
+	(const void*)&K2,
+	(const void*)&K3,
+	(const void*)&K4,
+	(const void*)&K5,
+	(const void*)&K6,
+	(const void*)&K7,
+	(const void*)&K8,
+	(const void*)&K9,
+	(const void*)&K10,
+	(const void*)&K11,
+	(const void*)&K12,
+	(const void*)&K13,
+	(const void*)&K14,
+	(const void*)&K15,
+	(const void*)&K16,
+	(const void*)&K17,
+	(const void*)&K18,
+	(const void*)&K19,
+	(const void*)&K20,
+	(const void*)&K21,
+	(const void*)&K22,
+	(const void*)&K23,
+	(const void*)&K24,
+	(const void*)&K25,
+	(const void*)&K26,
+	(const void*)&K27,
+	(const void*)&K28,
+	(const void*)&K29,
+	(const void*)&K30,
+	(const void*)&K31,
+	(const void*)&K32,
+	(const void*)&K33,
+	(const void*)&K34,
+	(const void*)&K35,
+	(const void*)&K36,
+	(const void*)&K37,
+	(const void*)&K38,
+	(const void*)&K39,
+	(const void*)&K40,
+	(const void*)&K41,
+	(const void*)&K42,
+	(const void*)&K43,
+	(const void*)&K44,
+	(const void*)&K45,
+	(const void*)&K46,
+	(const void*)&K47,
+	(const void*)&K48,
+	(const void*)&K49,
+	(const void*)&K50,
+	(const void*)&K51,
+	(const void*)&K52,
+	(const void*)&K53,
+	(const void*)&K54,
+	(const void*)&K55,
+	(const void*)&K56,
+	(const void*)&K57,
+	(const void*)&K58,
+	(const void*)&K59,
+	(const void*)&K60,
+	(const void*)&K61,
+	(const void*)&K62,
+	(const void*)&K63,
+	(const void*)&K64,
+	(const void*)&K65,
+	(const void*)&K66,
+	(const void*)&K67,
+	(const void*)&K68,
+	(const void*)&K69,
+	(const void*)&K70,
+	(const void*)&K71,
+	(const void*)&K72,
+	(const void*)&K73,
+	(const void*)&K74,
+	(const void*)&K75,
+	(const void*)&K76,
+	(const void*)&K77,
+	(const void*)&K78,
+	(const void*)&K79,
+	(const void*)&K80,
+	(const void*)&K81,
+	(const void*)&K82,
+	(const void*)&K83,
+	(const void*)&K84,
+	(const void*)&K85,
+	(const void*)&K86,
+	(const void*)&K87,
+	(const void*)&K88,
+	(const void*)&K89,
+	(const void*)&K90,
+	(const void*)&K91,
+	(const void*)&K92,
+	(const void*)&K93,
+	(const void*)&K94,
+	(const void*)&K95,
+	(const void*)&K96,
+	(const void*)&K97,
+	(const void*)&K98,
+	(const void*)&K99,
+	(const void*)&K100,
+	(const void*)&K101,
+	(const void*)&K102,
+	(const void*)&K103,
+	(const void*)&K104,
+	(const void*)&K105,
+	(const void*)&K106,
+	(const void*)&K107,
+	(const void*)&K108,
+	(const void*)&K109,
+	(const void*)&K110,
+	(const void*)&K111,
+	(const void*)&K112,
+	(const void*)&K113,
+	(const void*)&K114,
+	(const void*)&K115,
+	(const void*)&K116,
+	(const void*)&K117,
+	(const void*)&K118,
+	(const void*)&K119,
+	(const void*)&K120,
+	(const void*)&K121,
+	(const void*)&K122,
+	(const void*)&K123,
+	(const void*)&K124,
+	(const void*)&K125,
+	(const void*)&K126,
+	(const void*)&K127,
+	(const void*)&K128,
+	(const void*)&K129,
+	(const void*)&K130,
+	(const void*)&K131,
+	(const void*)&K132,
+	(const void*)&K133,
+	(const void*)&K134,
+	(const void*)&K135,
+	(const void*)&K136,
+	(const void*)&K137,
+	(const void*)&K138,
+	(const void*)&K139,
+	(const void*)&K140,
+	(const void*)&K141,
+	(const void*)&K142,
+	(const void*)&K143,
+	(const void*)&K144,
+	(const void*)&K145,
+	(const void*)&K146,
+	(const void*)&K147,
+	(const void*)&K148,
+	(const void*)&K149,
+	(const void*)&K150,
+	(const void*)&K151,
+	(const void*)&K152,
+	(const void*)&K153,
+	(const void*)&K154,
+	(const void*)&K155,
+	(const void*)&K156,
+	(const void*)&K157,
+	(const void*)&K158,
+	(const void*)&K159,
+	(const void*)&K160,
+	(const void*)&K161,
+	(const void*)&K162,
+	(const void*)&K163,
+	(const void*)&K164,
+	(const void*)&K165,
+	(const void*)&K166,
+	(const void*)&K167,
+	(const void*)&K168,
+	(const void*)&K169,
+	(const void*)&K170,
+	(const void*)&K171,
+	(const void*)&K172,
+	(const void*)&K173,
+	(const void*)&K174,
+	(const void*)&K175,
+	(const void*)&K176,
+	(const void*)&K177,
+	(const void*)&K178,
+	(const void*)&K179,
+	(const void*)&K180,
+	(const void*)&K181,
+	(const void*)&K182,
+	(const void*)&K183,
+	(const void*)&K184,
+	(const void*)&K185,
+	(const void*)&K186,
+	(const void*)&K187,
+	(const void*)&K188,
+	(const void*)&K189,
+	(const void*)&K190,
+	(const void*)&K191,
+	(const void*)&K192,
+	(const void*)&K193,
+	(const void*)&K194,
+	(const void*)&K195,
+	(const void*)&K196,
+	(const void*)&K197,
+	(const void*)&K198,
+	(const void*)&K199,
+	(const void*)&K200,
+	(const void*)&K201,
+	(const void*)&K202,
+	(const void*)&K203,
+	(const void*)&K204,
+	(const void*)&K205,
+	(const void*)&K206,
+	(const void*)&K207,
+	(const void*)&K208
+	};
 
-const TStringTable PhoneLoggerviewCommands::Table = {193, KStringPointers, EFalse};
+const TStringTable PhoneLoggerviewCommands::Table = {208, KStringPointers, EFalse};
 
--- a/phoneapp/phoneuiutils/src/phoneloggerviewcommands.st	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/phoneloggerviewcommands.st	Tue Jul 06 14:15:47 2010 +0300
@@ -1,192 +1,210 @@
 # Phone Application Logger UI Command String Table
 fstringtable PhoneLoggerviewCommands
 EPhoneViewStartValue EPhoneViewStartValue
-EPhoneViewCreateNumberEntry EPhoneViewCreateNumberEntry
-EPhoneViewSetNumberEntryContent EPhoneViewSetNumberEntryContent
-EPhoneViewSendKeyEventToNumberEntry EPhoneViewSendKeyEventToNumberEntry
-EPhoneViewRemoveNumberEntry EPhoneViewRemoveNumberEntry
-EPhoneViewSetNumberEntryVisible EPhoneViewSetNumberEntryVisible
-EPhoneViewGetNumberFromEntry EPhoneViewGetNumberFromEntry
-EPhoneViewGetNumberEntryCount EPhoneViewGetNumberEntryCount
-EPhoneViewGetNumberEntryIsUsedStatus EPhoneViewGetNumberEntryIsUsedStatus
-EPhoneViewGetNumberEntryIsVisibleStatus EPhoneViewGetNumberEntryIsVisibleStatus
-EPhoneViewToggleNumberEntryAlphaNumericMode EPhoneViewToggleNumberEntryAlphaNumericMode
-EPhoneViewIsNumberEntryNumericMode EPhoneViewIsNumberEntryNumericMode
-EPhoneViewClearNumberEntryContent EPhoneViewClearNumberEntryContent
-EPhoneViewCreateCallHeader  EPhoneViewCreateCallHeader
-EPhoneViewCreateEmergencyCallHeader EPhoneViewCreateEmergencyCallHeader
-EPhoneViewUpdateCallHeaderRemoteInfoData EPhoneViewUpdateCallHeaderRemoteInfoData
-EPhoneViewUpdateCallHeaderCallDuration EPhoneViewUpdateCallHeaderCallDuration
-EPhoneViewRemoveCallHeader  EPhoneViewRemoveCallHeader
-EPhoneViewMenuBarOpen       EPhoneViewMenuBarOpen
-EPhoneViewMenuBarClose      EPhoneViewMenuBarClose
-EPhoneViewDimCbaCommand     EPhoneViewDimCbaCommand
-EPhoneViewUpdateCba         EPhoneViewUpdateCba
-EPhoneViewUpdateBubble      EPhoneViewUpdateBubble
-EPhoneViewMenuPane      EPhoneViewMenuPane
-EPhoneViewMenuBar       EPhoneViewMenuBar
-EPhoneViewSetTitlePaneContent   EPhoneViewSetTitlePaneContent
-EPhoneViewSetNaviPaneContent   EPhoneViewSetNaviPaneContent
-EPhoneViewSetTitlePanePicture EPhoneViewSetTitlePanePicture
-EPhoneViewGetTitlePaneIsVisibleStatus EPhoneViewGetTitlePaneIsVisibleStatus
-EPhoneViewActivateAudioPathUIChanges  EPhoneViewActivateAudioPathUIChanges
-EPhoneViewActivateAudioAvailabilityUIChanges  EPhoneViewActivateAudioAvailabilityUIChanges
-EPhoneViewActivateMuteUIChanges EPhoneViewActivateMuteUIChanges
-EPhoneViewShowNote EPhoneViewShowNote
-EPhoneViewShowGlobalNote EPhoneViewShowGlobalNote
-EPhoneViewShowProgressNote EPhoneViewShowProgressNote
-EPhoneViewRemoveNote EPhoneViewRemoveNote
-EPhoneViewRemoveProgressNote EPhoneViewRemoveProgressNote
-EPhoneViewRemoveGlobalNote EPhoneViewRemoveGlobalNote
-EPhoneViewGetIsNoteVisible EPhoneViewGetIsNoteVisible
-EPhoneViewGetIsProgressNoteVisible EPhoneViewGetIsProgressNoteVisible
-EPhoneViewShowQuery EPhoneViewShowQuery
-EPhoneViewSetListQueryString EPhoneViewSetListQueryString
-EPhoneViewRemoveQuery EPhoneViewRemoveQuery
-EPhoneViewGetTextQueryContents EPhoneViewGetTextQueryContents
-EPhoneViewSetTopApplication EPhoneViewSetTopApplication
-EPhoneViewBringAppToForeground EPhoneViewBringAppToForeground
-EPhoneViewSendToBackground EPhoneViewSendToBackground
-EPhoneViewSetNeedToSendToBackgroundStatus EPhoneViewSetNeedToSendToBackgroundStatus
-EPhoneViewGetNeedToSendToBackgroundStatus EPhoneViewGetNeedToSendToBackgroundStatus
-EPhoneViewGetTopApplicationIsDisplayedStatus EPhoneViewGetTopApplicationIsDisplayedStatus
-EPhoneViewGetForegroundApplication EPhoneViewGetForegroundApplication
-EPhoneViewSetBackgroundImageBitmap EPhoneViewSetBackgroundImageBitmap
-EPhoneViewGetBackgroundImageBitmap EPhoneViewGetBackgroundImageBitmap
-EPhoneViewActivateApp EPhoneViewActivateApp
-EPhoneViewActivateAppView EPhoneViewActivateAppView
-EPhoneViewActivateAppViewWithCustomMessage EPhoneViewActivateAppViewWithCustomMessage
-EPhoneViewActivateAppViewConventional EPhoneViewActivateAppViewConventional
-EPhoneViewLaunchApplication EPhoneViewLaunchApplication
-EPhoneViewLaunchHelpApplication EPhoneViewLaunchHelpApplication
-EPhoneViewOpenMessageEditor EPhoneViewOpenMessageEditor
-EPhoneViewExitApplications EPhoneViewExitApplications
-EPhoneViewUpdateIncallIndicator EPhoneViewUpdateIncallIndicator
-EPhoneViewStartCapturingKey EPhoneViewStartCapturingKey
-EPhoneViewStopCapturingKey EPhoneViewStopCapturingKey
-EPhoneViewSetGlobalNotifiersDisabled EPhoneViewSetGlobalNotifiersDisabled
-EPhoneViewGetHoldFlag EPhoneViewGetHoldFlag
-EPhoneViewSetHoldFlag EPhoneViewSetHoldFlag
-EPhoneViewSetSoftRejectFlag EPhoneViewSetSoftRejectFlag
-EPhoneViewGetSoftRejectFlag EPhoneViewGetSoftRejectFlag
-EPhoneViewSetServiceCodeFlag EPhoneViewSetServiceCodeFlag
-EPhoneViewUpdateContact EPhoneViewUpdateContact
-EPhoneViewAddContact EPhoneViewAddContact
-EPhoneViewOpenSingleItemFetchDialog EPhoneViewOpenSingleItemFetchDialog
-EPhoneViewRemovePhoneDialogs EPhoneViewRemovePhoneDialogs
-EPhoneViewCreateConference EPhoneViewCreateConference
-EPhoneViewAddToConference EPhoneViewAddToConference
-EPhoneViewRemoveFromConference EPhoneViewRemoveFromConference
-EPhoneViewPrivateFromConference EPhoneViewPrivateFromConference
-EPhoneViewSelectedConfMember EPhoneViewSelectedConfMember
-EPhoneViewOpenConferenceList EPhoneViewOpenConferenceList
-EPhoneViewGetConferenceListVisibleFlag EPhoneViewGetConferenceListVisibleFlag
-EPhoneViewGetCallState EPhoneViewGetCallState
-EPhoneViewGetCallIdByState EPhoneViewGetCallIdByState
-EPhoneViewMoveHighLightInList EPhoneViewMoveHighLightInList
-EPhoneViewGetCountOfActiveCalls EPhoneViewGetCountOfActiveCalls
-EPhoneViewSetNaviPaneAudioVolume EPhoneViewSetNaviPaneAudioVolume
-EPhoneViewShowNaviPaneAudioVolume EPhoneViewShowNaviPaneAudioVolume
-EPhoneViewHideNaviPaneAudioVolume EPhoneViewHideNaviPaneAudioVolume
-EPhoneViewGetIsConference EPhoneViewGetIsConference
-EPhoneViewGetCallExistsInConference EPhoneViewGetCallExistsInConference
-EPhoneViewRemoveAllCallHeaders EPhoneViewRemoveAllCallHeaders
-EPhoneViewPlayRingTone EPhoneViewPlayRingTone
-EPhoneViewMuteRingTone EPhoneViewMuteRingTone
-EPhoneViewStopRingTone EPhoneViewStopRingTone
-EPhoneViewMuteRingToneOnAnswer EPhoneViewMuteRingToneOnAnswer
-EPhoneViewCipheringInfoChange EPhoneViewCipheringInfoChange
-EPhoneViewUpdateMaxConfMemberFlag EPhoneViewUpdateMaxConfMemberFlag
-EPhoneViewCloseFSW EPhoneViewCloseFSW
-EPhoneViewLaunchRfsDeep EPhoneViewLaunchRfsDeep
-EPhoneViewLaunchRfsNormal EPhoneViewLaunchRfsNormal
-EPhoneViewUpdateView EPhoneViewUpdateView
-EPhoneViewOpenSoftRejectEditor EPhoneViewOpenSoftRejectEditor
-EPhoneViewSendMessage EPhoneViewSendMessage
-EPhoneViewSetBlockingDialogStatus EPhoneViewSetBlockingDialogStatus
-EPhoneViewSetPhoneNumberAvailableInPhoneEngine EPhoneViewSetPhoneNumberAvailableInPhoneEngine
-EPhoneViewSetSecurityMode EPhoneViewSetSecurityMode
-EPhoneViewGetSecurityModeStatus EPhoneViewGetSecurityModeStatus
-EPhoneViewSetStatusPaneVisible EPhoneViewSetStatusPaneVisible
-EPhoneViewEnableKeyLock EPhoneViewEnableKeyLock
-EPhoneViewEnableKeyLockWithoutNote EPhoneViewEnableKeyLockWithoutNote
-EPhoneViewLaunchFaxModem EPhoneViewLaunchFaxModem
-EPhoneViewUpdateFSW EPhoneViewUpdateFSW
-EPhoneViewIsQuery EPhoneViewIsQuery
-EPhoneViewBringIdleToForeground EPhoneViewBringIdleToForeground
-EPhoneViewSetIdleTopApplication EPhoneViewSetIdleTopApplication
-EPhoneViewBeginUpdate EPhoneViewBeginUpdate
-EPhoneViewEndUpdate EPhoneViewEndUpdate
-EPhoneViewSetConfrenceOptionsFlag EPhoneViewSetConfrenceOptionsFlag
-EPhoneViewRemoveConferenceBubble EPhoneViewRemoveConferenceBubble
-EPhoneViewGetSoftRejectWindowGroupId EPhoneViewGetSoftRejectWindowGroupId
-EPhoneViewSetTouchPaneButtons EPhoneViewSetTouchPaneButtons
-EPhoneViewSetTouchPaneVisible EPhoneViewSetTouchPaneVisible
-EPhoneViewEnableTouchButton EPhoneViewEnableTouchButton
-EPhoneViewDisableTouchButton EPhoneViewDisableTouchButton
-EPhoneResetTouchButtons EPhoneResetTouchButtons
-EPhoneViewGetIsConferenceInSelectionMode EPhoneViewGetIsConferenceInSelectionMode  
-EPhoneViewIsStraightCallToVideoMailBox EPhoneViewIsStraightCallToVideoMailBox
-EPhoneViewSetDtmfDialerViewVisible EPhoneViewSetDtmfDialerViewVisible
-EPhoneViewSetRetrictedDialer EPhoneViewSetRetrictedDialer
+EPhoneViewCreateNumberEntry EPhoneViewCreateNumberEntry 
+EPhoneViewSetNumberEntryContent EPhoneViewSetNumberEntryContent 
+EPhoneViewSendKeyEventToNumberEntry EPhoneViewSendKeyEventToNumberEntry 
+EPhoneViewRemoveNumberEntry EPhoneViewRemoveNumberEntry 
+EPhoneViewSetNumberEntryVisible EPhoneViewSetNumberEntryVisible 
+EPhoneViewGetNumberFromEntry EPhoneViewGetNumberFromEntry 
+EPhoneViewGetNumberEntryCount EPhoneViewGetNumberEntryCount 
+EPhoneViewGetNumberEntryIsUsedStatus EPhoneViewGetNumberEntryIsUsedStatus 
+EPhoneViewGetNumberEntryIsVisibleStatus EPhoneViewGetNumberEntryIsVisibleStatus 
+EPhoneViewToggleNumberEntryAlphaNumericMode EPhoneViewToggleNumberEntryAlphaNumericMode 
+EPhoneViewIsNumberEntryNumericMode EPhoneViewIsNumberEntryNumericMode 
+EPhoneViewClearNumberEntryContent EPhoneViewClearNumberEntryContent 
+EPhoneViewCreateCallHeader EPhoneViewCreateCallHeader 
+EPhoneViewCreateEmergencyCallHeader EPhoneViewCreateEmergencyCallHeader 
+EPhoneViewUpdateCallHeaderRemoteInfoData EPhoneViewUpdateCallHeaderRemoteInfoData 
+EPhoneViewUpdateCallHeaderCallDuration EPhoneViewUpdateCallHeaderCallDuration 
+EPhoneViewRemoveCallHeader EPhoneViewRemoveCallHeader 
+EPhoneViewMenuBarOpen EPhoneViewMenuBarOpen 
+EPhoneViewMenuBarClose EPhoneViewMenuBarClose 
+EPhoneViewDimCbaCommand EPhoneViewDimCbaCommand 
+EPhoneViewUpdateCba EPhoneViewUpdateCba 
+EPhoneViewUpdateBubble EPhoneViewUpdateBubble 
+EPhoneViewMenuPane EPhoneViewMenuPane 
+EPhoneViewMenuBar EPhoneViewMenuBar 
+EPhoneViewSetTitlePaneContent EPhoneViewSetTitlePaneContent 
+EPhoneViewSetNaviPaneContent EPhoneViewSetNaviPaneContent 
+EPhoneViewSetTitlePanePicture EPhoneViewSetTitlePanePicture 
+EPhoneViewGetTitlePaneIsVisibleStatus EPhoneViewGetTitlePaneIsVisibleStatus 
+EPhoneViewActivateAudioPathUIChanges EPhoneViewActivateAudioPathUIChanges 
+EPhoneViewActivateAudioAvailabilityUIChanges EPhoneViewActivateAudioAvailabilityUIChanges 
+EPhoneViewActivateMuteUIChanges EPhoneViewActivateMuteUIChanges 
+EPhoneViewShowNote EPhoneViewShowNote 
+EPhoneViewShowGlobalNote EPhoneViewShowGlobalNote 
+EPhoneViewShowProgressNote EPhoneViewShowProgressNote 
+EPhoneViewRemoveNote EPhoneViewRemoveNote 
+EPhoneViewRemoveProgressNote EPhoneViewRemoveProgressNote 
+EPhoneViewRemoveGlobalNote EPhoneViewRemoveGlobalNote 
+EPhoneViewGetIsNoteVisible EPhoneViewGetIsNoteVisible 
+EPhoneViewGetIsProgressNoteVisible EPhoneViewGetIsProgressNoteVisible 
+EPhoneViewShowQuery EPhoneViewShowQuery 
+EPhoneViewSetListQueryString EPhoneViewSetListQueryString 
+EPhoneViewRemoveQuery EPhoneViewRemoveQuery 
+EPhoneViewGetTextQueryContent EPhoneViewGetTextQueryContent 
+EPhoneViewSetTopApplication EPhoneViewSetTopApplication 
+EPhoneViewBringAppToForeground EPhoneViewBringAppToForeground 
+EPhoneViewSendToBackground EPhoneViewSendToBackground 
+EPhoneViewSetNeedToSendToBackgroundStatus EPhoneViewSetNeedToSendToBackgroundStatus 
+EPhoneViewGetNeedToSendToBackgroundStatus EPhoneViewGetNeedToSendToBackgroundStatus 
+EPhoneViewGetTopApplicationIsDisplayedStatus EPhoneViewGetTopApplicationIsDisplayedStatus 
+EPhoneViewGetForegroundApplication EPhoneViewGetForegroundApplication 
+EPhoneViewSetBackgroundImageBitmap EPhoneViewSetBackgroundImageBitmap 
+EPhoneViewGetBackgroundImageBitmap EPhoneViewGetBackgroundImageBitmap 
+EPhoneViewActivateApp EPhoneViewActivateApp 
+EPhoneViewActivateAppView EPhoneViewActivateAppView 
+EPhoneViewActivateAppViewWithCustomMessage EPhoneViewActivateAppViewWithCustomMessage 
+EPhoneViewActivateAppViewConventional EPhoneViewActivateAppViewConventional 
+EPhoneViewLaunchApplication EPhoneViewLaunchApplication 
+EPhoneViewLaunchHelpApplication EPhoneViewLaunchHelpApplication 
+EPhoneViewOpenMessageEditor EPhoneViewOpenMessageEditor 
+EPhoneViewExitApplications EPhoneViewExitApplications 
+EPhoneViewUpdateIncallIndicator EPhoneViewUpdateIncallIndicator 
+EPhoneViewStartCapturingKey EPhoneViewStartCapturingKey 
+EPhoneViewStopCapturingKey EPhoneViewStopCapturingKey 
+EPhoneViewSetGlobalNotifiersDisabled EPhoneViewSetGlobalNotifiersDisabled 
+EPhoneViewGetHoldFlag EPhoneViewGetHoldFlag 
+EPhoneViewSetHoldFlag EPhoneViewSetHoldFlag 
+EPhoneViewSetSoftRejectFlag EPhoneViewSetSoftRejectFlag 
+EPhoneViewGetSoftRejectFlag EPhoneViewGetSoftRejectFlag 
+EPhoneViewSetServiceCodeFlag EPhoneViewSetServiceCodeFlag 
+EPhoneViewUpdateContact EPhoneViewUpdateContact 
+EPhoneViewAddContact EPhoneViewAddContact 
+EPhoneViewOpenSingleItemFetchDialog EPhoneViewOpenSingleItemFetchDialog 
+EPhoneViewRemovePhoneDialogs EPhoneViewRemovePhoneDialogs 
+EPhoneViewCreateConference EPhoneViewCreateConference 
+EPhoneViewAddToConference EPhoneViewAddToConference 
+EPhoneViewRemoveFromConference EPhoneViewRemoveFromConference 
+EPhoneViewPrivateFromConference EPhoneViewPrivateFromConference 
+EPhoneViewSelectedConfMember EPhoneViewSelectedConfMember 
+EPhoneViewGetConferenceListVisibleFlag EPhoneViewGetConferenceListVisibleFlag 
+EPhoneViewOpenConferenceList EPhoneViewOpenConferenceList 
+EPhoneViewGetCallState EPhoneViewGetCallState 
+EPhoneViewGetCallIdByState EPhoneViewGetCallIdByState 
+EPhoneViewMoveHighLightInList EPhoneViewMoveHighLightInList 
+EPhoneViewGetCountOfActiveCalls EPhoneViewGetCountOfActiveCalls 
+EPhoneViewSetNaviPaneAudioVolume EPhoneViewSetNaviPaneAudioVolume 
+EPhoneViewShowNaviPaneAudioVolume EPhoneViewShowNaviPaneAudioVolume 
+EPhoneViewHideNaviPaneAudioVolume EPhoneViewHideNaviPaneAudioVolume 
+EPhoneViewGetIsConference EPhoneViewGetIsConference 
+EPhoneViewGetCallExistsInConference EPhoneViewGetCallExistsInConference 
+EPhoneViewRemoveAllCallHeaders EPhoneViewRemoveAllCallHeaders 
+EPhoneViewPlayRingTone EPhoneViewPlayRingTone 
+EPhoneViewMuteRingTone EPhoneViewMuteRingTone 
+EPhoneViewStopRingTone EPhoneViewStopRingTone 
+EPhoneViewMuteRingToneOnAnswer EPhoneViewMuteRingToneOnAnswer 
+EPhoneViewCipheringInfoChange EPhoneViewCipheringInfoChange 
+EPhoneViewUpdateMaxConfMemberFlag EPhoneViewUpdateMaxConfMemberFlag 
+EPhoneViewCloseFSW EPhoneViewCloseFSW 
+EPhoneViewLaunchRfsDeep EPhoneViewLaunchRfsDeep 
+EPhoneViewLaunchRfsNormal EPhoneViewLaunchRfsNormal 
+EPhoneViewUpdateView EPhoneViewUpdateView 
+EPhoneViewOpenSoftRejectEditor EPhoneViewOpenSoftRejectEditor 
+EPhoneViewSendMessage EPhoneViewSendMessage 
+EPhoneViewSetBlockingDialogStatus EPhoneViewSetBlockingDialogStatus 
+EPhoneViewSetPhoneNumberAvailableInPhoneEngine EPhoneViewSetPhoneNumberAvailableInPhoneEngine 
+EPhoneViewSetSecurityMode EPhoneViewSetSecurityMode 
+EPhoneViewGetSecurityModeStatus EPhoneViewGetSecurityModeStatus 
+EPhoneViewSetStatusPaneVisible EPhoneViewSetStatusPaneVisible 
+EPhoneViewEnableKeyLock EPhoneViewEnableKeyLock 
+EPhoneViewEnableKeyLockWithoutNote EPhoneViewEnableKeyLockWithoutNote 
+EPhoneViewLaunchFaxModem EPhoneViewLaunchFaxModem 
+EPhoneViewUpdateFSW EPhoneViewUpdateFSW 
+EPhoneViewIsQuery EPhoneViewIsQuery 
+EPhoneViewBringIdleToForeground EPhoneViewBringIdleToForeground 
+EPhoneViewSetIdleTopApplication EPhoneViewSetIdleTopApplication 
+EPhoneViewBeginUpdate EPhoneViewBeginUpdate 
+EPhoneViewEndUpdate EPhoneViewEndUpdate 
+EPhoneViewSetConfrenceOptionsFlag EPhoneViewSetConfrenceOptionsFlag 
+EPhoneViewRemoveConferenceBubble EPhoneViewRemoveConferenceBubble 
+EPhoneViewGetSoftRejectWindowGroupId EPhoneViewGetSoftRejectWindowGroupId 
+EPhoneViewSetTouchPaneButtons EPhoneViewSetTouchPaneButtons 
+EPhoneViewSetTouchPaneVisible EPhoneViewSetTouchPaneVisible 
+EPhoneViewEnableTouchButton EPhoneViewEnableTouchButton 
+EPhoneViewDisableTouchButton EPhoneViewDisableTouchButton 
+EPhoneResetTouchButtons EPhoneResetTouchButtons 
+EPhoneViewGetIsConferenceInSelectionMode EPhoneViewGetIsConferenceInSelectionMode 
+EPhoneViewIsStraightCallToVideoMailBox EPhoneViewIsStraightCallToVideoMailBox 
+EPhoneViewSetDtmfDialerViewVisible EPhoneViewSetDtmfDialerViewVisible 
+EPhoneViewSetRetrictedDialer EPhoneViewSetRetrictedDialer 
 EPhoneViewIsConferenceInExpandedMode EPhoneViewIsConferenceInExpandedMode 
-EPhoneViewIsMenuBarVisible EPhoneViewIsMenuBarVisible
-EPhoneViewGetBlockingDialogStatus EPhoneViewGetBlockingDialogStatus
-EPhoneViewYesSingleItemFetch EPhoneViewYesSingleItemFetch
-EPhoneViewNoSingleItemFetch EPhoneViewNoSingleItemFetch
-EPhoneViewGetLocalizedNumberFromEntry EPhoneViewGetLocalizedNumberFromEntry
-EPhoneViewIsNoteActive EPhoneViewIsNoteActive
-EPhoneViewOpenNumberEntry EPhoneViewOpenNumberEntry
-EPhoneViewOpenCallHandling EPhoneViewOpenCallHandling
-EPhoneViewGetConferenceAndSingleFlag EPhoneViewGetConferenceAndSingleFlag
-EPhoneViewSetConferenceAndSingleFlag EPhoneViewSetConferenceAndSingleFlag
-EPhoneViewSetVideoCallFlag EPhoneViewSetVideoCallFlag
-EPhoneViewSetDtmfOptionsFlag EPhoneViewSetDtmfOptionsFlag
-EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery
-EPhoneViewGetAudioVolumeLevel EPhoneViewGetAudioVolumeLevel
-EPhoneViewIsIdleTopApp EPhoneViewIsIdleTopApp
-EPhoneViewUpdateToolbar EPhoneViewUpdateToolbar
-EPhoneViewSetControlAndVisibility EPhoneViewSetControlAndVisibility
-EPhoneViewAllowWaitingCallHeader EPhoneViewAllowWaitingCallHeader
-EPhoneViewBeginTransEffect EPhoneViewBeginTransEffect
-EPhoneViewEndTransEffect EPhoneViewEndTransEffect
-EPhoneViewSetDialerControlVisible EPhoneViewSetDialerControlVisible
-EPhoneViewCloseSingleItemFetchDialog EPhoneViewCloseSingleItemFetchDialog
-EPhoneViewGetActivatePreviousApp EPhoneViewGetActivatePreviousApp
-EPhoneViewActivatePreviousApp EPhoneViewActivatePreviousApp
-EPhoneViewSetPointerCapture EPhoneViewSetPointerCapture
-EPhoneViewSetSendKeyDialerActivationFlag EPhoneViewSetSendKeyDialerActivationFlag
+EPhoneViewIsMenuBarVisible EPhoneViewIsMenuBarVisible 
+EPhoneViewGetBlockingDialogStatus EPhoneViewGetBlockingDialogStatus 
+EPhoneViewYesSingleItemFetch EPhoneViewYesSingleItemFetch 
+EPhoneViewNoSingleItemFetch EPhoneViewNoSingleItemFetch 
+EPhoneViewGetLocalizedNumberFromEntry EPhoneViewGetLocalizedNumberFromEntry 
+EPhoneViewIsNoteActive EPhoneViewIsNoteActive 
+EPhoneViewOpenNumberEntry EPhoneViewOpenNumberEntry 
+EPhoneViewOpenCallHandling EPhoneViewOpenCallHandling 
+EPhoneViewGetConferenceAndSingleFlag EPhoneViewGetConferenceAndSingleFlag 
+EPhoneViewSetConferenceAndSingleFlag EPhoneViewSetConferenceAndSingleFlag 
+EPhoneViewSetVideoCallFlag EPhoneViewSetVideoCallFlag 
+EPhoneViewSetDtmfOptionsFlag EPhoneViewSetDtmfOptionsFlag 
+EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery 
+EPhoneViewGetAudioVolumeLevel EPhoneViewGetAudioVolumeLevel 
+EPhoneViewIsIdleTopApp EPhoneViewIsIdleTopApp 
+EPhoneViewUpdateToolbar EPhoneViewUpdateToolbar 
+EPhoneViewSetControlAndVisibility EPhoneViewSetControlAndVisibility 
+EPhoneViewAllowWaitingCallHeader EPhoneViewAllowWaitingCallHeader 
+EPhoneViewBeginTransEffect EPhoneViewBeginTransEffect 
+EPhoneViewEndTransEffect EPhoneViewEndTransEffect 
+EPhoneViewSetDialerControlVisible EPhoneViewSetDialerControlVisible 
+EPhoneViewCloseSingleItemFetchDialog EPhoneViewCloseSingleItemFetchDialog 
+EPhoneViewGetActivatePreviousApp EPhoneViewGetActivatePreviousApp 
+EPhoneViewActivatePreviousApp EPhoneViewActivatePreviousApp 
+EPhoneViewSetPointerCapture EPhoneViewSetPointerCapture 
+EPhoneViewSetSendKeyDialerActivationFlag EPhoneViewSetSendKeyDialerActivationFlag 
 EPhoneViewPrepareIcons EPhoneViewPrepareIcons 
-EPhoneViewKeypadAudioEnabled EPhoneViewKeypadAudioEnabled
-EPhoneViewKeypadAudioDisabled EPhoneViewKeypadAudioDisabled
-EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel
-EPhoneViewRemoveDtmfNote EPhoneViewRemoveDtmfNote
-EPhoneViewUpdatePhoneIconToFSW EPhoneViewUpdatePhoneIconToFSW
-EPhoneViewSetEikonNotifiersDisabled EPhoneViewSetEikonNotifiersDisabled
-EPhoneViewCancelAllNotications EPhoneViewCancelAllNotications
-EPhoneViewSetVideoCallDTMFVisibilityFlag EPhoneViewSetVideoCallDTMFVisibilityFlag
-EPhoneViewIsKeyLockEnabled EPhoneViewIsKeyLockEnabled
-EPhoneViewDisableKeyLock EPhoneViewDisableKeyLock
-EPhoneViewLoadPlugins EPhoneViewLoadPlugins
-PhoneViewServiceSelection PhoneViewServiceSelection
-EPhoneViewOpenVirtualKeyBoard EPhoneViewOpenVirtualKeyBoard
-EPhoneViewUpdateNoteSoftkeys EPhoneViewUpdateNoteSoftkeys
-EPhoneViewShowCustomizedDialer EPhoneViewShowCustomizedDialer
-EPhoneViewHideCustomizedDialer EPhoneViewHideCustomizedDialer
-EPhoneViewGetCustomizedDialerMenuResourceId EPhoneViewGetCustomizedDialerMenuResourceId
-EPhoneViewGetCustomizedDialerCbaResourceId EPhoneViewGetCustomizedDialerCbaResourceId
-EPhoneViewCreatePhoneBookServices EPhoneViewCreatePhoneBookServices
-EPhoneViewDisableKeyLockWithoutNote EPhoneViewDisableKeyLockWithoutNote
-EPhoneViewGetKeyLockStatus EPhoneViewGetKeyLockStatus
-EPhoneViewSetNumberEntryObserver EPhoneViewSetNumberEntryObserver
-EPhoneViewGetSingleItemFetchType EPhoneViewGetSingleItemFetchType
-EPhoneViewRemoveGlobalWaitNote EPhoneViewRemoveGlobalWaitNote
-EPhoneViewSetPhoneCustomization EPhoneViewSetPhoneCustomization
-EPhoneViewSetViewCustomization EPhoneViewSetViewCustomization
-EPhoneViewSetButtonCustomization EPhoneViewSetButtonCustomization
-EPhoneViewUpdateContactByString EPhoneViewUpdateContactByString
-EPhoneViewAddContactByString EPhoneViewAddContactByString
-EPhoneViewIsActiveNoteDissmissableByKeyEvent EPhoneViewIsActiveNoteDissmissableByKeyEvent
-EPhoneViewSetNoConnectedCalls EPhoneViewSetNoConnectedCalls
-EPhoneViewIsDTMFEditorVisible EPhoneViewIsDTMFEditorVisible
+EPhoneViewKeypadAudioEnabled EPhoneViewKeypadAudioEnabled 
+EPhoneViewKeypadAudioDisabled EPhoneViewKeypadAudioDisabled 
+EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel 
+EPhoneViewRemoveDtmfNote EPhoneViewRemoveDtmfNote 
+EPhoneViewUpdatePhoneIconToFSW EPhoneViewUpdatePhoneIconToFSW 
+EPhoneViewSetEikonNotifiersDisabled EPhoneViewSetEikonNotifiersDisabled 
+EPhoneViewCancelAllNotications EPhoneViewCancelAllNotications 
+EPhoneViewSetVideoCallDTMFVisibilityFlag EPhoneViewSetVideoCallDTMFVisibilityFlag 
+EPhoneViewIsKeyLockEnabled EPhoneViewIsKeyLockEnabled 
+EPhoneViewDisableKeyLock EPhoneViewDisableKeyLock 
+EPhoneViewLoadPlugins EPhoneViewLoadPlugins 
+EPhoneViewOpenVirtualKeyBoard EPhoneViewOpenVirtualKeyBoard 
+EPhoneViewUpdateNoteSoftkeys EPhoneViewUpdateNoteSoftkeys 
+EPhoneViewSendAiwCommand EPhoneViewSendAiwCommand 
+EPhoneViewShowCustomizedDialer EPhoneViewShowCustomizedDialer 
+EPhoneViewHideCustomizedDialer EPhoneViewHideCustomizedDialer 
+EPhoneViewGetCustomizedDialerMenuResourceId EPhoneViewGetCustomizedDialerMenuResourceId 
+EPhoneViewGetCustomizedDialerCbaResourceId EPhoneViewGetCustomizedDialerCbaResourceId 
+EPhoneViewCipheringInfoChangePlayTone EPhoneViewCipheringInfoChangePlayTone 
+EPhoneViewCreatePhoneBookServices EPhoneViewCreatePhoneBookServices 
+EPhoneViewDisableKeyLockWithoutNote EPhoneViewDisableKeyLockWithoutNote 
+EPhoneViewGetKeyLockStatus EPhoneViewGetKeyLockStatus 
+EPhoneViewSetNumberEntryObserver EPhoneViewSetNumberEntryObserver 
+EPhoneViewGetSingleItemFetchType EPhoneViewGetSingleItemFetchType 
+EPhoneViewRemoveGlobalWaitNote EPhoneViewRemoveGlobalWaitNote 
+EPhoneViewSetPhoneCustomization EPhoneViewSetPhoneCustomization 
+EPhoneViewSetViewCustomization EPhoneViewSetViewCustomization 
+EPhoneViewSetButtonCustomization EPhoneViewSetButtonCustomization 
+EPhoneViewUpdateContactByString EPhoneViewUpdateContactByString 
+EPhoneViewAddContactByString EPhoneViewAddContactByString 
+EPhoneViewIsActiveNoteDissmissableByKeyEvent EPhoneViewIsActiveNoteDissmissableByKeyEvent 
+EPhoneViewUpdateContextMenu EPhoneViewUpdateContextMenu 
+EPhoneViewSetNoConnectedCalls EPhoneViewSetNoConnectedCalls 
+EPhoneViewIsDTMFEditorVisible EPhoneViewIsDTMFEditorVisible 
+EPhoneViewSetToolbarDimming EPhoneViewSetToolbarDimming 
+EPhoneViewEnableToolbarButton EPhoneViewEnableToolbarButton 
+EPhoneViewHideToolbar EPhoneViewHideToolbar 
+EPhoneViewShowToolbar EPhoneViewShowToolbar 
+EPhoneViewGetExpandedBubbleCallId EPhoneViewGetExpandedBubbleCallId 
+EPhoneViewOpenDialer EPhoneViewOpenDialer 
+EPhoneSetConferenceExpanded EPhoneSetConferenceExpanded 
+EPhoneAppShutDown EPhoneAppShutDown 
+EPhoneViewBackButtonActive EPhoneViewBackButtonActive 
+EPhoneViewHsToForegroundAfterCall EPhoneViewHsToForegroundAfterCall 
+EPhoneViewOpenContacts EPhoneViewOpenContacts 
+EPhoneViewSetIhfFlag EPhoneViewSetIhfFlag 
+EPhoneViewSetMuteFlag EPhoneViewSetMuteFlag 
+EPhoneViewLaunchLogs EPhoneViewLaunchLogs 
+EPhoneViewSetBlueToothFlag EPhoneViewSetBlueToothFlag 
+EPhoneViewSetBluetoothAvailableFlag EPhoneViewSetBluetoothAvailableFlag
 EPhoneAmountOfCommands, // Don't remove this, this should always be the last in list.
--- a/phoneapp/phoneuiutils/src/phonestatestrings.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/phonestatestrings.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,12 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
-*     Macro definition file for logging.
+* Description:  Macro definition file for logging.
 *
 */
 
-// Autogenerated from phonestatestrings.st by the stringtable tool - Do not edit
+// Autogenerated from .\phonestatestrings.st by the stringtable tool - Do not edit
 #include <e32std.h>
 #include <stringpool.h>
 #include <stringtablesupport.h>
@@ -35,15 +34,15 @@
 
 // Intermediate
 const void * const KStringPointers[] =
-    {
-    (const void*)&K1,
-    (const void*)&K2,
-    (const void*)&K3,
-    (const void*)&K4,
-    (const void*)&K5,
-    (const void*)&K6,
-    (const void*)&K7
-    };
+	{
+	(const void*)&K1,
+	(const void*)&K2,
+	(const void*)&K3,
+	(const void*)&K4,
+	(const void*)&K5,
+	(const void*)&K6,
+	(const void*)&K7
+	};
 
 const TStringTable PhoneStateStrings::Table = {7, KStringPointers, EFalse};
 
--- a/phoneapp/phoneuiutils/src/phonestatestringsgsm.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/phonestatestringsgsm.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,12 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
-*     Macro definition file for logging.
+* Description:  Macro definition file for logging.
 *
 */
 
-// Autogenerated from phonestatestringsgsm.st by the stringtable tool - Do not edit
+// Autogenerated from .\phonestatestringsgsm.st by the stringtable tool - Do not edit
 #include <e32std.h>
 #include <stringpool.h>
 #include <stringtablesupport.h>
@@ -43,23 +42,23 @@
 
 // Intermediate
 const void * const KStringPointers[] =
-    {
-    (const void*)&K1,
-    (const void*)&K2,
-    (const void*)&K3,
-    (const void*)&K4,
-    (const void*)&K5,
-    (const void*)&K6,
-    (const void*)&K7,
-    (const void*)&K8,
-    (const void*)&K9,
-    (const void*)&K10,
-    (const void*)&K11,
-    (const void*)&K12,
-    (const void*)&K13,
-    (const void*)&K14,
-    (const void*)&K15
-    };
+	{
+	(const void*)&K1,
+	(const void*)&K2,
+	(const void*)&K3,
+	(const void*)&K4,
+	(const void*)&K5,
+	(const void*)&K6,
+	(const void*)&K7,
+	(const void*)&K8,
+	(const void*)&K9,
+	(const void*)&K10,
+	(const void*)&K11,
+	(const void*)&K12,
+	(const void*)&K13,
+	(const void*)&K14,
+	(const void*)&K15
+	};
 
 const TStringTable PhoneStateStringsGSM::Table = {15, KStringPointers, EFalse};
 
--- a/phoneapp/phoneuiutils/src/tphonecmdparamglobalnote.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiutils/src/tphonecmdparamglobalnote.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -38,7 +38,8 @@
     iWaitforReady ( EFalse ),
     iSoftkeys( 0 ),
     iTimeout( 0 ),
-    iNotificationDialog( EFalse )
+    iNotificationDialog( EFalse ),
+    iCauseCode( KErrNotFound ) 
     {
     iParamId = EPhoneParamIdGlobalNote;
     }
@@ -137,6 +138,18 @@
 }
 
 // ---------------------------------------------------------
+// TPhoneCmdParamGlobalNote::SetCauseCode
+// Sets the cause code.
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+EXPORT_C void TPhoneCmdParamGlobalNote::SetCauseCode( 
+        TInt aCauseCode )
+{
+    iCauseCode = aCauseCode;
+}
+
+// ---------------------------------------------------------
 // TPhoneCmdParamGlobalNote::Type
 // Returns the global note type
 // (other items were commented in a header).
@@ -222,4 +235,14 @@
     return iNotificationDialog;
     }
 
+// ---------------------------------------------------------
+// TPhoneCmdParamGlobalNote::CauseCode
+// Returns the cause code.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt TPhoneCmdParamGlobalNote::CauseCode() const
+    {
+    return iCauseCode;
+    }
+
 //  End of File  
--- a/phoneapp/phoneuiview2/bwins/phoneuiqtviewu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiview2/bwins/phoneuiqtviewu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -64,4 +64,6 @@
 	?windowDeactivated@PhoneUIQtView@@IAEXXZ @ 63 NONAME ; void PhoneUIQtView::windowDeactivated(void)
 	?windowActivated@PhoneUIQtView@@IAEXXZ @ 64 NONAME ; void PhoneUIQtView::windowActivated(void)
 	?clearDialpad@PhoneUIQtView@@UAEXXZ @ 65 NONAME ; void PhoneUIQtView::clearDialpad(void)
+	?captureKey@PhoneUIQtView@@UAEXW4Key@Qt@@_N@Z @ 66 NONAME ; void PhoneUIQtView::captureKey(enum Qt::Key, bool)
+	?setRestrictedMode@PhoneUIQtView@@UAEX_N@Z @ 67 NONAME ; void PhoneUIQtView::setRestrictedMode(bool)
 
--- a/phoneapp/phoneuiview2/eabi/phoneuiqtviewu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiview2/eabi/phoneuiqtviewu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -94,4 +94,8 @@
 	_ZN13PhoneUIQtView17windowDeactivatedEv @ 93 NONAME
 	_ZN13PhoneUIQtView12clearDialpadEv @ 94 NONAME
 	_ZThn28_N13PhoneUIQtView12clearDialpadEv @ 95 NONAME
+	_ZN13PhoneUIQtView10captureKeyEN2Qt3KeyEb @ 96 NONAME
+	_ZThn28_N13PhoneUIQtView10captureKeyEN2Qt3KeyEb @ 97 NONAME
+	_ZN13PhoneUIQtView17setRestrictedModeEb @ 98 NONAME
+	_ZThn28_N13PhoneUIQtView17setRestrictedModeEb @ 99 NONAME
 
--- a/phoneapp/phoneuiview2/inc/phoneuiqtview.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiview2/inc/phoneuiqtview.h	Tue Jul 06 14:15:47 2010 +0300
@@ -31,6 +31,7 @@
 class HbVolumeSliderPopup;
 class Dialpad;
 class XqKeyCapture;
+class DialpadKeyHandler;
 
 #ifdef BUILD_PHONEUIQTVIEW
 #define PHONEUIQTVIEW_EXPORT Q_DECL_EXPORT
@@ -224,6 +225,20 @@
     */
     HbMenu &menuReference();
 
+    /*!
+        \fn void PhoneUIQtViewIF::captureKey()
+        
+        Captures key.
+    */
+    void captureKey(Qt::Key key, bool capture);
+    
+    /*
+        \fn void setRestrictedMode()
+        
+        Sets Ui to restricted mode. Decides which keyevent are allowed.
+     */
+    void setRestrictedMode(bool restrictedMode);
+    
 public slots:
 
     /*!
@@ -378,6 +393,9 @@
     QSignalMapper       *m_menuSignalMapper;
     XqKeyCapture        *m_keyCapture;
     QSystemNetworkInfo  *m_networkInfo;
+    QList<Qt::Key>      m_keyCaptures;
+    DialpadKeyHandler   *m_dialpadKeyHandler;
+    bool                m_restrictedMode;
 };
 
 #endif // PHONEUIQTVIEW_H
--- a/phoneapp/phoneuiview2/inc/phoneuiqtviewif.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiview2/inc/phoneuiqtviewif.h	Tue Jul 06 14:15:47 2010 +0300
@@ -210,6 +210,20 @@
        Returns HbMenu reference.
     */
     virtual HbMenu &menuReference() = 0;
+    
+    /*!
+        \fn void PhoneUIQtViewIF::captureKey()
+        
+        Captures key.
+    */
+    virtual void captureKey(Qt::Key key, bool capture) = 0;
+    
+    /*
+        \fn void setRestrictedMode()
+        
+        Sets Ui to restricted mode. Decides which keyevent are allowed.
+     */
+    virtual void setRestrictedMode(bool restrictedMode) = 0;
 };
 
 #endif // PHONEUIQTVIEWIF_H
--- a/phoneapp/phoneuiview2/src/phoneuiqtview.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiview2/src/phoneuiqtview.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 #include <hbinstance.h>
-#include <qsignalmapper>
+#include <QSignalMapper>
 #include <hbaction.h>
 #include <hbtoolbar.h>
 #include <hbvolumesliderpopup.h>
@@ -36,12 +36,19 @@
 PhoneUIQtView::PhoneUIQtView (HbMainWindow &window, QGraphicsItem *parent) :
     HbView (parent),
     m_window(window),
+    m_bubbleManager(0),
+    m_signalMapper(0),
     m_volumeSlider (0),
     m_expandSignalMapper(0),
     m_participantListSignalMapper(0),
     m_volumeCommandId(0),
+    m_backAction(0),
+    m_dialpad(0),
+    m_menuSignalMapper(0),
     m_keyCapture(0),
-    m_networkInfo(0)
+    m_networkInfo(0),
+    m_dialpadKeyHandler(0),
+    m_restrictedMode(false)
 {
     // Set network name
     m_networkInfo = new QSystemNetworkInfo(this);
@@ -49,24 +56,19 @@
     if(networkName.isEmpty()) {
         networkName = m_networkInfo->networkName(QSystemNetworkInfo::GsmMode);
     }
-    connect(m_networkInfo, SIGNAL (networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)), this, SLOT(networkNameChanged(QSystemNetworkInfo::NetworkMode, QString)));
+    connect(m_networkInfo, SIGNAL (networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)),
+            this, SLOT(networkNameChanged(QSystemNetworkInfo::NetworkMode, QString)));
     setTitle(networkName);
 
     // Capturing long press of end key
     m_keyCapture = new XqKeyCapture();
-    m_keyCapture->captureLongKey(Qt::Key_No);
-    m_keyCapture->captureKey(Qt::Key_No);
     
     // Dialpad
     m_dialpad = new Dialpad(m_window);
     m_dialpad->setCallButtonEnabled(false);
     m_dialpad->setTapOutsideDismiss(true);
-    connect(&m_dialpad->editor(),SIGNAL(contentsChanged()),
-            SLOT(onEditorContentChanged()));
     connect(m_dialpad,SIGNAL(aboutToClose()),this,
                 SLOT(dialpadClosed()));
-    // enable key sequence handling during a call
-    new DialpadKeyHandler(m_dialpad, DialpadKeyHandler::KeySequence, this);
     
     // Call handling widget
     m_bubbleManager = new BubbleManager (this);
@@ -91,6 +93,9 @@
     setNavigationAction(m_backAction);
 
     createToolBarActions();
+
+    // Set restricted mode off, normal state
+    setRestrictedMode(false);
 }
 
 PhoneUIQtView::~PhoneUIQtView ()
@@ -405,6 +410,23 @@
     return *menu();
 }
 
+void PhoneUIQtView::captureKey(Qt::Key key, bool capture)
+{
+    if (capture) {
+        if (!m_keyCaptures.contains(key)) {
+            m_keyCapture->captureLongKey(key);
+            m_keyCapture->captureKey(key);
+            m_keyCaptures.append(key);
+        }
+    } else {
+        if (m_keyCaptures.contains(key)) {
+            m_keyCapture->cancelCaptureKey(key);
+            m_keyCapture->cancelCaptureLongKey(key);
+            m_keyCaptures.removeOne(key);
+        }
+    }
+}
+
 void PhoneUIQtView::handleOrientationChange(Qt::Orientation orientation)
 {
     if (orientation==Qt::Horizontal) {
@@ -436,20 +458,30 @@
 {
     Q_UNUSED(watched);
     PHONE_DEBUG2("PhoneUIQtView::eventFilter event type:", event->type());
+    
+    // Allow send key only when there is callbutton enabled or no text in input field
+    bool sendKeyAllowed = m_dialpad->isCallButtonEnabled() || 
+            (m_dialpad->editor().text().length() == 0);
+    
     if(event->type() == QEvent::KeyPress) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
         PHONE_DEBUG2("PhoneUIQtView::eventFilter pressed key:", keyEvent->key());
         PHONE_DEBUG2("PhoneUIQtView::eventFilter isAutoRepeat:", keyEvent->isAutoRepeat());
-        emit keyPressed(keyEvent);        
-        keyEvent->accept();
+        if ( (keyEvent->key() != Qt::Key_Yes && keyEvent->key() != Qt::Key_Enter) ||
+                sendKeyAllowed) {
+            emit keyPressed(keyEvent);        
+            keyEvent->accept();
+        }
         
         return false;
     } else if(event->type() == QEvent::KeyRelease) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
         PHONE_DEBUG2("PhoneUIQtView::eventFilter released key:", keyEvent->key());
-        emit keyReleased(keyEvent);
-        keyEvent->accept();
-        
+        if ( (keyEvent->key() != Qt::Key_Yes && keyEvent->key() != Qt::Key_Enter) ||
+                sendKeyAllowed) {
+            emit keyReleased(keyEvent);
+            keyEvent->accept();
+        }
         return false;
     } else if (event->type() == QEvent::WindowActivate){
         PHONE_DEBUG("PhoneUIQtView::eventFilter WindowActivate");
@@ -510,7 +542,34 @@
 
 void PhoneUIQtView::setBackButtonVisible(bool visible)
 {
-    m_backAction->setEnabled(visible);
+    if (!m_restrictedMode) {
+        m_backAction->setEnabled(visible);
+    }
+}
+
+void PhoneUIQtView::setRestrictedMode(bool restrictedMode)
+{
+    m_restrictedMode = restrictedMode;
+    m_backAction->setEnabled(!restrictedMode);
+    m_dialpad->setCallButtonEnabled(false);
+    m_dialpad->editor().setText(""); // Clead dialpad
+    if (m_restrictedMode) {
+        delete m_dialpadKeyHandler;
+        m_dialpadKeyHandler = 0;
+        m_dialpadKeyHandler = new DialpadKeyHandler(
+                m_dialpad, DialpadKeyHandler::EmergencyCall, this);
+        disconnect(&m_dialpad->editor(),SIGNAL(contentsChanged()),
+                this, SLOT(onEditorContentChanged())); // Let emergency handler do updating 
+    } else {
+        delete m_dialpadKeyHandler;
+        m_dialpadKeyHandler = 0;
+        // enable key sequence handling during a call
+        m_dialpadKeyHandler = new DialpadKeyHandler(
+                m_dialpad, DialpadKeyHandler::KeySequence, this);
+        connect(&m_dialpad->editor(),SIGNAL(contentsChanged()),
+                SLOT(onEditorContentChanged())); // Update our self
+    }
+    
 }
 
 void PhoneUIQtView::networkNameChanged(QSystemNetworkInfo::NetworkMode mode, const QString &netName)
@@ -520,3 +579,4 @@
         setTitle(netName);
     }	
 }
+
--- a/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -28,12 +28,15 @@
 #include <hbmainwindow.h>
 #include <bubblemanagerif.h>
 #define protected public
+#define private public
 #include "phoneuiqtview.h"
 #undef public
 #include "phoneaction.h"
 #include <hbtoolbar.h>
 #include <hbvolumesliderpopup.h>
 #include <hbaction.h>
+#include <dialpad.h>
+#include <hblineedit.h>
 #include "xqserviceutil.h"
 #include "phoneaction.h"
 
@@ -94,6 +97,8 @@
     void testSetMenuActions();
     void testLongEndKeyPressEventOutsideTelephony();
     void testNetworkNameChanged();
+    void testCaptureKey();
+    void testRestrictedMode();
 
 private:
     int createCallHeader();
@@ -419,11 +424,63 @@
     QCOMPARE(m_networkName, QString("test2"));
 }
 
+void TestPhoneUIQtView::testCaptureKey()
+{
+    m_view->captureKey( Qt::Key_No, true );
+    m_view->captureKey( Qt::Key_No, true );	
+    m_view->captureKey( Qt::Key_Yes, false );
+    m_view->captureKey( Qt::Key_No, false );
+    m_view->captureKey( Qt::Key_No, false );		
+}
+
+void TestPhoneUIQtView::testRestrictedMode()
+{
+    qRegisterMetaType<QKeyEvent*>("QKeyEvent*");
+    QKeyEvent yesDown(QEvent::KeyPress, Qt::Key_Yes, Qt::NoModifier);
+    QKeyEvent yesUp(QEvent::KeyRelease, Qt::Key_Yes, Qt::NoModifier);
+    QKeyEvent oneDown(QEvent::KeyPress, Qt::Key_1, Qt::NoModifier);
+    QKeyEvent oneUp(QEvent::KeyRelease, Qt::Key_1, Qt::NoModifier);
+    QSignalSpy downSpy(m_view, SIGNAL(keyPressed(QKeyEvent*)));
+    QSignalSpy upSpy(m_view, SIGNAL(keyReleased(QKeyEvent*)));
+
+    m_view->setRestrictedMode(true);
+    m_view->m_dialpad->editor().setText("1"); // emits signal
+    QCOMPARE(m_view->m_dialpad->isCallButtonEnabled(), false);
+    m_view->eventFilter(0, &oneDown);
+    m_view->eventFilter(0, &oneUp);
+    m_view->eventFilter(0, &yesDown);
+    m_view->eventFilter(0, &yesUp);
+    QCOMPARE(downSpy.count(), 1); // Only Key_1 is passed
+    QCOMPARE(upSpy.count(), 1); // Only Key_1 is passed
+    QCOMPARE(m_view->m_dialpad->isCallButtonEnabled(), false);
+    QCOMPARE(m_view->m_backAction->isEnabled(), false);
+    
+    // Test backbutton
+    m_view->setBackButtonVisible(true);
+    QCOMPARE(m_view->m_backAction->isEnabled(), false);
+
+    // Test return to normal mode
+    downSpy.clear();
+    upSpy.clear();
+    m_view->setRestrictedMode(false);
+    m_view->m_dialpad->editor().setText("1"); // emits signal
+    QCOMPARE(m_view->m_dialpad->isCallButtonEnabled(), true);
+    m_view->eventFilter(0, &oneDown);
+    m_view->eventFilter(0, &oneUp);
+    m_view->eventFilter(0, &yesDown);
+    m_view->eventFilter(0, &yesUp);
+    QCOMPARE(downSpy.count(), 2);
+    QCOMPARE(upSpy.count(), 2);
+    QCOMPARE(m_view->m_dialpad->isCallButtonEnabled(), true);
+    QCOMPARE(m_view->m_backAction->isEnabled(), true);
+}
+
 void HbView::setTitle (const QString &title)
 {
     m_networkName = title;
 }
 
+
 PHONE_QT_VIEW_TEST_MAIN(TestPhoneUIQtView)
 Q_DECLARE_METATYPE(QKeyEvent *)
 #include "unit_tests.moc"
--- a/phoneengine/audiohandling/data/defaultbeep.rss	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/audiohandling/data/defaultbeep.rss	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-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"
@@ -231,6 +231,33 @@
     // 11 = OPCODE_END
     }
 
+RESOURCE VAR_ARRAY r_net_call_waiting_alternative_tone
+    {
+    sequence={0,17,10,83,20,64,10,83,20,64,125,64,125,64,100,83,20,64,10,83,20,11};
+    // 0  = OPCODE_SEQUENCE_START
+    // 17 = OPCODE_DURATION_UNIT
+    // 10 = duration unit => tone duration is 10ms * tone_tick
+    // 83-64=19=AUD_TONE_NETWORK_DUAL_FREQ_2 = 440Hz
+    // 20 = tone_tick = 200ms
+    // 64-64 = 0 = AUD_TONE_FREQ_OFF         = 0Hz
+    // 10 = tone_tick = 100ms
+    // 83-64=19=AUD_TONE_NETWORK_DUAL_FREQ_2 = 440Hz
+    // 20 = tone_tick = 200ms
+    // 64-64 = 0 = AUD_TONE_FREQ_OFF         = 0Hz
+    // 125 = tone_tick = 1250ms
+    // 64-64 = 0 = AUD_TONE_FREQ_OFF         = 0Hz
+    // 125 = tone_tick = 1250ms
+    // 64-64 = 0 = AUD_TONE_FREQ_OFF         = 0Hz
+    // 100 = tone_tick = 1000ms
+    // 83-64=19=AUD_TONE_NETWORK_DUAL_FREQ_2 = 440Hz
+    // 20 = tone_tick = 200ms
+    // 64-64 = 0 = AUD_TONE_FREQ_OFF         = 0Hz
+    // 10 = tone_tick = 100ms
+    // 83-64=19=AUD_TONE_NETWORK_DUAL_FREQ_2 = 440Hz
+    // 20 = tone_tick = 200ms
+    // 11 = OPCODE_END
+    }
+
 RESOURCE VAR_ARRAY r_data_call_tone
     {
     sequence={0,17,6,2,252,10,8,5,8,84,3,89,3,6,10,247,64,50,7,11};
--- a/phoneengine/audiohandling/group/audiohandling.mmp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/audiohandling/group/audiohandling.mmp	Tue Jul 06 14:15:47 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2004-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,7 @@
 LIBRARY         mediaclientaudio.lib
 LIBRARY         mmfdevsound.lib
 
+LIBRARY         featdiscovery.lib
 LIBRARY         tmsfactory.lib
 LIBRARY         tmsapi.lib
 LIBRARY         libglib.lib
--- a/phoneengine/audiohandling/src/cpeaudiodata.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/audiohandling/src/cpeaudiodata.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -29,6 +29,7 @@
 #include <tms.h>
 #include <tmseffectobsrvr.h>
 #include <tmsglobalvoleffect.h>
+#include <telinformationpskeys.h>
 #include "pepanic.pan"
 #include "cpeaudiodtmftoneplayer.h"
 #include "cpeaudioroutingmonitor.h"
@@ -545,6 +546,16 @@
         {
         output = CTelephonyAudioRouting::ELoudspeaker;
         }
+    else
+        {
+        TInt value; 
+        const TInt err = RProperty::Get( KPSUidTelCarMode, KTelCarMode, value );
+        if ( !err && value == EPSCarModeOn )
+            {
+            output = CTelephonyAudioRouting::ELoudspeaker;
+            }
+        }
+        
     TEFLOGSTRING2( KTAMESINT, "AUD CPEAudioData::RoutePreference() output %d", output );
     return output;
     }
--- a/phoneengine/audiohandling/src/cpeaudioinbandtoneplayer.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/audiohandling/src/cpeaudioinbandtoneplayer.cpp	Tue Jul 06 14:15:47 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"
@@ -26,7 +26,8 @@
 #include    <barsc.h> 
 #include    <barsread.h>
 #include    <data_caging_path_literals.hrh> 
-#include    <defaultbeep.rsg>           
+#include    <defaultbeep.rsg> 
+#include    <featdiscovery.h>
 #include    <pepanic.pan>
 #include    <talogger.h>    
 
@@ -147,7 +148,20 @@
     HBufC8* resourceSpecial = resourceFile.AllocReadL( R_NET_SPECIAL_INFORMATION );
     HBufC8* resourceRadioPath = resourceFile.AllocReadL( R_NET_RADIO_NOT_AVAILABLE );
     HBufC8* resourceRingGoing = resourceFile.AllocReadL( R_NET_RING_GOING );
-    HBufC8* resourceCallWaiting = resourceFile.AllocReadL( R_NET_CALL_WAITING );
+    
+    
+    HBufC8* resourceCallWaiting;
+
+    if ( CFeatureDiscovery::IsFeatureSupportedL( KFeatureIdFfAlternativeCallWaitingTone ) )
+        {
+        resourceCallWaiting = resourceFile.AllocReadL( R_NET_CALL_WAITING_ALTERNATIVE_TONE );
+        }
+    else
+        {
+        resourceCallWaiting = resourceFile.AllocReadL( R_NET_CALL_WAITING );
+        }  
+    
+    
     HBufC8* dataCallTone = resourceFile.AllocReadL( R_DATA_CALL_TONE );
     HBufC8* noSoundSequence = resourceFile.AllocReadL( R_NO_SOUND_SEQUENCE );
     HBufC8* beepSequence = resourceFile.AllocReadL( R_BEEP_SEQUENCE );
--- a/phoneengine/callhandling/src/cpecallhandling.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/callhandling/src/cpecallhandling.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1908,7 +1908,10 @@
     SendMessage( MEngineMonitor::EPEMessageInitiatedEmergencyCall );
     TEFLOGSTRING( KTAINT, "CALL CPECallHandling::DialEmergencyCall start emergency dialing" );
     CPESingleCall* callData = iCallArrayOwner->GetCallObject( KPEEmergencyCallId );
-    callData->DialEmergency( aEmergencyNumber );   
+    if ( callData )
+        {
+        callData->DialEmergency( aEmergencyNumber );   
+        }
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneengine/callhandling/src/cpesupplementaryservicesmonitor.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/callhandling/src/cpesupplementaryservicesmonitor.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -90,6 +90,11 @@
         case ECCESsAnonymousCallBarred: /** Anonymous call barring. */
         case ECCESsOutgoingCallBarred:  /** Outgoing call barring */
             iOwner.SendMessage( MEngineMonitor::EPEMessageCallBarred, KPECallIdNotUsed );
+            if ( aBarringEvent == ECCESsOutgoingCallBarred )
+                {
+                iOwner.SendMessage( MEngineMonitor::EPEMessageOutgoingCallBarred, 
+                                    KPECallIdNotUsed );
+                }
             break;
             
         default:
--- a/phoneengine/engineinfo/inc/cpecallinfo.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/engineinfo/inc/cpecallinfo.h	Tue Jul 06 14:15:47 2010 +0300
@@ -465,6 +465,19 @@
      */
     TPECallOrigin CallOrigin() const;
     
+    /**
+    * Sets the protocol spesific error code
+    * @param aError is the error code from protocol.
+    * @return None.
+    */
+    void SetProtocolError( TInt aError ); 
+    
+    /**
+    * Returns the protocol spesific error code
+    * @return Error code.
+    */
+    TInt ProtocolError() const; 
+    
 private:
     
     /**
@@ -634,6 +647,11 @@
      * Origin of the call. 
      */
     TPECallOrigin iCallOrigin;
+    
+    /**
+     * Protocol error code.
+     */
+    TInt iProtocolError;
     };
 
 #endif // C_CPECALLINFO_H
--- a/phoneengine/engineinfo/inc/cpeengineinfoimpl.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/engineinfo/inc/cpeengineinfoimpl.h	Tue Jul 06 14:15:47 2010 +0300
@@ -88,6 +88,7 @@
     TBool iSecureSpecified;                 // Secure specified status
     TName iDataPortName;                    // the name of data port currently on-loan
     TBool iSwitchToOngoing;                 // Switch to operation status
+    TBool iOutgoingBarringActivated;        // Outgoing barring activated 
     };
 
 NONSHARABLE_STRUCT( TPEConferenceCallInfo ) // Contains conference call related variables 
@@ -1520,6 +1521,32 @@
          * Returns Phonebook contact identifier.
          */
         TInt ContactId2() const;
+        
+        /**
+        * Sets the protocol spesific error code
+        * @param aError is the error code from protocol.
+        * @return None.
+        */
+        void SetProtocolError( TInt aError, TInt aCallId ); 
+ 
+        /**
+        * Returns the protocol spesific error code
+        * @return Error code.
+        */
+        TInt ProtocolError( TInt aCallId ); 
+        
+        /**
+        * Returns flag if the outgoing barring is activated.
+        * @return ETrue if barring activated.
+        */
+        TBool IsOutgoingCallBarringActivated();
+        
+        /**
+        * Sets the flag if the outgoing barring is activated.
+        * @return ETrue if barring activated.
+        */
+        void SetOutgoingCallBarringActivated( 
+                TBool aActivated );
           
     private:
           /**
--- a/phoneengine/engineinfo/inc/mpeengineinfo.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/engineinfo/inc/mpeengineinfo.h	Tue Jul 06 14:15:47 2010 +0300
@@ -697,7 +697,27 @@
         * @param aError is the error code from protocol.
         * @return None.
         */
-        virtual void SetProtocolError( TInt aError ) = 0; 
+        virtual void SetProtocolError( TInt aError, TInt aCallId ) = 0; 
+ 
+        /**
+        * Returns the protocol spesific error code
+        * @return Error code.
+        */
+        virtual TInt ProtocolError( TInt aCallId ) = 0; 
+        
+        /**
+        * Returns flag if the outgoing barring is activated.
+        * @return ETrue if barring activated.
+        */
+        virtual TBool IsOutgoingCallBarringActivated() = 0;
+        
+        /**
+        * Sets the flag if the outgoing barring is activated.
+        * @return ETrue if barring activated.
+        */
+        virtual void SetOutgoingCallBarringActivated( 
+                TBool aActivated ) = 0;
+        
     }; // MPEEngineInfo
     
 #endif      //MPEENGINEINFO_H
--- a/phoneengine/engineinfo/src/cpecallinfo.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/engineinfo/src/cpecallinfo.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -106,6 +106,7 @@
     iDtmfPostFix = KNullDesC;
     iForwardAddressChoices = NULL;
     iCallIndex = KPEInvalidCallIndex;
+    iProtocolError = KErrNotFound;
     }
 
 // ---------------------------------------------------------------------------
@@ -650,5 +651,22 @@
     return iCallOrigin;
     }
     
-   
+// ---------------------------------------------------------------------------
+// Sets the protocol error of a call.
+// ---------------------------------------------------------------------------
+//
+void CPECallInfo::SetProtocolError( TInt aError )
+    {
+    iProtocolError = aError;
+    }
+
+// ---------------------------------------------------------------------------
+// Returns protocol error of a call.
+// ---------------------------------------------------------------------------
+//
+TInt CPECallInfo::ProtocolError() const
+    {
+    return iProtocolError;
+    }
+
 // End of File
--- a/phoneengine/engineinfo/src/cpeengineinfoimpl.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/engineinfo/src/cpeengineinfoimpl.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -94,7 +94,7 @@
     iBasicInfo.iDataPortName = KNullDesC;
     iBasicInfo.iSwitchToOngoing = EFalse;
     iConferenceCallInfo.iConferenceCallState = EPEStateConferenceIdle;
-    
+    iBasicInfo.iOutgoingBarringActivated = EFalse;
     //TODO remove after profile information is available
     iBasicInfo.iRingingVolume = 10;
     }
@@ -2593,12 +2593,51 @@
 
 // -----------------------------------------------------------------------------
 // CPEEngineInfoImpl::SetProtocolError
-// Sets the protocol spesific error code to TPEErrorInfo
+// Sets the protocol spesific error code
+// -----------------------------------------------------------------------------
+//
+void CPEEngineInfoImpl::SetProtocolError( TInt aError, TInt aCallId )
+    {
+    if ( 0<=aCallId && aCallId<iCurrentCalls.Count() )
+        {
+        iCurrentCalls[ aCallId ]->SetProtocolError( aError );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CPEEngineInfoImpl::ProtocolError
+// Returns the protocol spesific error code
 // -----------------------------------------------------------------------------
 //
-void CPEEngineInfoImpl::SetProtocolError( TInt aError )
+TInt CPEEngineInfoImpl::ProtocolError( TInt aCallId )
     {
-    iBasicInfo.iErrorInfo.iProtocolSpesificErrorCode = aError;
+    TInt ret( KErrNotFound );
+    
+    if ( 0<=aCallId && aCallId<iCurrentCalls.Count() )
+        {
+        ret = iCurrentCalls[ aCallId ]->ProtocolError();
+        }
+    
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CPEEngineInfoImpl::IsOutgoingCallBarringActivated
+// -----------------------------------------------------------------------------
+//
+TBool CPEEngineInfoImpl::IsOutgoingCallBarringActivated()
+    {
+    return iBasicInfo.iOutgoingBarringActivated;
+    }
+
+// -----------------------------------------------------------------------------
+// CPEEngineInfoImpl::SetOutgoingCallBarringActivated
+// -----------------------------------------------------------------------------
+//
+void CPEEngineInfoImpl::SetOutgoingCallBarringActivated( 
+        TBool aActivated )
+    {
+    iBasicInfo.iOutgoingBarringActivated = aActivated;
     }
 
 // End of File
--- a/phoneengine/phonecntfinder2/inc/cphcntmatch2.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonecntfinder2/inc/cphcntmatch2.h	Tue Jul 06 14:15:47 2010 +0300
@@ -142,26 +142,31 @@
         */
         CDesCArray& AllDtmfNumbers() const;
 
-
- 
     private:
 
         /**
         * C++ constructor.
         */
         CPhCntMatch2(const QContact aContact);
+        
+        
     private:
+        
         void ConstructL();
         /*
          * checks for exactly 1 item in the list
          */
-         TPtrC FieldValue(const QString& name, const QString& key) const;
+         QString FieldValue(const QString& name, const QString& key) const;
 
     private:    // Data
         const QContact iContact;
         HBufC* iNumber;
         CPhCntContactIdImpl2* iContactId;
-        CDesCArrayFlat* iDummyArray;
+        CDesCArrayFlat* iDTMFArray;
+        QString iFirstname;
+        QString iLastname;
+        QString iPersonalRingtone;
+        QString iCallImage;
 
     };
 
--- a/phoneengine/phonecntfinder2/src/cphcntmatch2.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonecntfinder2/src/cphcntmatch2.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -18,6 +18,7 @@
 #include <qcontactdetail.h>
 #include <qcontactname.h>
 #include <qcontactavatar.h>
+#include <qcontactringtone.h>
 #include <qcontactphonenumber.h>
 #include <qtcontactsglobal.h>
 #include "cphcntmatch2.h"
@@ -31,7 +32,7 @@
 // ---------------------------------------------------------------------------
 //
 CPhCntMatch2::CPhCntMatch2(const QContact aContact):
-iContact(aContact), iNumber(NULL), iContactId(NULL), iDummyArray(NULL)
+iContact(aContact), iNumber(NULL), iContactId(NULL), iDTMFArray(NULL)
     {
     }
 
@@ -42,7 +43,7 @@
 CPhCntMatch2::~CPhCntMatch2()
     {
     delete iNumber;
-    delete iDummyArray;
+    delete iDTMFArray;
     delete iContactId; 
     }
     
@@ -85,25 +86,7 @@
 //
 MPhCntMatch::TNumberType CPhCntMatch2::NumberType() const
 {
-
-    MPhCntMatch::TNumberType valueToReturn = MPhCntMatch::EMobileNumber;
-    /* -> TODO not yet supported
-    switch (iContact->field(fieldNumber).property())
-        {
-        case propertyMobile: 
-            {
-            valueToReturn = MPhCntMatch::EMobileNumber;
-            break;
-            }
-        default:
-            {
-            valueToReturn = MPhCntMatch::ENone;
-            }
-        
-        }//switch
-    */
-    
-    return valueToReturn;
+    return MPhCntMatch::ENone;
 }
 
 // -----------------------------------------------------------------------------
@@ -122,7 +105,7 @@
 //
 TPtrC CPhCntMatch2::FirstName() const
 {
-    return FieldValue(QContactName::DefinitionName, QContactName::FieldFirstName); 
+    return iFirstname.utf16();
 
 }
 // -----------------------------------------------------------------------------
@@ -131,7 +114,7 @@
 //
 TPtrC CPhCntMatch2::LastName() const
 {
-    return FieldValue(QContactName::DefinitionName, QContactName::FieldLastName);
+    return iLastname.utf16();
    
 }
 // -----------------------------------------------------------------------------
@@ -148,10 +131,14 @@
 //
 TPtrC CPhCntMatch2::Number() const
 {
-//how many numbers are returned here? should be only one that matched
-    return iNumber? iNumber->Des() : 
-           FieldValue(QContactPhoneNumber::DefinitionName, 
-                      QContactPhoneNumber::FieldNumber);
+    //how many numbers are returned here? should be only one that matched 
+    if ( iNumber == NULL ) {
+   
+    TPtrC ptr(FieldValue(QContactPhoneNumber::DefinitionName, 
+               QContactPhoneNumber::FieldNumber).utf16());
+    const_cast<HBufC*>(iNumber) = ptr.Alloc();
+    }  
+    return iNumber->Des();
 }
 // -----------------------------------------------------------------------------
 // PersonalRingingTone
@@ -159,20 +146,7 @@
 //
 TPtrC CPhCntMatch2::PersonalRingingTone() const
 {
-    /*
-    //TODO
-    QString returnValue;
-    QList<QContactAvatar> details = iContact.details<QContactAvatar>();
-    
-    for (int i=0;i<details.count();++i) {
-        if (details.at(i).subType() == QContactAvatar::SubTypeAudioRingtone) {
-            returnValue = details.at(i).avatar();
-            break;
-        }
-    }
-
-    return returnValue.utf16();*/
-    return KNullDesC();
+    return iPersonalRingtone.utf16();
 }
 // -----------------------------------------------------------------------------
 // BelongsToGroups
@@ -205,17 +179,7 @@
 //       
 TPtrC CPhCntMatch2::CallImage() const
 {
-    QString returnValue;
-    QList<QContactAvatar> details = iContact.details<QContactAvatar>();
-
-    for (int i=0;i<details.count();++i) {
-        if (!details.at(i).imageUrl().isEmpty()) {
-            returnValue = details.at(i).imageUrl().toEncoded();
-            break;
-        }
-    }
-    
-    return returnValue.utf16();
+    return iCallImage.utf16();
 }
 // -----------------------------------------------------------------------------
 // HasThumbnailImage
@@ -231,7 +195,7 @@
 //
 CDesCArray& CPhCntMatch2::AllDtmfNumbers() const
 {
-    return *iDummyArray;
+    return *iDTMFArray;
 }
 // -----------------------------------------------------------------------------
 // SetNumberL
@@ -252,14 +216,41 @@
 void CPhCntMatch2::ConstructL()
     {
     iContactId = CPhCntContactIdImpl2::NewL(iContact);
-    iDummyArray = new CDesCArrayFlat(1);
+    iDTMFArray = new CDesCArrayFlat(1);
+    
+    //Get first and last name
+    iFirstname = FieldValue(
+             QContactName::DefinitionName,
+             QContactName::FieldFirstName); 
+    
+    
+    iLastname = FieldValue(
+             QContactName::DefinitionName, 
+             QContactName::FieldLastName);
+    
+    //Get caller's image
+    QList<QContactAvatar> details = iContact.details<QContactAvatar>();
+    for (int i=0;i<details.count();++i) {
+        if (!details.at(i).imageUrl().isEmpty()) {
+            iCallImage = details.at(i).imageUrl().toString();
+            break;
+        }
+    }
+    PHONE_DEBUG2("CPhCntMatch2::callImage:: value is :", iCallImage);
+    
+    
+    //Get personal ringtone
+    QContactRingtone ringtonedetail = iContact.detail<QContactRingtone>();
+    iPersonalRingtone = ringtonedetail.audioRingtoneUrl().toString();
+    PHONE_DEBUG2("CPhCntMatch2::personalRingingtone:: value is :", iPersonalRingtone);
+
     }
 
 // -----------------------------------------------------------------------------
 // FieldValue
 // -----------------------------------------------------------------------------
 //
-TPtrC CPhCntMatch2::FieldValue(const QString& name, const QString& key) const
+QString CPhCntMatch2::FieldValue(const QString& name, const QString& key) const
 {
     QString returnValue;
     QList<QContactDetail> details = iContact.details(name);
@@ -268,7 +259,7 @@
         returnValue = details.first().value(key);        
         }
     PHONE_DEBUG4("CPhCntMatch2::FieldValue:: key is :", key, "..value is :", returnValue);
-    return returnValue.utf16();    
+    return returnValue;    
 }
 
 
--- a/phoneengine/phonecntfinder2/tsrc/u_cphcntmatch2/testmatch2.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonecntfinder2/tsrc/u_cphcntmatch2/testmatch2.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -21,21 +21,21 @@
 TARGET = 
 DEPENDPATH += .
 INCLUDEPATH += .
-INCLUDEPATH += ..\..\inc
+INCLUDEPATH += ..\..\..\..\inc
 INCLUDEPATH += \epoc32\include\platform\mw \
-                   \epoc32\include\platform \
-                   \epoc32\include \
-                   \epoc32\include\platform\app \
-                   \epoc32\include\app 
+               \epoc32\include\platform \
+               \epoc32\include \
+               \epoc32\include\platform\app \
+               \epoc32\include\app 
                
 # Input
-HEADERS += ..\mocks\qcontact.h
-HEADERS += ..\mocks\qcontactdetail.h
+#HEADERS += ..\mocks\qcontact.h
+#HEADERS += ..\mocks\qcontactdetail.h
 HEADERS += ..\..\inc\cphcntmatch2.h
 HEADERS += ..\..\inc\cphcntcontactidimpl2.h
 
-SOURCES += ..\mocks\qcontact_stub.cpp
-SOURCES += ..\mocks\qcontactdetail_stub.cpp
+#SOURCES += ..\mocks\qcontact_stub.cpp
+#SOURCES += ..\mocks\qcontactdetail_stub.cpp
 SOURCES += ..\..\src\cphcntmatch2.cpp
 SOURCES += ..\..\src\cphcntcontactidimpl2.cpp
 SOURCES += u_cphcntmatch2.cpp
--- a/phoneengine/phonecntfinder2/tsrc/u_cphcntmatch2/u_cphcntmatch2.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonecntfinder2/tsrc/u_cphcntmatch2/u_cphcntmatch2.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -18,9 +18,14 @@
 #include <QtGui>
 #include <QtTest/QtTest>
 #include <QDebug>
+#include <QMap>
+#include "qcontactdetailfielddefinition.h"
 #include <e32cmn.h> //KNullDesC
 #include "qcontact.h"
 #include "qcontactdetail.h"
+#include "qcontactmanager.h"
+#include "qcontactringtone.h"
+#include "qcontactavatar.h"
 #include "qcontactname.h"
 #include "qcontactphonenumber.h"
 #include "cphcntmatch2.h"
@@ -49,6 +54,7 @@
     //void testSeveralFirstNames();
     //void testEmptyList();
     void testPhoneNumberOverride();
+    void testPhoneNumberNotSet();
     void testRelease();
     void testCli();
     void testContactId();
@@ -66,7 +72,7 @@
     
     CPhCntMatch2* mMatch; // SUT 
     MPhCntMatch* mMatchIf;
-    QContact mContact;
+    QContactManager* cm;
     QContactDetail mDetail;
   
 };
@@ -84,109 +90,168 @@
 
 void U_CPhCntMatch2::initTestCase()
     {
-    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
-    mMatchIf = mMatch;
     
+    cm = new QContactManager();
+    QContact contact;
+    QList<QContactLocalId> contactIds = cm->contactIds();
+    if (!contactIds.isEmpty()) {
+        // removes all contact 
+       /*     for (int i = 0; i < contactIds.count(); i++) 
+                {
+                QContact a = cm->contact(contactIds.at(i));
+                cm->removeContact(a.localId());
+                }*/
+        
+        contact = cm->contact(contactIds.first());
+        qDebug() << "This manager contains" << contact.displayLabel();
+    } else {
+        qDebug() << "This manager contains no contacts";
+    }
+
+    QList<QContactDetail> allDetails = contact.details();
+    for (int i = 0; i < allDetails.size(); i++) {
+        QContactDetail detail = allDetails.at(i);
+        QContactDetailDefinition currentDefinition = cm->detailDefinition(detail.definitionName());
+        QMap<QString, QContactDetailFieldDefinition> fields = currentDefinition.fields();
+
+        qDebug("\tDetail #%d (%s):", i, detail.definitionName().toAscii().constData());
+        foreach (const QString& fieldKey, fields.keys()) {
+            qDebug() << "\t\t" << fieldKey << "(" << fields.value(fieldKey).dataType() << ") =" << detail.value(fieldKey);
+        }
+        qDebug();
+    }
+       
     }
 
 void U_CPhCntMatch2::cleanupTestCase()
     {
     delete mMatch;
+    delete cm;
     }
 
 void U_CPhCntMatch2::testFirstNameEmpty()
     {
-    QVariant name(""); 
-    mDetail.setValue(QContactName::FieldFirst,name);
-    bool err = mContact.saveDetail(&mDetail);
+    QContact contact;
+    QContactName name;
+    name.setFirstName("");
+    bool err = contact.saveDetail(&name); 
+    err = cm->saveContact(&contact);
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
     Q_ASSERT(mMatchIf->FirstName().Length() == 0);
-    // reset mDetail
-    mDetail.removeValue(QContactName::FieldFirst);
+
+    err = contact.removeDetail(&name);
+    err = cm->removeContact(contact.localId());
+
+    qDebug() << "U_CPhCntMatch2 : The first phone number of" << contact.displayLabel()
+                     << "is" << contact.detail(QContactPhoneNumber::DefinitionName).value(QContactPhoneNumber::FieldNumber);
+    
+    qDebug()<<"U_CPhCntMatch2 : contact.details().count() " << contact.details().count();
+    
     }
 
 void U_CPhCntMatch2::testFirstNameNotEmpty()
     {
-     _LIT(KFirstName, "firstname");
-     QString name((QChar*)KFirstName().Ptr(),KFirstName().Length());
-     mDetail.setValue(QContactName::FieldFirst,name);
-     bool err = mContact.saveDetail(&mDetail);
-     delete mMatch;
-     TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
-     mMatchIf = mMatch;
-     qDebug()<<"U_CPhCntMatch2 : mContact.details().count() " << mContact.details().count();
-     qDebug()<<"U_CPhCntMatch2 : mContact.details().at(0).value() " << mContact.details().at(0).value("");
-     HBufC* buf = NULL;
-     buf = mMatchIf->FirstName().AllocL();
-     QString qBuf((QChar*)buf->Ptr(),buf->Length());
-     qDebug()<<"mMatchIf->FirstName() returned...: " << qBuf;
-     Q_ASSERT( *buf == KFirstName()); 
-     delete buf;
-     // reset mDetail
-     mDetail.removeValue(QContactName::FieldFirst);
+    QContact contact;
+    _LIT(KFirstName, "firstname");
+    QContactName name;
+    name.setFirstName("firstname");
+    bool err = contact.saveDetail(&name); 
+    err = cm->saveContact(&contact);    
+
+    qDebug()<<"U_CPhCntMatch2 : contact.details().count() " << contact.details().count();
+    
+    delete mMatch;
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
+    qDebug()<<"U_CPhCntMatch2 : contact.details().count() " << contact.details().count();
+    qDebug()<<"U_CPhCntMatch2 : contact.details().at(0).value() " << contact.details().at(0).value(QContactName::FieldFirstName);
+    HBufC* buf = NULL;
+    buf = mMatchIf->FirstName().AllocL();
+    QString qBuf((QChar*)buf->Ptr(),buf->Length());
+    qDebug()<<"mMatchIf->FirstName() returned...: " << qBuf;
+    Q_ASSERT( *buf == KFirstName()); 
+    delete buf;
+    
+    err = contact.removeDetail(&name);
+    err = cm->removeContact(contact.localId());
     }
 
 void U_CPhCntMatch2::testLastNameEmpty()
     {
-     QVariant name(""); 
-     mDetail.setValue(QContactName::FieldLast,name);
-     bool err = mContact.saveDetail(&mDetail);
-     delete mMatch;
-     TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
-     mMatchIf = mMatch;
-     Q_ASSERT(mMatchIf->LastName().Length() == 0);
-     // reset mDetail
-     mDetail.removeValue(QContactName::FieldLast);
+    QContact contact;
+    QContactName lastname;
+    lastname.setLastName("");
+    bool err = contact.saveDetail(&lastname); 
+    err = cm->saveContact(&contact);
+    delete mMatch;
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
+    Q_ASSERT(mMatchIf->LastName().Length() == 0);
+
+    err = contact.removeDetail(&lastname);
+    err = cm->removeContact(contact.localId());
     }
 
 
 void U_CPhCntMatch2::testLastNameNotEmpty()
     {
+    QContact contact;
     _LIT(KLastName, "lastname");
-    QString name((QChar*)KLastName().Ptr(),KLastName().Length());
-    mDetail.setValue(QContactName::FieldLast,name);
-    bool err = mContact.saveDetail(&mDetail);
+    QContactName lastname;
+    lastname.setLastName("lastname");
+    bool err = contact.saveDetail(&lastname); 
+    err = cm->saveContact(&contact);
     delete mMatch;
-    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
     mMatchIf = mMatch;
     HBufC* buf = NULL;
     buf = mMatchIf->LastName().AllocL();
     QString qBuf((QChar*)buf->Ptr(),buf->Length());
+    qDebug()<<"mMatchIf->LastName() returned...: " << qBuf;
     Q_ASSERT(*buf == KLastName());
     delete buf;
-    qDebug()<<"testLastNameNotEmpty() -- exit ";
-    // reset mDetail
-    mDetail.removeValue(QContactName::FieldLast);
+
+    err = contact.removeDetail(&lastname);
+    err = cm->removeContact(contact.localId());
     }
 
 void U_CPhCntMatch2::testNumberEmpty()
     {
-    QVariant number(""); 
-    mDetail.setValue(QContactPhoneNumber::FieldNumber,number);
-    bool err = mContact.saveDetail(&mDetail);
+    QContact contact;
+    QContactPhoneNumber number;
+    number.setNumber("");
+    bool err = contact.saveDetail(&number); 
+    err = cm->saveContact(&contact);
     delete mMatch;
-    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
     mMatchIf = mMatch;
     Q_ASSERT(mMatchIf->Number().Length() == 0);
-    // reset mDetail
-    mDetail.removeValue(QContactPhoneNumber::FieldNumber);
+
+    err = contact.removeDetail(&number);
+    err = cm->removeContact(contact.localId());
     }
     
 void U_CPhCntMatch2::testNumberNotEmpty()
     {
-    _LIT(KNumber, "05012345678");
-    QString number((QChar*)KNumber().Ptr(),KNumber().Length());
-    mDetail.setValue(QContactPhoneNumber::FieldNumber,number);
-    bool err = mContact.saveDetail(&mDetail);
+    QContact contact;
+    _LIT(KNumber, "0501234567");
+    QContactPhoneNumber number;
+    number.setNumber("0501234567");
+    bool err = contact.saveDetail(&number); 
+    err = cm->saveContact(&contact);
+   
     delete mMatch;
-    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
     mMatchIf = mMatch;
     HBufC* buf = NULL;
     buf = mMatchIf->Number().AllocL();
     QString qBuf((QChar*)buf->Ptr(),buf->Length());
     Q_ASSERT(*buf == KNumber());
     delete buf;
-    // reset mDetail
-    mDetail.removeValue(QContactPhoneNumber::FieldNumber);
+
+    err = contact.removeDetail(&number);
+    err = cm->removeContact(contact.localId());
     }
 /*
 void U_CPhCntMatch2::testSeveralFirstNames() //in case pb returns bad variants
@@ -215,13 +280,17 @@
 */
 void U_CPhCntMatch2::testPhoneNumberOverride()
     {
-    _LIT(KNumber, "05012345678");
+    QContact contact;
+    _LIT(KNumber, "0501234567");
     _LIT(KNumberOverride, "888888888");
-    QString number((QChar*)KNumber().Ptr(),KNumber().Length());
-    mDetail.setValue(QContactPhoneNumber::FieldNumber,number);
-    bool err = mContact.saveDetail(&mDetail);
+    
+    QContactPhoneNumber number;
+    number.setNumber("0501234567");
+    bool err = contact.saveDetail(&number); 
+    err = cm->saveContact(&contact);
+
     delete mMatch;
-    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
     mMatch->SetNumberL(KNumberOverride());
     mMatchIf = mMatch;
     HBufC* buf = NULL;
@@ -229,23 +298,54 @@
     QString qBuf((QChar*)buf->Ptr(),buf->Length());
     Q_ASSERT(*buf == KNumberOverride());
     delete buf;
-    // reset mDetail
-    mDetail.removeValue(QContactPhoneNumber::FieldNumber);
+
+    err = contact.removeDetail(&number);
+    err = cm->removeContact(contact.localId());
+    }
+
+
+void U_CPhCntMatch2::testPhoneNumberNotSet()
+    {
+    QContact contact;
+    _LIT(KNumber, "0501234567");
+    
+    QContactPhoneNumber number;
+    number.setNumber("0501234567");
+    bool err = contact.saveDetail(&number); 
+    err = cm->saveContact(&contact);
+
+    delete mMatch;
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
+    HBufC* buf = NULL;
+    buf = mMatchIf->Number().AllocL();
+    QString qBuf((QChar*)buf->Ptr(),buf->Length());
+    Q_ASSERT(*buf == KNumber());
+    delete buf;
+
+    err = contact.removeDetail(&number);
+    err = cm->removeContact(contact.localId());
     }
 
 void U_CPhCntMatch2::testRelease()
     {
+    QContact contact;
     _LIT(KNumber, "1234");
-    QVariant number("1234"); 
-    mDetail.setValue(QContactPhoneNumber::FieldNumber,number);
-    bool err = mContact.saveDetail(&mDetail);
+    
+    QContactPhoneNumber number;
+    number.setNumber("1234");
+    bool err = contact.saveDetail(&number); 
+    err = cm->saveContact(&contact);
+    
     delete mMatch;
-    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(mContact) );
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
     mMatchIf = mMatch;
     mMatchIf->Release();
     Q_ASSERT(mMatchIf->Number() == KNumber());
-    // reset mDetail
-    mDetail.removeValue(QContactPhoneNumber::FieldNumber);
+
+    
+    err = contact.removeDetail(&number);
+    err = cm->removeContact(contact.localId());
     }
 
 void U_CPhCntMatch2::testCli()
@@ -256,14 +356,28 @@
 
 void U_CPhCntMatch2::testContactId()
     {
+    QContact contact;
+    QContactPhoneNumber number;
+    number.setNumber("1234");
+    bool err = contact.saveDetail(&number); 
+    err = cm->saveContact(&contact);   
+    
+    delete mMatch;
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
+    
     CPhCntContactId* id = NULL;
     id = mMatchIf->ContactId();
-    Q_ASSERT(id->ContactId()== mContact.localId());
+    Q_ASSERT(id->ContactId()== contact.localId());
+    
+    err = contact.removeDetail(&number);
+    err = cm->removeContact(contact.localId());
+    
     }
 
 void U_CPhCntMatch2::testNumberType()
     {
-    Q_ASSERT(mMatchIf->NumberType() == MPhCntMatch::EMobileNumber);
+    Q_ASSERT(mMatchIf->NumberType() == MPhCntMatch::ENone);
     }
 
 void U_CPhCntMatch2::testCompanyName()
@@ -273,7 +387,28 @@
 
 void U_CPhCntMatch2::testPersonalRingingTone()
     {
-    Q_ASSERT(mMatchIf->PersonalRingingTone().Length() == 0);
+    _LIT(KRingtone, "Z:\\Data\\Sounds\\Digital\\Incoming.aac");
+    QContact contact;
+    QUrl name("Z:\\Data\\Sounds\\Digital\\Incoming.aac");
+    QContactRingtone ringtone;
+    ringtone.setAudioRingtoneUrl(name);
+    bool err = contact.saveDetail( &ringtone );
+    err = cm->saveContact(&contact);  
+    
+    delete mMatch;
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
+    
+    HBufC* buf = NULL;
+    buf = mMatchIf->PersonalRingingTone().AllocL();
+    QString qBuf((QChar*)buf->Ptr(),buf->Length());
+    
+   
+    Q_ASSERT(mMatchIf->PersonalRingingTone() == KRingtone());
+    
+    err = contact.removeDetail(&ringtone);
+    err = cm->removeContact(contact.localId());
+      
     }
 
 void U_CPhCntMatch2::testBelongsToGroups()
@@ -294,7 +429,26 @@
 
 void U_CPhCntMatch2::testCallImage()
     {
-    Q_ASSERT(mMatchIf->CallImage().Length() == 0);
+    _LIT(KCallImage, "Z:\\Data\\Images\\Avatar.jpg");
+    QContact contact;
+    QUrl image("Z:\\Data\\Images\\Avatar.jpg");
+    QContactAvatar avatar;
+    avatar.setImageUrl(image);
+    bool err = contact.saveDetail( &avatar );
+    err = cm->saveContact(&contact);  
+    
+    delete mMatch;
+    TRAP_IGNORE( mMatch = CPhCntMatch2::NewL(contact) );
+    mMatchIf = mMatch;
+    
+    HBufC* buf = NULL;
+    buf = mMatchIf->PersonalRingingTone().AllocL();
+    QString qBuf((QChar*)buf->Ptr(),buf->Length());
+    
+    Q_ASSERT(mMatchIf->CallImage() == KCallImage());
+    
+    err = contact.removeDetail(&avatar);
+    err = cm->removeContact(contact.localId());
     }
 
 void U_CPhCntMatch2::testHasThumbnailImage()
Binary file phoneengine/phonemodel/conf/s60telephony.confml has changed
Binary file phoneengine/phonemodel/conf/s60telephony_102828B8.crml has changed
Binary file phoneengine/phonemodel/conf/s60telephony_102828F8.crml has changed
Binary file phoneengine/phonemodel/conf/s60telephony_2001B2E6.crml has changed
--- a/phoneengine/phonemodel/inc/cpemessagehandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/inc/cpemessagehandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -571,10 +571,24 @@
         void HandleDisableService();
 
         /**
+        * Adds SIM rejected MO CS call to logs. 
+        * @param aCallId is the identification number of the call.   
+        * @return KErrNone if succesfull
+        */
+        TInt AddSIMRejectedMoCsCallToLog( const TInt aCallId );
+
+        /**
         * Handle dial service call
         */ 
         TInt HandleDialServiceCall(
             const TBool aClientCall );
+        
+        /**
+        * Returns a boolean to indicate whether network connection 
+        * is allowed or not.  
+        * @return Return a True or False. 
+        */
+        TBool IsNetworkConnectionAllowed() const;
     
     private: // New functions
         
@@ -621,12 +635,6 @@
         TBool AutomaticAnswer( const TInt aCallId ) const;
 
         /**
-        * Returns a boolean to indicate whether emergency call is allowed or not.  
-        * @return Return a True or False. 
-        */
-        TBool IsEmergencyAllowed() const;
-
-        /**
         * Handle Client Call Data.
         * @return Return possible error.
         */
--- a/phoneengine/phonemodel/inc/cpeparsersshandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/inc/cpeparsersshandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -40,6 +40,12 @@
 class CPsuiDivertObs;
 class CPsuiCliObserver;
 
+class PSetCallDivertingWrapper;
+class PSetCallWaitingWrapper;
+class PSetWrapper;
+class PsUiDivertNoteHandler;
+class PsUiWaitingNoteHandler;
+
 // CLASS DECLARATION
 
 /**
@@ -277,23 +283,34 @@
         CPsetContainer* iSettings;
         // Owned phone settings ui container.
         CPsuiContainer* iObsContainer;
-        // Owned call waiting.
-        CPsetCallWaiting* iWaiting;
-        // Owned waiting observer.
-        CPsuiWaitingObs* iCwObserver;
+       
         // Owned call barring.
         CPsetCallBarring* iBarring;
         // Owned call barring observer.
-        CPsuiBarringObs* iCbObserver;
-        // Owned call diverting.
-        CPsetCallDiverting* iDivert;
-        // Owned call diverting observer.
-        CPsuiDivertObs* iCfObserver;
+        CPsuiBarringObs* iCbObserver;    
+    
         // Owned calling line identity.
         CPsetCli* iCli;
         // Owned calling line identity observer.
         CPsuiCliObserver* iCliObserver;
+        
+        
+        // Call diverting. Not own.
+        CPsetCallDiverting* iDivert;  
+        // Call divert wrapper. Not own
+        PSetCallDivertingWrapper* iCallDivertingWrapper;
+        // Call diverting note handler, Own
+        PsUiDivertNoteHandler* iCallDivertingHandler;
+      
+        // Owned call waiting. Now Own
+        CPsetCallWaiting* iWaiting;
+        // Call divert wrapper. Not own
+        PSetCallWaitingWrapper* iCallWaitingWrapper;
+        // Call diverting note handler, Own
+        PsUiWaitingNoteHandler* iCallWaitingHandler;
 
+        // Setting wrappers. Own. 
+        PSetWrapper *iPsetWrapper;  
     };
 
 #endif      // CPEPARSERSSHANDLER_H
--- a/phoneengine/phonemodel/inc/pevirtualengine.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/inc/pevirtualengine.h	Tue Jul 06 14:15:47 2010 +0300
@@ -231,8 +231,6 @@
     TInt iCallId;
     // Error type( Cch or Ccp )
     TPEErrorType iErrorType;
-	//Protocol spesific error code
-	TInt iProtocolSpesificErrorCode;
     };
     
 enum TPECallType
@@ -434,7 +432,6 @@
         EPEMessageShowBTLoopback,
         EPEMessageShowWlanMacAddress,
         EPEMessageSSRequestFailed,
-        EPEMessageBTDebugMode,
 
         // Security messages                  7000 - 7999
         EPEMessageBadBarringPasswordChange  = 7000,
@@ -491,6 +488,7 @@
         EPEMessageTempClirActivationUnsuccessful,
         EPEMessageShowIncCallGroupIndex,
         EPEMessageDataPortLoaned,
+        EPEMessageOutgoingCallBarred,
         // Contact messages                       11400 - 11599
 
         // Error messages                         11600 - 11799
--- a/phoneengine/phonemodel/inc/qtphonelog.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/inc/qtphonelog.h	Tue Jul 06 14:15:47 2010 +0300
@@ -32,11 +32,20 @@
 #define PHONE_DEBUG3(A, B, C)            qDebug() <<A <<B <<C
 #define PHONE_DEBUG4(A, B, C, D)         qDebug() <<A <<B <<C <<D
 
+#ifdef Q_OS_SYMBIAN
 #define PHONE_TRACE                      qDebug() <<__PRETTY_FUNCTION__;
 #define PHONE_TRACE1(A)                  qDebug() <<__PRETTY_FUNCTION__ <<A;
 #define PHONE_TRACE2(A, B)               qDebug() <<__PRETTY_FUNCTION__ <<A <<B
 #define PHONE_TRACE3(A, B, C)            qDebug() <<__PRETTY_FUNCTION__ <<A <<B <<C
 #define PHONE_TRACE4(A, B, C, D)         qDebug() <<__PRETTY_FUNCTION__ <<A <<B <<C <<D
+#else //cannot use __PRETTY_FUNCTION__ in win32
+#define PHONE_TRACE
+#define PHONE_TRACE1(A)                  PHONE_DEBUG(A)
+#define PHONE_TRACE2(A, B)               PHONE_DEBUG(A, B)
+#define PHONE_TRACE3(A, B, C)            PHONE_DEBUG(A, B, C)
+#define PHONE_TRACE4(A, B, C, D)         PHONE_DEBUG(A, B, C, D)
+#endif //Q_OS_SYMBIAN
+
 #else
 #define PHONE_DEBUG(A)
 #define PHONE_DEBUG2(A, B)
@@ -48,7 +57,7 @@
 #define PHONE_TRACE2(A, B)
 #define PHONE_TRACE3(A, B, C)
 #define PHONE_TRACE4(A, B, C, D)
-#endif
+#endif //_DEBUG
 
 #endif
 
--- a/phoneengine/phonemodel/inc/telephonyvariant.hrh	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/inc/telephonyvariant.hrh	Tue Jul 06 14:15:47 2010 +0300
@@ -148,6 +148,14 @@
 #define KTelephonyLVFlagOptionsChange 0x00400000
 
 /**
+* KTelephonyLVFlagForbiddenIcon defines if forbidden feature is enabled.
+* When flag is set, applications should show GSM, WCDMA, GSM/WCDMA 
+* and Forbiddeb icons in manual selection of network.
+* @since Series 60 5.0
+*/
+#define KTelephonyLVFlagForbiddenIcon 0x00800000
+
+/**
 * Ussd ( service command ) shows number of remaining characters 
 * Requirement RM-RIM TOOL ID 107-8820 
 * @since Series 60 3.0
--- a/phoneengine/phonemodel/phonemodel.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/phonemodel.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -32,7 +32,7 @@
                    $$OS_LAYER_GLIB_SYSTEMINCLUDE
     INCLUDEPATH += ../../inc \
                    ../inc \
-                   ../phoneservices/inc
+                   ../phoneservices/inc 
     
     engineDefFiles = \
         "$${LITERAL_HASH}ifdef WINSCW" \
@@ -75,8 +75,10 @@
             -lengineinfo \
             -lmediatorclient \
             -lestor \
-	    -lxqservice \
-            -llibglib
+            -lxqservice \
+            -llibglib \
+            -lpsetwrapper \
+            -lpsuinotes
             
     TARGET.EPOCALLOWDLLDATA =1
     
@@ -183,6 +185,7 @@
 BLD_INF_RULES.prj_exports += "./conf/s60telephony_102828b8.crml APP_LAYER_CRML(s60telephony_102828b8.crml)"
 BLD_INF_RULES.prj_exports += "./conf/s60telephony_102828f8.crml APP_LAYER_CRML(s60telephony_102828f8.crml)"
 BLD_INF_RULES.prj_exports += "./conf/s60telephony_102830b6.crml APP_LAYER_CRML(s60telephony_102830b6.crml)"
+BLD_INF_RULES.prj_exports += "./conf/s60telephony_2001b2e6.crml APP_LAYER_CRML(s60telephony_2001b2e6.crml)"
 
 #Backup registration files
 BLD_INF_RULES.prj_exports += "./data/backup_registration.xml /epoc32/data/z/private/1000a86c/backup_registration.xml"
--- a/phoneengine/phonemodel/src/cpeexternaldatahandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/src/cpeexternaldatahandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -94,7 +94,7 @@
     iAccessorySettingsRepository = CRepository::NewL( KCRUidAccessorySettings );*/
     //iTelephonySettingsRepository = CRepository::NewL( KCRUidTelephonySettings );
     iTelephonyVariationRepository = CRepository::NewL( KCRUidTelVariation );
-    //iCoreApplicationRepository = CRepository::NewL( KCRUidCoreApplicationUIs ); 
+    iCoreApplicationRepository = CRepository::NewL( KCRUidCoreApplicationUIs ); 
    
     TEFLOGSTRING( KTAOBJECT, "PE CPEExternalDataHandler::BaseConstructL 2" );
     }
@@ -128,12 +128,19 @@
         errorCode = iCallDurationDisplay->Get( aValue );
         TEFLOGSTRING2( KTAINT, "CPEExternalDataHandler::Get EPECallDurationDisplaySetting, error code: %d", errorCode );
         }
+    else if ( EPENetworkConnectionAllowedSetting == aSetting )
+        {
+        // Fetches setting that indicates if network connection is allowed,
+        // i.e. is the phone in off-line mode. 
+        errorCode = iCoreApplicationRepository
+                ->Get( KCoreAppUIsNetworkConnectionAllowed, aValue );
+        }
     else
         {
         errorCode = KErrNone;
         aValue = 0;        
         }
-    
+
     // Process Common id
     return errorCode;
     }
--- a/phoneengine/phonemodel/src/cpemessagehandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/src/cpemessagehandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -2404,7 +2404,7 @@
 // Checks if emergency call is allowed. 
 // -----------------------------------------------------------------------------
 //
-TBool CPEMessageHandler::IsEmergencyAllowed() const
+TBool CPEMessageHandler::IsNetworkConnectionAllowed() const
     {
     TBool networkConnectionAllowed( EFalse );
     //It is safe to ignore error code here: a default value of EFalse is used if the get fails
@@ -2821,6 +2821,44 @@
     }
 
 // -----------------------------------------------------------------------------
+// CPEMessageHandler::AddSIMRejectedMoCsCallToLog
+// -----------------------------------------------------------------------------
+//	
+TInt CPEMessageHandler::AddSIMRejectedMoCsCallToLog( const TInt aCallId )
+    {
+    TInt errorCode( ECCPErrorGeneral );
+    
+    errorCode = iCallHandling.GetCallInfo( *iCallInfo, aCallId );
+    
+    if ( errorCode == ECCPErrorNone )
+        {
+        TPEState callState;
+        callState = iCallHandling.GetCallState( aCallId );
+        TPECallType callType;
+		callType = iDataStore.CallType( aCallId );
+
+	    errorCode = ECCPErrorNotFound;
+	            
+        if ( EPEStateIdle == callState 
+             && EPECallTypeCSVoice == callType )
+            {
+            SetPhoneNumberForCallLogging( aCallId );
+            
+            errorCode = UpdateClientInfo( aCallId );       
+            
+            // Calls have to log also without a contact (ECCPErrorNotFound).
+            if ( errorCode == ECCPErrorNone || errorCode == ECCPErrorNotFound )
+                {
+                // Save the rest of information to EngineInfo.
+                SetLoggingInfo( aCallId, callState );
+                errorCode = iLogHandling.SaveCallEntry( aCallId );
+                }
+            }
+        }
+    return errorCode;
+    }
+
+// -----------------------------------------------------------------------------
 // CPEMessageHandler::HandleDialCall
 // Handles dial message from dial service
 // 
--- a/phoneengine/phonemodel/src/cpeparsermanufacturerhandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/src/cpeparsermanufacturerhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -101,11 +101,6 @@
             iModel.SendMessage( MEngineMonitor::EPEMessageShowWlanMacAddress );
             break;
             }
-        case EBTDebugMode: // *#2873#
-            {
-            iModel.SendMessage( MEngineMonitor::EPEMessageBTDebugMode );
-            break;
-            }
         default:
             {
             TEFLOGSTRING( KTAERROR, "PE CPEGSMPARSERMANUFACTURERHANDLER::PROCESSCOMMANDL: UNEXPECTED COMMAND" );
--- a/phoneengine/phonemodel/src/cpeparserphonenumberhandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/src/cpeparserphonenumberhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -206,7 +206,7 @@
     TBool isPhoneOffline( EFalse );
 
     if( FeatureManager::FeatureSupported( KFeatureIdOfflineMode )
-        && ( iDataStore.ProfileId() == EProfileOffLineId ) )
+        && ( EFalse == iOwner.IsNetworkConnectionAllowed() ) )
         {
         isPhoneOffline = ETrue;
         }
--- a/phoneengine/phonemodel/src/cpeparsersshandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/src/cpeparsersshandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -43,6 +43,11 @@
 #include <psuiwaitingobs.h>
 #include <talogger.h>
 
+#include <psetwrapper.h>
+#include <psuidivertnotehandler.h>
+#include <psetcalldivertingwrapper.h>
+#include <psuiwaitingnotehandler.h>
+#include <psetcallwaitingwrapper.h>
 
 // CONSTANTS
 const TInt KPEDefinedBasicServiceGroup = 99;
@@ -94,12 +99,13 @@
     delete iCliObserver;
     delete iBarring;
     delete iCbObserver;
-    delete iDivert;
-    delete iCfObserver;
     delete iWaiting;
-    delete iCwObserver;
     delete iSettings;
     delete iObsContainer;
+    
+    delete iCallDivertingHandler;
+    delete iPsetWrapper;
+    
 
     TEFLOGSTRING( KTAOBJECT, "CPEParserSSHandler::~CPEParserSSHandler" );
     }
@@ -972,12 +978,14 @@
 void CPEParserSSHandler::CreateCWObsL()
     {
     ConnectToSsEngineL();
-    //call waiting observer and engine
-    if ( !iCwObserver )
+   
+    if ( !iPsetWrapper )
         {
-        iCwObserver = iObsContainer->CreateCWObsL();
-        iWaiting = iSettings->CreateCWObjectL( *iCwObserver );
-        iWaiting->SetRequestObserver( this );
+        iPsetWrapper = new PSetWrapper;    
+        iCallWaitingWrapper = &iPsetWrapper->callWaitingWrapper();
+        iCallWaitingHandler = new PsUiWaitingNoteHandler(*iCallWaitingWrapper);
+        iWaiting = &iCallWaitingWrapper->getCPsetCallWaiting();
+        iWaiting->SetRequestObserver(this);
         }
     }
 
@@ -1003,13 +1011,13 @@
 //
 void CPEParserSSHandler::CreateCFObsL()
     {
-    ConnectToSsEngineL();
-    //call divert observer and engine
-    if ( !iCfObserver )
-        {   
-        iCfObserver = iObsContainer->CreateCFObsL();
-        iDivert = iSettings->CreateCFObjectL( *iCfObserver );
-        iDivert->SetRequestObserver( this );
+    if ( !iPsetWrapper )
+        {
+        iPsetWrapper = new PSetWrapper;    
+        iCallDivertingWrapper = &iPsetWrapper->callDivertingWrapper();
+        iCallDivertingHandler = new PsUiDivertNoteHandler(*iCallDivertingWrapper);
+        iDivert = &iCallDivertingWrapper->getCPsetCallDiverting();
+        iDivert->SetRequestObserver(this);
         }
     }
     
@@ -1066,26 +1074,31 @@
 //
 void CPEParserSSHandler::ResetVariables()
     {
-    delete iCfObserver;
-    iCfObserver = NULL;
     delete iCbObserver;
     iCbObserver = NULL;
-    delete iCwObserver;
-    iCwObserver = NULL;
     delete iCliObserver;
     iCliObserver = NULL;
-    delete iDivert;
-    iDivert = NULL;
+   
     delete iBarring;
     iBarring = NULL;
-    delete iWaiting;
-    iWaiting = NULL;
+    
     delete iCli;
     iCli = NULL;
     delete iSettings;
     iSettings = NULL;
     delete iObsContainer;
     iObsContainer = NULL;
+    
+    iDivert = NULL;
+    delete iCallDivertingHandler;
+    iCallDivertingHandler = NULL;
+      
+    iWaiting = NULL;
+    delete iCallWaitingHandler;
+    iCallWaitingHandler = NULL;
+    
+    delete iPsetWrapper;
+    iPsetWrapper = NULL;
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneengine/phonemodel/src/cpephonemodel.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phonemodel/src/cpephonemodel.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -599,7 +599,9 @@
             return MESSAGE("EPEMessageTempClirSuppressUnsuccessful");
         case MEngineMonitor::EPEMessageTempClirActivationUnsuccessful:
             return MESSAGE("EPEMessageTempClirActivationUnsuccessful");
-
+        case MEngineMonitor::EPEMessageOutgoingCallBarred:
+            return MESSAGE("EPEMessageOutgoingCallBarred");
+            
         // Contact messages                       11400 - 11599
 
         // Error messages                         11600 - 11799
@@ -914,6 +916,12 @@
             }
         }
 
+    if ( message == MEngineMonitor::EPEMessageOutgoingCallBarred )
+        {
+        iEngineInfo->SetOutgoingCallBarringActivated( ETrue );
+        message = KPEDontSendMessage;
+        }
+    
     if ( ( message == MEngineMonitor::EPEMessageIncoming ) )
         {
         if ( FeatureManager::FeatureSupported( KFeatureIdDriveMode ) )
@@ -968,7 +976,14 @@
 	    TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo();
     	errorInfo.iCallId = aCallId;
     	errorInfo.iErrorType = EPECcp;
-        iEngineMonitor.HandleError( errorInfo );
+
+        if ( ECCPErrorCCCallRejected == errorInfo.iErrorCode )
+            {
+            // Call direction is not set if the call was rejected before Dialing-state
+            iEngineInfo->SetCallDirection( RMobileCall::EMobileOriginated, aCallId );
+            iMessageHandler->AddSIMRejectedMoCsCallToLog( aCallId );
+            }
+    	iEngineMonitor.HandleError( errorInfo );
         }
     else if ( message == MEngineMonitor::EPEMessageServiceHandlingError )
         {
@@ -1091,6 +1106,8 @@
                 {
                 errorCode = iMessageHandler->ContinueSwitchToCall( aCallId );
                 }
+            
+            iEngineInfo->SetOutgoingCallBarringActivated( EFalse );
             break;
 
         case MEngineMonitor::EPEMessageRemoteBusy:
@@ -1510,7 +1527,7 @@
             {
             callError = ( iCallInfo->iExitCode >> KTimesToSplitValue ); 
             //Set protocol spesific error code to TPEErrorInfo
-            EngineInfo()->SetProtocolError( callError );
+            EngineInfo()->SetProtocolError( callError, aCallId );
             }
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/ctiurischemeparser.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,46 @@
+/*!
+* 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: Provides services to parse CTI URIs.
+*
+*/
+
+#ifndef CTIURISCHEMEPARSER_H
+#define CTIURISCHEMEPARSER_H
+
+#include <QObject>
+#include <QString>
+#include "urischemeparser.h"
+
+class CtiUriSchemeParser : public UriSchemeParser
+{
+    Q_OBJECT
+
+public:
+    CtiUriSchemeParser(QObject *parent = 0);
+    ~CtiUriSchemeParser();
+    
+public:
+    bool isSupportedUriScheme(const QString &uri) const;
+    bool parseUri(
+        const QString &uri,
+        QString &phoneNumber,
+        QString &dtmfString) const;
+    
+private:
+    bool validateUri(const QString &uri) const;
+    void removeVisualSeparators(QString &uri) const;
+    void convertToneInputToPostDialDtmfString(QString &uri) const;
+};
+
+#endif // CTIURISCHEMEPARSER_H
--- a/phoneengine/phoneservices/inc/dialservice.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/inc/dialservice.h	Tue Jul 06 14:15:47 2010 +0300
@@ -13,6 +13,26 @@
 *
 * Description:  Dial API to be used through Qt Highway.
 *
+*
+*            Example usage:
+*            QString service("phoneui");
+*            QString interface(""com.nokia.symbian.ICallDial");
+*            QString operation("dial(QString)"); // choose appropriate operation
+*            XQApplicationManager appManager;
+*            QScopedPointer<XQAiwRequest> request(appManager.create(service, interface, operation, false));
+*            if (request == NULL) {
+*                //Service not found 
+*            }
+*            QList<QVariant> args;
+*            args << QString("0501234567"); // number or address
+*            // add contactId and serviceId when needed by operation
+*            request->setArguments(args);
+*            if (request->send()) {
+*               //error
+*            }
+*
+*            Note:
+*            
 */
 
 #ifndef DIALSERVICE_H
@@ -24,6 +44,9 @@
 #include "mpecallcontrolif.h"
 #include "mpecallsettersif.h"
 
+// FORWARD DECLARATIONS
+class XQSettingsManager;
+
 class DialService : public XQServiceProvider
 {
     Q_OBJECT
@@ -37,10 +60,6 @@
         
         This method makes a cellular switched dial command to
         Phone Application. It is intended to be used via Qt Highway.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)");
-        snd << "0501234567";        
     */
     int dial(const QString& number);
     
@@ -51,10 +70,7 @@
         Phone Application. It is intended to be used via Qt Highway.
         Caller's name is shown according to the given Phonebook contact
         identifier.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString,int)");
-        snd << "0501234567" << 123456;        
+     
     */
     int dial(const QString& number, int contactId);
     
@@ -63,10 +79,7 @@
         
         This method makes a video call dial command to
         Phone Application. It is intended to be used via Qt Highway.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)");
-        snd << "0501234567";        
+
     */
     void dialVideo(const QString& number);
 
@@ -77,10 +90,6 @@
         Phone Application. It is intended to be used via Qt Highway.
         Caller's name is shown according to the given Phonebook contact
         identifier.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString,int)");
-        snd << "0501234567" << 123456;        
     */
     void dialVideo(const QString& number, int contactId);
     
@@ -89,10 +98,6 @@
         
         This method makes a voip call dial command to
         Phone Application. It is intended to be used via Qt Highway.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoip(QString)");
-        snd << "address@domain";        
     */
     void dialVoip(const QString& address);
     
@@ -103,10 +108,7 @@
         Phone Application. It is intended to be used via Qt Highway.
         Caller's name is shown according to the given Phonebook contact
         identifier.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoip(QString,int)");
-        snd << "address@domain" << 123456;        
+
     */
     void dialVoip(const QString& address, int contactId);
     
@@ -116,10 +118,6 @@
         This method makes a voip call dial command to
         Phone Application. It is intended to be used via Qt Highway.
         Call is made by given service (id).
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoipService(QString,int)");
-        snd << "address@domain" << 123;        
     */
     void dialVoipService(const QString& address, int serviceId);
     
@@ -131,25 +129,37 @@
         Call is made by given service (id).
         Caller's name is shown according to the given Phonebook contact
         identifier.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoipService(QString,int,int)");
-        snd << "address@domain" << 123 << 12345;        
     */
     void dialVoipService(const QString& address, int serviceId, int contactId);
     
 private:
+	
+    /*!
+        \fn QString modifyPhoneNumber(QString& number)
+        
+        Returns a modified phone number string. Strips white spaces, makes prefix changes etc. 
+    */
+    QString modifyPhoneNumber(const QString &number) Q_REQUIRED_RESULT;
+	
     /*!
         \fn QString simplified(QString& number)
         
         Returns a string that has whitespaces, '(', ')', '-', '[', and ']' chars removed 
     */
     static QString simplified(const QString &number) Q_REQUIRED_RESULT;
+    
+    /*!
+        \fn QString japanPrefixModifications(QString& number)
+        
+        Returns a string that has japan specific configuration modifications made 
+    */
+    QString japanPrefixModifications(const QString &number) Q_REQUIRED_RESULT;
 
 
 private:
-    MPECallControlIF &m_call;
-    MPECallSettersIF &m_parameters;    
+    MPECallControlIF  &m_call;
+    MPECallSettersIF  &m_parameters;
+    XQSettingsManager *m_settingsManager;
 };
 
 #endif // DIALERSERVICE_H
--- a/phoneengine/phoneservices/inc/dtmfservice.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/inc/dtmfservice.h	Tue Jul 06 14:15:47 2010 +0300
@@ -13,6 +13,24 @@
 *
 * Description:  DTMF API to be used through Qt Highway.
 *
+*
+*
+*            Example usage:
+*            QString service("phoneui");
+*            QString interface(""com.nokia.symbian.ICallDial");
+*            QString operation("playDTMFTone(QString)"); // or stopDTMFPlay()
+*            XQApplicationManager appManager;
+*            QScopedPointer<XQAiwRequest> request(appManager.create(service, interface, operation, false));
+*            if (request == NULL) {
+*                //Service not found 
+*            }
+*            QList<QVariant> args;
+*            args << QChar('0');
+*            request->setArguments(args);
+*            if (request->send()) {
+*               //error
+*            }
+*
 */
 
 #ifndef DTMFSERVICE_H
@@ -41,10 +59,6 @@
         This method plays DTMF tone matching given character.
         If character doesn't match any supported DTMF tone
         it is ignored.
-        
-        Usage example:
-        XQServiceRequest snd("com.nokia.symbian.IDtmfPlay","playDTMFTone(QChar)");
-        snd << "5";
     */
     void playDTMFTone(const QChar& keyToPlay);
 
--- a/phoneengine/phoneservices/inc/phoneservices.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/inc/phoneservices.h	Tue Jul 06 14:15:47 2010 +0300
@@ -24,6 +24,7 @@
 
 class DialService;
 class DTMFService;
+class UriSchemeHandlerService;
 
 // Depricated APIs
 class DialServiceDepricated;
@@ -48,7 +49,8 @@
 private:
     QScopedPointer<DialService> dialService;
     QScopedPointer<DTMFService> dtmfService;
-
+    QScopedPointer<UriSchemeHandlerService> uriSchemeHandlerService;
+    
     // Depricated
     QScopedPointer<DialServiceDepricated> dialServiceDepricated;
     QScopedPointer<DTMFServiceDepricated> dtmfServiceDepricated;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/telurischemeparser.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,40 @@
+/*!
+* 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: TEL URI parser.
+*
+*/
+
+#ifndef TELURISCHEMEPARSER_H
+#define TELURISCHEMEPARSER_H
+
+#include <QObject>
+#include <QString>
+#include "urischemeparser.h"
+
+class TelUriSchemeParser : public UriSchemeParser
+{
+    Q_OBJECT
+public:
+    TelUriSchemeParser(QObject *parent = 0);
+    ~TelUriSchemeParser();
+    
+public:
+    bool isSupportedUriScheme(const QString &uri) const;
+    bool parseUri(
+        const QString &uri,
+        QString &phoneNumber,
+        QString &dtmfString) const;
+};
+
+#endif // TELURISCHEMEPARSER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/urischemehandlerservice.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,74 @@
+/*!
+* 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: Provides services to create phone calls via URIs.
+*
+*/
+
+#ifndef URISCHEMEHANDLERSERVICE_H
+#define URISCHEMEHANDLERSERVICE_H
+
+#include <QObject>
+#include <QString>
+#include <xqserviceprovider.h>
+
+class MPECallControlIF;
+class MPECallSettersIF;
+class UriSchemeParser;
+
+class UriSchemeHandlerService : public XQServiceProvider
+{
+    Q_OBJECT
+
+public:
+    UriSchemeHandlerService(
+        MPECallControlIF &call, 
+        MPECallSettersIF &parameters, 
+        QObject *parent = 0);
+    ~UriSchemeHandlerService();
+    
+public slots:
+    /*!
+        \fn view(const QString& uri)
+        
+        This method provides handling for "call" URIs like TEL and CTI.
+        It is intended to be used via Qt Highway.
+        
+        Usage example:
+        QUrl telUri("tel:+358 40 123 4567");
+        QScopedPointer<XQAiwRequest> request(mAiwMgr.create(telUri));
+        if (request.isNull()) {
+            // no handlers for the URI
+            return;
+        }
+        
+        QList<QVariant> args;
+        args << telUri.toString();
+        request->setArguments(args);
+        
+        QVariant uriHandled(false);
+        bool requestOk = request->send(uriHandled);
+    */
+    bool view(const QString &uri);
+
+private:
+    UriSchemeParser *findSchemeParser(const QString &uri);
+    bool verifyClientCapabilities() const;
+    
+private:
+    MPECallControlIF &m_callControlIf;
+    MPECallSettersIF &m_callParameters;
+    QList<UriSchemeParser*> m_parsers;
+};
+
+#endif // URISCHEMEHANDLERSERVICE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/urischemeparser.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,45 @@
+/*!
+* 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: Base class for URI Scheme parsers.
+*
+*/
+
+#ifndef URISCHEMEPARSER_H
+#define URISCHEMEPARSER_H
+
+#include <QObject>
+#include <QString>
+
+class UriSchemeParser : public QObject
+{
+    Q_OBJECT
+
+public:
+    UriSchemeParser(QObject *parent = 0);
+    ~UriSchemeParser();
+    
+    virtual bool isSupportedUriScheme(const QString &uri) const = 0;
+    virtual bool parseUri(
+        const QString &uri,
+        QString &phoneNumber,
+        QString &dtmfString) const = 0;
+
+protected:
+    bool parsePhoneDialString(
+        const QString &uri,
+        QString &phoneNumber,
+        QString &dtmfString) const;
+};
+
+#endif // URISCHEMEPARSER_H
--- a/phoneengine/phoneservices/phoneservices.pri	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/phoneservices.pri	Tue Jul 06 14:15:47 2010 +0300
@@ -19,14 +19,22 @@
     ./src/dialservice.cpp \
     ./src/dtmfservice.cpp \
     ./src/dialservicedepricated.cpp \
-    ./src/dtmfservicedepricated.cpp
+    ./src/dtmfservicedepricated.cpp \
+    ./src/urischemehandlerservice.cpp \
+    ./src/urischemeparser.cpp \
+    ./src/telurischemeparser.cpp \
+    ./src/ctiurischemeparser.cpp
 
 HEADERS=\
     ./inc/phoneservices.h \
     ./inc/dialservice.h \
     ./inc/dtmfservice.h \
     ./inc/dialservicedepricated.h \
-    ./inc/dtmfservicedepricated.h
+    ./inc/dtmfservicedepricated.h \
+    ./inc/urischemehandlerservice.h \
+    ./inc/urischemeparser.h \
+    ./inc/telurischemeparser.h \
+    ./inc/ctiurischemeparser.h
     
 PHONESERVICES_API_HEADERS=\
 		./inc/phoneservices.h
--- a/phoneengine/phoneservices/phoneservices.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/phoneservices.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -17,6 +17,7 @@
 
 TEMPLATE = lib
 TARGET = phoneservices
+CONFIG += hb
 
 symbian {
     TARGET.UID3 = 0x20029F88
@@ -38,7 +39,9 @@
     MMP_RULES += servicesDefFiles
 
     LIBS += -lxqservice \
-            -lxqserviceutil
+            -lxqserviceutil \
+            -lfeatmgr \
+            -lxqsettingsmanager
 }
 
 # Input
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/ctiurischemeparser.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,136 @@
+/*!
+* 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: Provides services to parse CTI URIs.
+*
+*/
+
+#include <QRegExp>
+#include "ctiurischemeparser.h"
+#include "qtphonelog.h"
+
+const QString KCtiUriSchemePrefix = "cti:";
+const QString KVisualSeparators("-.() ");
+const QString KCtiPauseChar = ",";
+const QString KCtiWaitChar = "/";
+const QString KDtmfPauseChar = "p";
+const QString KDtmfWaitChar = "w";
+
+/*!
+  CtiUriSchemeParser::CtiUriSchemeParser.
+ */
+CtiUriSchemeParser::CtiUriSchemeParser(QObject* parent)
+    : 
+    UriSchemeParser(parent)
+{
+    PHONE_DEBUG("CtiUriSchemeParser::CtiUriSchemeParser");
+}
+
+
+/*!
+  CtiUriSchemeParser::~CtiUriSchemeParser.
+ */
+CtiUriSchemeParser::~CtiUriSchemeParser()
+{
+    PHONE_DEBUG("CtiUriSchemeParser::~CtiUriSchemeParser");
+}
+
+
+/*!
+  CtiUriSchemeParser::isSupportedUriScheme.
+ */
+bool CtiUriSchemeParser::isSupportedUriScheme(const QString &uri) const
+{
+    PHONE_DEBUG("CtiUriSchemeParser::isSupportedUriScheme");
+    
+    QRegExp expression(QString("^") + KCtiUriSchemePrefix);
+    return uri.contains(expression);
+}
+
+
+/*!
+  CtiUriSchemeParser::parseUri.
+ */
+bool CtiUriSchemeParser::parseUri(
+    const QString &uri,
+    QString &phoneNumber,
+    QString &dtmfString) const
+{
+    PHONE_DEBUG("CtiUriSchemeParser::parseUri");
+    
+    QString dialString = "";
+    
+    if (validateUri(uri)) {
+        dialString = uri.mid(KCtiUriSchemePrefix.length());
+        
+        removeVisualSeparators(dialString);
+        convertToneInputToPostDialDtmfString(dialString);
+    }
+    
+    return UriSchemeParser::parsePhoneDialString(
+        dialString, phoneNumber, dtmfString);
+}
+
+
+/*!
+  CtiUriSchemeParser::validateUri.
+  Validity rules:
+  1. Uri must start with "cti:"
+  2. + -sign may occur only at the beginning of the URI.
+  3. Uri cannot contain tone input only or start with tone input.
+  4. Uri length must be at least 1. 
+  5. Uri must contain only valid characters.
+  5.1. Phone number part cannot contain tone input characters.
+  6. Uri cannot contain multiple wait characters in succession.
+ */
+bool CtiUriSchemeParser::validateUri(const QString &uri) const
+{
+    PHONE_DEBUG("CtiUriSchemeParser::validateUri");
+    
+    bool isValid = false;
+    
+    QRegExp expression(
+        "^cti:\\+?[\\d-\\.\\(\\) ]{1,}([,/][\\d*#,/-\\.\\(\\) ]*)?$");
+    isValid = uri.contains(expression);
+    if (isValid) {
+        QRegExp validateMultipleWaitExp("//+");
+        isValid = !uri.contains(validateMultipleWaitExp);
+    }
+    
+    return isValid;
+}
+
+
+/*!
+  CtiUriSchemeParser::removeVisualSeparators.
+ */
+void CtiUriSchemeParser::removeVisualSeparators(QString &uri) const
+{
+    PHONE_DEBUG("CtiUriSchemeParser::removeVisualSeparators");
+    
+    QRegExp visualSeparatorExp("[" + QRegExp::escape(KVisualSeparators) + "]");
+    uri.remove(visualSeparatorExp);
+}
+
+
+/*!
+  CtiUriSchemeParser::convertToneInputToPostDialDtmfString.
+ */
+void CtiUriSchemeParser::convertToneInputToPostDialDtmfString(
+    QString &uri) const
+{
+    PHONE_DEBUG("CtiUriSchemeParser::convertToneInputToPostDialDtmfString");
+    
+    uri.replace(KCtiWaitChar, KDtmfWaitChar);
+    uri.replace(KCtiPauseChar, KDtmfPauseChar);
+}
--- a/phoneengine/phoneservices/src/dialservice.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/src/dialservice.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -18,14 +18,23 @@
 #include <xqserviceutil.h>
 #include <e32base.h>
 #include <qregexp.h>
+#include <featmgr.h>
+#include <settingsinternalcrkeys.h>
+#include <xqsettingsmanager.h>
 #include "dialservice.h"
 #include "qtphonelog.h"
 
+// CONSTANTS
+const int MaxPrefixStringLength = 10;
+const XQSettingsKey dialPrefixMode(XQSettingsKey::TargetCentralRepository, KCRUidNetworkSettings.iUid, KSettingsDialPrefixChangeMode);
+const XQSettingsKey dialPrefixString(XQSettingsKey::TargetCentralRepository, KCRUidNetworkSettings.iUid, KSettingsDialPrefixText);
 
 DialService::DialService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
-    XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters)
+    XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters), m_settingsManager(0)
 {
     publishAll();
+    m_settingsManager = new XQSettingsManager(this);
+    Q_ASSERT(m_settingsManager != 0);
 }
 
 DialService::~DialService()
@@ -35,8 +44,8 @@
 int DialService::dial(const QString& number)
 {
     PHONE_DEBUG2("DialService::dial number:", number);
-    QString simplifiedNumber = simplified(number);
-    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    QString phoneNumber = modifyPhoneNumber(number);
+    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
     m_parameters.SetPhoneNumber (numberPtr);
     m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
     return m_call.HandleDialServiceCall ();
@@ -45,8 +54,8 @@
 int DialService::dial(const QString& number, int contactId)
 {
     PHONE_DEBUG4("DialService::dial number:", number, "contactId:", contactId);
-    QString simplifiedNumber = simplified(number);
-    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    QString phoneNumber = modifyPhoneNumber(number);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
     m_parameters.SetPhoneNumber (numberPtr);
     m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
     m_parameters.SetContactId2 (contactId);
@@ -56,8 +65,8 @@
 void DialService::dialVideo(const QString& number)
 {
     PHONE_DEBUG2("DialService::dialVideo number:", number);
-    QString simplifiedNumber = simplified(number);
-    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    QString phoneNumber = modifyPhoneNumber(number);
+    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
     m_parameters.SetPhoneNumber (numberPtr);
     m_parameters.SetCallTypeCommand (EPECallTypeVideo);
     m_call.HandleDialServiceCall ();
@@ -66,8 +75,8 @@
 void DialService::dialVideo(const QString& number, int contactId)
 {
     PHONE_DEBUG4("DialService::dialVideo number:", number, "contactId:", contactId);
-    QString simplifiedNumber = simplified(number);
-    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    QString phoneNumber = modifyPhoneNumber(number);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(phoneNumber.utf16()));
     m_parameters.SetPhoneNumber (numberPtr);
     m_parameters.SetCallTypeCommand (EPECallTypeVideo);
     m_parameters.SetContactId2 (contactId);
@@ -117,6 +126,14 @@
     m_call.HandleDialServiceCall();    
 }
 
+QString DialService::modifyPhoneNumber(const QString &number)
+{
+    QString modifiedNumber = simplified(number);
+    modifiedNumber = japanPrefixModifications(modifiedNumber);
+
+    return modifiedNumber;
+}
+
 QString DialService::simplified(const QString &number)
 {
     QString simplifiedNumber = number;
@@ -124,3 +141,28 @@
     simplifiedNumber.remove(rx);
     return simplifiedNumber;
 }
+
+QString DialService::japanPrefixModifications(const QString &number)
+{    
+    bool checkPrefix = FeatureManager::FeatureSupported(KFeatureIdJapanPrefixChange);
+    if(checkPrefix == false) {
+    	  // prefix change setting is off so don't play with the number
+        return number;
+    }
+    
+    QString modifiedNumber = number;
+    
+    int prefixMode = m_settingsManager->readItemValue(dialPrefixMode, XQSettingsManager::TypeInt).toInt();
+    if((m_settingsManager->error() == XQSettingsManager::NoError) && (prefixMode > 0)) {
+        // No error fetching value and setting is on
+        QString prefixString = m_settingsManager->readItemValue(dialPrefixString, XQSettingsManager::TypeString).toString();
+
+        if(m_settingsManager->error() == XQSettingsManager::NoError) {
+            if(modifiedNumber.startsWith("+")) {
+                modifiedNumber = modifiedNumber.replace(0, prefixString.length(), prefixString);
+            }        	
+        }
+    }
+                	
+    return modifiedNumber;
+}
--- a/phoneengine/phoneservices/src/phoneservices.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/src/phoneservices.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -18,6 +18,7 @@
 #include "phoneservices.h"
 #include "dialservice.h"
 #include "dtmfservice.h"
+#include "urischemehandlerservice.h"
 #include "qtphonelog.h"
 
 // Depricated APIs
@@ -31,7 +32,8 @@
     : 
     QObject(parent),
     dialService(0),
-    dtmfService(0)
+    dtmfService(0),
+    uriSchemeHandlerService(0)
     // Depricated
     , dialServiceDepricated(0)
     , dtmfServiceDepricated(0)
@@ -39,7 +41,9 @@
     PHONE_DEBUG("PhoneServices::PhoneServices");
     dialService.reset(new DialService(call, parameters));
     dtmfService.reset(new DTMFService(call, parameters));
-
+    uriSchemeHandlerService.reset(
+        new UriSchemeHandlerService(call, parameters));
+    
     // Depricated
     dialServiceDepricated.reset(new DialServiceDepricated(call, parameters));
     dtmfServiceDepricated.reset(new DTMFServiceDepricated(call, parameters));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/telurischemeparser.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,123 @@
+/*!
+* 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: TEL URI parser.
+*
+*/
+
+#include <QRegExp>
+#include <QStringList>
+#include "telurischemeparser.h"
+#include "qtphonelog.h"
+
+const QString KTelUriSchemaPrefix = "tel:";
+const QString KPostDialTag = "postd=";
+const QString KSharpDigit = "%23"; 
+const QChar KSplit = ';';
+const QChar KSharpDigitHex = '#';
+const QChar KPauseDigit = 'p';
+
+const QString KWhitespacesAndVisuals = "[\\s,.\\[\\]\\(\\)\\-]";
+const QString KInvalidTelNum = "[^\\d\\+]";
+const QString KInvalidPostDial = "[^\\d*#pw]";
+const QString KNotJustWaitsAndPauses = "[^pw]";
+
+/*!
+  TelUriSchemeParser::TelUriSchemeParser.
+ */
+TelUriSchemeParser::TelUriSchemeParser(QObject* parent) 
+    : 
+    UriSchemeParser(parent)
+{
+    PHONE_DEBUG("TelUriSchemeParser::TelUriSchemeParser");
+}
+
+
+/*!
+  TelUriSchemeParser::~TelUriSchemeParser.
+ */
+TelUriSchemeParser::~TelUriSchemeParser()
+{
+    PHONE_DEBUG("TelUriSchemeParser::~TelUriSchemeParser");
+}
+
+
+/*!
+  TelUriSchemeParser::isSupportedUriScheme.
+ */
+bool TelUriSchemeParser::isSupportedUriScheme(const QString &uri) const
+{
+    PHONE_DEBUG("TelUriSchemeParser::isSupportedUriScheme");
+    
+    QRegExp expression(QString("^") + KTelUriSchemaPrefix);
+    return uri.contains(expression);
+}
+
+
+/*!
+  TelUriSchemeParser::parseUri.
+  Accepted Uri's:
+  1. Uri must start with "tel:1*phonedigit"
+  2. Only "tel:1*phonedigit" and 
+     ";postd=1*(phonedigit / dtmf-digit / pause-character)" tags are recognized
+  3. DTMF digits "A" "B" "C" and "D" are not supported
+  4. ";postd=" can't contain only pause-characters "p" "w" 
+  5. ";postd=" can contain only '*''#''%23''0123456789''p''w' characters
+  6. ";postd=" should start 'p' character, if not it's inserted
+ */
+bool TelUriSchemeParser::parseUri(
+    const QString &uri,
+    QString &phoneNumber,
+    QString &dtmfString) const
+{
+    PHONE_DEBUG("TelUriSchemeParser::parseUri");
+    QString dialString = "";
+    QString postNum;
+    
+    if (uri.startsWith(KTelUriSchemaPrefix,Qt::CaseInsensitive)) {
+        dialString = uri;
+        dialString.remove(QRegExp(KWhitespacesAndVisuals));
+        QStringList list = dialString.split(KSplit);
+        dialString = list.at(0).mid(KTelUriSchemaPrefix.length());
+        if (dialString.contains(QRegExp(KInvalidTelNum))) {
+            dialString.clear();
+        } else{
+            for(int i = 1; i < list.count(); i++){
+                if(list.at(i).startsWith(KPostDialTag,Qt::CaseInsensitive)){
+                    postNum = list.at(i).mid(KPostDialTag.length());
+                    //found, check sharp digit
+                    int ndx = postNum.indexOf(KSharpDigit);
+                    while(-1 != ndx){
+                        postNum.replace(ndx, KSharpDigit.length(),KSharpDigitHex);
+                        ndx = postNum.indexOf(KSharpDigit);
+                    }
+                    //now check if it's valid
+                    if(postNum.contains(QRegExp(KInvalidPostDial))||
+                        !postNum.contains(QRegExp(KNotJustWaitsAndPauses))){
+                        postNum.clear();
+                    }else{
+                        //finally check it's starting with 'p'
+                        if(KPauseDigit != postNum.at(0)){
+                            postNum.insert(0,KPauseDigit);
+                        }
+                        dialString += postNum;
+                    }
+                }
+            }
+        }
+    }
+    
+    PHONE_DEBUG2("TelUriSchemeParser::parseUri: ", dialString);
+    return UriSchemeParser::parsePhoneDialString(
+        dialString, phoneNumber, dtmfString);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/urischemehandlerservice.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,132 @@
+/*!
+* 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: Provides services to create phone calls via URIs.
+*
+*/
+
+#include <HbMessageBox>
+#include <HbDeviceMessageBox>
+#include <e32capability.h>
+#include "urischemehandlerservice.h"
+#include "mpecallcontrolif.h"
+#include "mpecallsettersif.h"
+#include "ctiurischemeparser.h"
+#include "telurischemeparser.h"
+#include "qtphonelog.h"
+
+/*!
+  UriSchemeHandlerService::UriSchemeHandlerService.
+ */
+UriSchemeHandlerService::UriSchemeHandlerService(
+    MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent)
+    : 
+    XQServiceProvider(
+        QLatin1String("phoneui.com.nokia.symbian.IUriView"), parent),
+    m_callControlIf(call),
+    m_callParameters(parameters)
+{
+    PHONE_DEBUG("UriSchemeHandlerService::UriSchemeHandlerService");
+    
+    publishAll();
+    
+    QScopedPointer<UriSchemeParser> telUriParser( 
+        new TelUriSchemeParser(this));
+    m_parsers.append(telUriParser.data());
+    telUriParser.take();
+    
+    QScopedPointer<UriSchemeParser> ctiUriParser(
+        new CtiUriSchemeParser(this));
+    m_parsers.append(ctiUriParser.data());
+    ctiUriParser.take();
+}
+
+
+/*!
+  UriSchemeHandlerService::~UriSchemeHandlerService.
+ */
+UriSchemeHandlerService::~UriSchemeHandlerService()
+{
+    PHONE_DEBUG("UriSchemeHandlerService::~UriSchemeHandlerService");
+}
+
+
+/*!
+  UriSchemeHandlerService::view.
+ */
+bool UriSchemeHandlerService::view(const QString &uri)
+{
+    PHONE_DEBUG2("UriSchemeHandlerService::view URI:", uri);
+    
+    bool handled = false;
+    
+    UriSchemeParser* schemeParser = findSchemeParser(uri);
+    if (schemeParser && verifyClientCapabilities()) {
+        QString phoneNumber = "";
+        QString dtmfString = "";
+        if (schemeParser->parseUri(uri, phoneNumber, dtmfString)) {
+            QString dialString = phoneNumber + dtmfString;
+            
+            HbDeviceMessageBox confirmationNote(
+                hbTrId("txt_phone_info_call_l1").arg(dialString),
+                HbMessageBox::MessageTypeQuestion, 
+                NULL);
+            confirmationNote.setTimeout(0);
+            
+            const QAction *action = confirmationNote.exec();
+            if (confirmationNote.isAcceptAction(action)) {
+                m_callParameters.SetPhoneNumber(dialString.utf16());
+                m_callParameters.SetCallTypeCommand(EPECallTypeCSVoice);
+                
+                handled = (KErrNone == m_callControlIf.HandleDialServiceCall());
+                }
+            }
+        }
+    
+    return handled;
+}
+
+
+/*!
+  UriSchemeHandlerService::findSchemeParser.
+ */
+UriSchemeParser* UriSchemeHandlerService::findSchemeParser(
+    const QString &uri)
+{
+    PHONE_DEBUG("UriSchemeHandlerService::findSchemeParser");
+    
+    UriSchemeParser* handler = NULL;
+    
+    QList<UriSchemeParser*>::const_iterator it = m_parsers.constBegin();
+    for (;(it != m_parsers.constEnd()) && (!handler); ++it) {
+        if ((*it)->isSupportedUriScheme(uri)) {
+            handler = (*it); 
+        }
+    }
+    
+    return handler;
+}
+
+
+/*!
+  UriSchemeHandlerService::verifyClientCapabilities.
+  Checks that client has enough capabilities for making a phone call.
+ */
+bool UriSchemeHandlerService::verifyClientCapabilities() const
+{
+    PHONE_DEBUG("UriSchemeHandlerService::verifyClientCapabilities");
+    
+    QSet<int> capabilities = requestInfo().clientCapabilities();
+    return (capabilities.contains(ECapabilityNetworkServices) &&
+            capabilities.contains(ECapabilityNetworkControl));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/urischemeparser.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,76 @@
+/*!
+* 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: Base class for URI Scheme parsers.
+*
+*/
+
+#include <QRegExp>
+#include <pevirtualengine.h>
+#include "urischemeparser.h"
+#include "qtphonelog.h"
+
+const QString KDtmfPauseChar = "p";
+const QString KDtmfWaitChar = "w";
+
+/*!
+  UriSchemeParser::UriSchemeParser.
+ */
+UriSchemeParser::UriSchemeParser(QObject* parent)
+    : 
+    QObject(parent)
+{
+    PHONE_DEBUG("UriSchemeParser::UriSchemeParser");
+}
+
+
+/*!
+  UriSchemeParser::~UriSchemeParser.
+ */
+UriSchemeParser::~UriSchemeParser()
+{
+    PHONE_DEBUG("UriSchemeParser::~UriSchemeParser");
+}
+
+
+/*!
+  UriSchemeParser::parsePhoneDialString.
+ */
+bool UriSchemeParser::parsePhoneDialString(
+    const QString &dialString,
+    QString &phoneNumber,
+    QString &dtmfString) const
+{
+    PHONE_DEBUG("UriSchemeParser::parsePhoneDialString");
+    
+    bool parsingResult = false;
+    
+    int dialStringLength = dialString.length();
+    if ((dialStringLength <= 0) || 
+        (KPEPhoneNumberMaxLength < dialStringLength)) {
+        parsingResult = false;
+        phoneNumber.clear();
+        dtmfString.clear();
+    } else {
+        parsingResult = true;
+        QRegExp dtmfFindExp(
+            QString("[") + KDtmfPauseChar + KDtmfWaitChar + QString("]"));
+        int dtmfPostfixIndex = dialString.indexOf(dtmfFindExp);
+        phoneNumber = dialString.left(dtmfPostfixIndex);
+        if (0 <= dtmfPostfixIndex) {
+            dtmfString = dialString.mid(dtmfPostfixIndex);
+        }
+    }
+    
+    return parsingResult;
+}
--- a/phoneengine/phoneservices/tsrc/runtests.bat	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/runtests.bat	Tue Jul 06 14:15:47 2010 +0300
@@ -27,3 +27,15 @@
 del \epoc32\winscw\c\private\EEE39B2F\ut_dtmfservice.log
 \epoc32\release\winscw\udeb\ut_dtmfservice.exe -o ut_dtmfservice.log
 type \epoc32\winscw\c\private\EEE39B2F\ut_dtmfservice.log
+
+del \epoc32\winscw\c\private\E31F4ECF\ut_ctiurischemeparser.log
+\epoc32\release\winscw\udeb\ut_ctiurischemeparser.exe -o ut_ctiurischemeparser.log
+type \epoc32\winscw\c\private\E31F4ECF\ut_ctiurischemeparser.log
+
+del \epoc32\winscw\c\private\E31F4EAF\ut_telurischemeparser.log
+\epoc32\release\winscw\udeb\ut_telurischemeparser.exe -o ut_telurischemeparser.log
+type \epoc32\winscw\c\private\E31F4EAF\ut_telurischemeparser.log
+
+del \epoc32\winscw\c\private\E31F4EDA\ut_urischemehandlerservice.log
+\epoc32\release\winscw\udeb\ut_urischemehandlerservice.exe -o ut_urischemehandlerservice.log
+type \epoc32\winscw\c\private\E31F4EDA\ut_urischemehandlerservice.log
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_ctiurischemeparser.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include "ctiurischemeparser.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CtiUriSchemeParser::CtiUriSchemeParser
+// -----------------------------------------------------------------------------
+//
+CtiUriSchemeParser::CtiUriSchemeParser( 
+        QObject * parent )
+    :
+    UriSchemeParser(parent)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CtiUriSchemeParser::~CtiUriSchemeParser
+// -----------------------------------------------------------------------------
+//
+CtiUriSchemeParser::~CtiUriSchemeParser(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CtiUriSchemeParser::isSupportedUriScheme
+// -----------------------------------------------------------------------------
+//
+bool CtiUriSchemeParser::isSupportedUriScheme( 
+        const QString & uri ) const
+    {
+    SMC_MOCK_METHOD1( bool, const QString &, uri )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CtiUriSchemeParser::parseUri
+// -----------------------------------------------------------------------------
+//
+bool CtiUriSchemeParser::parseUri( 
+        const QString & uri,
+        QString &phoneNumber,
+        QString &dtmfString ) const
+    {
+    SMC_MOCK_METHOD3( bool, 
+        const QString &, uri,
+        QString &, phoneNumber,
+        QString &, dtmfString)
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_hbdevicemessagebox.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,354 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include <hbdevicemessagebox.h>
+#include <QAction>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::HbDeviceMessageBox
+// -----------------------------------------------------------------------------
+//
+HbDeviceMessageBox::HbDeviceMessageBox( 
+        HbMessageBox::MessageBoxType type,
+        QObject * parent )
+    :
+    QObject(parent)
+    {
+    Q_UNUSED(type)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::HbDeviceMessageBox
+// -----------------------------------------------------------------------------
+//
+HbDeviceMessageBox::HbDeviceMessageBox( 
+        const QString & text,
+        HbMessageBox::MessageBoxType type,
+        QObject * parent )
+    :
+    QObject(parent)
+    {
+    Q_UNUSED(text)
+    Q_UNUSED(type)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::~HbDeviceMessageBox
+// -----------------------------------------------------------------------------
+//
+HbDeviceMessageBox::~HbDeviceMessageBox(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::question
+// -----------------------------------------------------------------------------
+//
+bool HbDeviceMessageBox::question( 
+        const QString & text,
+        const QString & acceptButtonText,
+        const QString & rejectButtonText )
+    {
+    SMC_MOCK_METHOD3( bool, const QString &, text, 
+        const QString &, acceptButtonText, 
+        const QString &, rejectButtonText )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::information
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::information( 
+        const QString & text )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, text )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::warning
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::warning( 
+        const QString & text )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, text )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::show
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::show(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::update
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::update(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::close
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::exec
+// -----------------------------------------------------------------------------
+//
+const QAction * HbDeviceMessageBox::exec(  )
+    {
+    SMC_MOCK_METHOD0( const QAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::triggeredAction
+// -----------------------------------------------------------------------------
+//
+const QAction * HbDeviceMessageBox::triggeredAction(  ) const
+    {
+    SMC_MOCK_METHOD0( const QAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::isAcceptAction
+// -----------------------------------------------------------------------------
+//
+bool HbDeviceMessageBox::isAcceptAction( 
+        const QAction * qAction ) const
+    {
+    SMC_MOCK_METHOD1( bool, const QAction *, qAction )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setMessageBoxType
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setMessageBoxType( 
+        HbMessageBox::MessageBoxType type )
+    {
+    SMC_MOCK_METHOD1( void, HbMessageBox::MessageBoxType, type )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::messageBoxType
+// -----------------------------------------------------------------------------
+//
+HbMessageBox::MessageBoxType HbDeviceMessageBox::messageBoxType(  ) const
+    {
+    SMC_MOCK_METHOD0( HbMessageBox::MessageBoxType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setText
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setText( 
+        const QString & text )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, text )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::text
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::text(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setIconName
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setIconName( 
+        const QString & iconName )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, iconName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::iconName
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::iconName(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setIconVisible
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setIconVisible( 
+        bool visible )
+    {
+    SMC_MOCK_METHOD1( void, bool, visible )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::iconVisible
+// -----------------------------------------------------------------------------
+//
+bool HbDeviceMessageBox::iconVisible(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setAnimationDefinition
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setAnimationDefinition( 
+        QString & animationDefinition )
+    {
+    SMC_MOCK_METHOD1( void, QString &, animationDefinition )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::animationDefinition
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::animationDefinition(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setTimeout
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setTimeout( 
+        int timeout )
+    {
+    SMC_MOCK_METHOD1( void, int, timeout )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setTimeout
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setTimeout( 
+        HbPopup::DefaultTimeout timeout )
+    {
+    SMC_MOCK_METHOD1( void, HbPopup::DefaultTimeout, timeout )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::timeout
+// -----------------------------------------------------------------------------
+//
+int HbDeviceMessageBox::timeout(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setDismissPolicy
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setDismissPolicy( 
+        HbPopup::DismissPolicy dismissPolicy )
+    {
+    SMC_MOCK_METHOD1( void, HbPopup::DismissPolicy, dismissPolicy )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::dismissPolicy
+// -----------------------------------------------------------------------------
+//
+HbPopup::DismissPolicy HbDeviceMessageBox::dismissPolicy(  ) const
+    {
+    SMC_MOCK_METHOD0( HbPopup::DismissPolicy )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setAction
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setAction( 
+        QAction * qAction,
+        ActionRole role )
+    {
+    SMC_MOCK_METHOD2( void, 
+        QAction *, qAction, 
+        ActionRole, role )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::action
+// -----------------------------------------------------------------------------
+//
+QAction * HbDeviceMessageBox::action( 
+        ActionRole role ) const
+    {
+    SMC_MOCK_METHOD1( QAction *, ActionRole, role )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::aboutToClose
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::aboutToClose(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_mpecallcontrolif.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,52 @@
+/*
+* 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 <smcmockclassincludes.h>
+#include "mock_mpecallcontrolif.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPECallControlIFMock::HandleDialServiceCall
+// -----------------------------------------------------------------------------
+//
+TInt CPECallControlIFMock::HandleDialServiceCall( 
+        const TBool aClientCall )
+    {
+    SMC_MOCK_METHOD1( TInt, const TBool, aClientCall )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPECallControlIFMock::HandlePlayDTMFL
+// -----------------------------------------------------------------------------
+//
+void CPECallControlIFMock::HandlePlayDTMFL(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPECallControlIFMock::HandleEndDTMF
+// -----------------------------------------------------------------------------
+//
+TInt CPECallControlIFMock::HandleEndDTMF(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_mpecallcontrolif.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2007-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:  This file contains the interface for dialling a phone call.
+*
+*/
+
+#ifndef CPECALLCONTROLIFMOCK_H
+#define CPECALLCONTROLIFMOCK_H
+
+#include <e32base.h>
+#include "mpecallcontrolif.h"
+
+// CLASS DECLARATION
+
+/**
+*  Dials a phone call. 
+* 
+*  @lib phoneengine.lib
+*  @since S60_10.1
+*/
+NONSHARABLE_CLASS( CPECallControlIFMock ) : public CBase, public MPECallControlIF 
+{
+    public:    //New functions
+
+        /**
+        * Dials a phone call.
+        * @param aClientCall, Informs is the current call client originated or not.
+        *                     By default not client originated.
+        * @return Return possible error code.
+        */
+        TInt HandleDialServiceCall( const TBool aClientCall = EFalse );        
+
+        /**
+        * Starts tone playing. 
+        */
+        void HandlePlayDTMFL();
+
+        /**
+        * Stops tone playing. 
+        * @return error code.
+        */
+        TInt HandleEndDTMF();
+    };
+
+#endif // CPECALLCONTROLIFMOCK_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_mpecallsettersif.cpp	Tue Jul 06 14:15:47 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 <smcmockclassincludes.h>
+#include "mock_mpecallsettersif.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPECallSettersIFMock::SetKeyCode
+// -----------------------------------------------------------------------------
+//
+void CPECallSettersIFMock::SetKeyCode( 
+        const TChar & aKeyCode )
+    {
+    SMC_MOCK_METHOD1( void, const TUint &, static_cast<TUint>(aKeyCode) )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPECallSettersIFMock::SetPhoneNumber
+// -----------------------------------------------------------------------------
+//
+void CPECallSettersIFMock::SetPhoneNumber( 
+        const TPEPhoneNumber & aPhoneNumber )
+    {
+    SMC_MOCK_METHOD1( void, const TPEPhoneNumber &, aPhoneNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPECallSettersIFMock::SetCallTypeCommand
+// -----------------------------------------------------------------------------
+//
+void CPECallSettersIFMock::SetCallTypeCommand( 
+        const TPECallType & aCallType )
+    {
+    SMC_MOCK_METHOD1( void, const TPECallType &, aCallType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPECallSettersIFMock::SetContactId2
+// -----------------------------------------------------------------------------
+//
+void CPECallSettersIFMock::SetContactId2( 
+        const TInt aContactId )
+    {
+    SMC_MOCK_METHOD1( void, const TInt, aContactId )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPECallSettersIFMock::SetServiceIdCommand
+// -----------------------------------------------------------------------------
+//
+void CPECallSettersIFMock::SetServiceIdCommand( 
+        TUint32 aServiceId )
+    {
+    SMC_MOCK_METHOD1( void, TUint32, aServiceId )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_mpecallsettersif.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2007-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:  This file contains the interface for setters needed needed for dialling a phone call.
+*
+*/
+
+#ifndef CPECALLSETTERSIFMOCK_H
+#define CPECALLSETTERSIFMOCK_H
+
+// INCLUDES
+#include <pevirtualengine.h>
+#include "mpecallsettersif.h"
+
+// CLASS DECLARATION
+
+/**
+*  Call for setting needed parameters before making a phone call.
+* 
+*  @lib phoneengine.lib
+*  @since S60_10.1
+*/
+NONSHARABLE_CLASS( CPECallSettersIFMock ) : public CBase, public MPECallSettersIF
+{
+    public:    //New functions
+
+        /**
+        * Sets key code value to TPEBasicInfo-structure
+        * @param aKeyCode is the key code value.
+        * @return None.
+        */
+        void SetKeyCode( const TChar& aKeyCode ); 
+
+        /**
+        * Sets phone number to TPECallCommandInfo-structure
+        * @param aPhoneNumber is the phone number
+        * @return None.
+        */
+        void SetPhoneNumber( const TPEPhoneNumber& aPhoneNumber );
+
+        /**
+        * Sets call type information for following command message
+        * Used for specifying the call type of the next attempted call
+        * @param aCallType is the call type of the next attempted call
+        */
+        void SetCallTypeCommand( const TPECallType& aCallType );
+        
+        /**
+        * Sets call Phonebook contact identifier.
+        * @param aContactId is the contact identifier for a call
+        */
+        void SetContactId2( const TInt aContactId );
+        
+        /**
+        * Sets service identifier.
+        * @param aServiceId service id
+        */
+        void SetServiceIdCommand( TUint32 aServiceId );
+
+    };
+
+#endif // CPECALLSETTERSIFMOCK_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_telurischemeparser.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,70 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include "telurischemeparser.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TelUriSchemeParser::TelUriSchemeParser
+// -----------------------------------------------------------------------------
+//
+TelUriSchemeParser::TelUriSchemeParser( 
+        QObject * parent )
+    :
+    UriSchemeParser(parent)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// TelUriSchemeParser::~TelUriSchemeParser
+// -----------------------------------------------------------------------------
+//
+TelUriSchemeParser::~TelUriSchemeParser(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// TelUriSchemeParser::isSupportedUriScheme
+// -----------------------------------------------------------------------------
+//
+bool TelUriSchemeParser::isSupportedUriScheme( 
+        const QString & uri ) const
+    {
+    SMC_MOCK_METHOD1( bool, const QString &, uri )
+    }
+
+
+// -----------------------------------------------------------------------------
+// TelUriSchemeParser::parseUri
+// -----------------------------------------------------------------------------
+//
+bool TelUriSchemeParser::parseUri( 
+        const QString & uri,
+        QString &phoneNumber,
+        QString &dtmfString ) const
+    {
+    SMC_MOCK_METHOD3( bool, 
+        const QString &, uri,
+        QString &, phoneNumber,
+        QString &, dtmfString)
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_urischemeparser.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,59 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include "urischemeparser.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// UriSchemeParser::UriSchemeParser
+// -----------------------------------------------------------------------------
+//
+UriSchemeParser::UriSchemeParser( 
+        QObject * parent )
+    :
+    QObject(parent)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// UriSchemeParser::~UriSchemeParser
+// -----------------------------------------------------------------------------
+//
+UriSchemeParser::~UriSchemeParser(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// UriSchemeParser::parsePhoneDialString
+// -----------------------------------------------------------------------------
+//
+bool UriSchemeParser::parsePhoneDialString(
+    const QString &dialString,
+    QString &phoneNumber,
+    QString &dtmfString) const
+{
+    SMC_MOCK_METHOD3( bool, 
+        const QString &, dialString,
+        QString &, phoneNumber,
+        QString &, dtmfString)
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_xqrequestinfo.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,199 @@
+/*
+* 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 <QDebug>
+#include <QStringList>
+#include <QSet>
+#include <smcmockclassincludes.h>
+#include "xqrequestinfo.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::XQRequestInfo
+// -----------------------------------------------------------------------------
+//
+XQRequestInfo::XQRequestInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::~XQRequestInfo
+// -----------------------------------------------------------------------------
+//
+XQRequestInfo::~XQRequestInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::isValid
+// -----------------------------------------------------------------------------
+//
+bool XQRequestInfo::isValid(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::setEmbedded
+// -----------------------------------------------------------------------------
+//
+void XQRequestInfo::setEmbedded( 
+        bool on )
+    {
+    SMC_MOCK_METHOD1( void, bool, on )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::isEmbedded
+// -----------------------------------------------------------------------------
+//
+bool XQRequestInfo::isEmbedded(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::setBackground
+// -----------------------------------------------------------------------------
+//
+void XQRequestInfo::setBackground( 
+        bool on )
+    {
+    SMC_MOCK_METHOD1( void, bool, on )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::isBackground
+// -----------------------------------------------------------------------------
+//
+bool XQRequestInfo::isBackground(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::isSynchronous
+// -----------------------------------------------------------------------------
+//
+bool XQRequestInfo::isSynchronous(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::setForeground
+// -----------------------------------------------------------------------------
+//
+void XQRequestInfo::setForeground( 
+        bool on )
+    {
+    SMC_MOCK_METHOD1( void, bool, on )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::isForeground
+// -----------------------------------------------------------------------------
+//
+bool XQRequestInfo::isForeground(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::clientSecureId
+// -----------------------------------------------------------------------------
+//
+quint32 XQRequestInfo::clientSecureId(  ) const
+    {
+    SMC_MOCK_METHOD0( quint32 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::clientVendorId
+// -----------------------------------------------------------------------------
+//
+quint32 XQRequestInfo::clientVendorId(  ) const
+    {
+    SMC_MOCK_METHOD0( quint32 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::clientCapabilities
+// -----------------------------------------------------------------------------
+//
+QSet <int > XQRequestInfo::clientCapabilities(  ) const
+    {
+    SMC_MOCK_METHOD0( QSet <int > )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::id
+// -----------------------------------------------------------------------------
+//
+int XQRequestInfo::id(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::setInfo
+// -----------------------------------------------------------------------------
+//
+void XQRequestInfo::setInfo( 
+        const QString & key,
+        const QVariant & value )
+    {
+    SMC_MOCK_METHOD2( void, const QString &, key, 
+        const QVariant &, value )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::info
+// -----------------------------------------------------------------------------
+//
+QVariant XQRequestInfo::info( 
+        const QString & key ) const
+    {
+    SMC_MOCK_METHOD1( QVariant, const QString &, key )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQRequestInfo::infoKeys
+// -----------------------------------------------------------------------------
+//
+QStringList XQRequestInfo::infoKeys(  ) const
+    {
+    SMC_MOCK_METHOD0( QStringList )
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/shared/mock_xqserviceprovider.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,101 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include <xqserviceprovider.h>
+#include <xqrequestinfo.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::XQServiceProvider
+// -----------------------------------------------------------------------------
+//
+XQServiceProvider::XQServiceProvider( 
+        const QString & service,
+        QObject * parent )
+    :
+    QObject(parent)
+    {
+    Q_UNUSED(service)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::~XQServiceProvider
+// -----------------------------------------------------------------------------
+//
+XQServiceProvider::~XQServiceProvider(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::SetPlugin
+// -----------------------------------------------------------------------------
+//
+void XQServiceProvider::SetPlugin( 
+        QObject * impl_plugin )
+    {
+    SMC_MOCK_METHOD1( void, QObject *, impl_plugin )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::publishAll
+// -----------------------------------------------------------------------------
+//
+void XQServiceProvider::publishAll(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::setCurrentRequestAsync
+// -----------------------------------------------------------------------------
+//
+int XQServiceProvider::setCurrentRequestAsync(  )
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::completeRequest
+// -----------------------------------------------------------------------------
+//
+bool XQServiceProvider::completeRequest( 
+        int index,
+        const QVariant & retValue )
+    {
+    SMC_MOCK_METHOD2( bool, int, index, 
+        const QVariant &, retValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceProvider::requestInfo
+// -----------------------------------------------------------------------------
+//
+XQRequestInfo XQServiceProvider::requestInfo(  ) const
+    {
+    SMC_MOCK_METHOD0( XQRequestInfo )
+    }
+
+
--- a/phoneengine/phoneservices/tsrc/unit.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/unit.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -19,3 +19,6 @@
 SUBDIRS += ut_phoneservices
 SUBDIRS += ut_dialservice
 SUBDIRS += ut_dtmfservice
+SUBDIRS += ut_ctiurischemeparser
+SUBDIRS += ut_telurischemeparser
+SUBDIRS += ut_urischemehandlerservice
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_ctiurischemeparser/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,361 @@
+/*!
+* 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 tests for CTI URI Parser.
+*
+*/
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include "ctiurischemeparser.h"
+
+const QString KCtiUriSchemePrefix = "cti:";
+
+class UT_CtiUriSchemeParser : public QObject, public MockService
+{
+    Q_OBJECT
+    
+public:
+    UT_CtiUriSchemeParser();
+    virtual ~UT_CtiUriSchemeParser();
+
+private slots:
+    void init();
+    void cleanup();
+    
+    void t_isSupportedUriScheme();
+    void t_ctiUriWithLocalNumber();
+    void t_ctiUriWithGlobalNumber();
+    void t_ctiUriWithGlobalNumberAndVisualSeparators();
+    void t_ctiUriWithGlobalNumberAndToneInput();
+    void t_invalidUriWrongSchema();
+    void t_invalidUriTooLongPhoneNumber();
+    void t_invalidUriMultipleWaitInSuccession();
+    void t_invalidUriInvalidCharacters();
+    void t_invalidUriToneInputOnly();
+    void t_invalidUriOnlyVisualSeparators();
+    void t_invalidUriOnlyPausesAndWaits();
+    void t_invalidUriToneInputCharactersInNumber();
+
+private:
+    CtiUriSchemeParser *m_uriParser;
+};
+
+
+UT_CtiUriSchemeParser::UT_CtiUriSchemeParser()
+    :
+    m_uriParser(NULL)
+{
+}
+
+
+UT_CtiUriSchemeParser::~UT_CtiUriSchemeParser()
+{
+    delete m_uriParser;
+}
+
+
+void UT_CtiUriSchemeParser::init()
+{
+    initialize();
+    
+    m_uriParser = new CtiUriSchemeParser();
+}
+
+
+void UT_CtiUriSchemeParser::cleanup()
+{
+    reset();
+    
+    delete m_uriParser;
+    m_uriParser = NULL;
+}
+
+
+void UT_CtiUriSchemeParser::t_isSupportedUriScheme()
+{
+    // valid scheme
+    QString uriWithValidScheme(
+        QString("cti:") +
+        QString("1234567890"));
+    bool result = m_uriParser->isSupportedUriScheme(uriWithValidScheme);
+    
+    QCOMPARE(result, true);   
+    
+    // invalid scheme
+    QString uriWithWrongScheme(
+        QString("tel:") +
+        QString("1234567890"));
+    result = m_uriParser->isSupportedUriScheme(uriWithWrongScheme);
+    
+    QCOMPARE(result, false);   
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_ctiUriWithLocalNumber()
+{
+    QString KExpectedPhoneNumber = "0401234567890";
+    QString KExpectedDtmfString = "";
+    QString ctiUriWithLocalNumber(KCtiUriSchemePrefix + KExpectedPhoneNumber);
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        ctiUriWithLocalNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_ctiUriWithGlobalNumber()
+{
+    QString KExpectedPhoneNumber = "+358401234567890";
+    QString KExpectedDtmfString = "";
+    QString ctiUriWithGlobalNumber(KCtiUriSchemePrefix + KExpectedPhoneNumber);
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        ctiUriWithGlobalNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_ctiUriWithGlobalNumberAndVisualSeparators()
+{
+    QString KExpectedPhoneNumber = "+358401234567890";
+    QString KExpectedDtmfString = "";
+    QString ctiUriWithVisualSeparators("cti:+358-(40)12345.6789 0");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        ctiUriWithVisualSeparators, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_ctiUriWithGlobalNumberAndToneInput()
+{
+    QString KExpectedPhoneNumber = "+358401234567890";
+    QString KExpectedDtmfString = "w0123456789pp*#";
+    QString ctiUriWithNumberAndToneInput("cti:+358401234567890/0123456789,,*#");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        ctiUriWithNumberAndToneInput, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriWrongSchema()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithWrongSchema(
+        QString("tel:") +
+        QString("1234567890"));
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithWrongSchema, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriTooLongPhoneNumber()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithTooLongPhoneNumber(
+        QString("cti:") +
+        QString("12345678901234567890123456789012345678901234567890") +
+        QString("12345678901234567890123456789012345678901234567890") + 
+        QString("1"));
+
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithTooLongPhoneNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriMultipleWaitInSuccession()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithMultipleWaitInSuccession(
+        QString("cti:") +
+        QString("1234567890//123//"));
+
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithMultipleWaitInSuccession, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriInvalidCharacters()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithInvalidCharacters(
+        QString("cti:") +
+        QString("abcdefghijklmnopqrstuvxyz"));
+
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithInvalidCharacters, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);   
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+    
+    QString invalidUri(
+        QString("cti:") +
+        QString("a"));
+    result = m_uriParser->parseUri(
+        invalidUri, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriToneInputOnly()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithToneInputOnly(
+        QString("cti:") +
+        QString("/123,321"));
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithToneInputOnly, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriOnlyVisualSeparators()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithToneInputOnly(
+        QString("cti:") +
+        QString(" -.()"));
+
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithToneInputOnly, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriOnlyPausesAndWaits()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithPausesAndWaitsOnly(
+        QString("cti:") +
+        QString(",,//"));
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithPausesAndWaitsOnly, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+
+void UT_CtiUriSchemeParser::t_invalidUriToneInputCharactersInNumber()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString uriWithToneInputCharactersInNumber1(
+        QString("cti:") +
+        QString("1234567890*#"));
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool result = m_uriParser->parseUri(
+        uriWithToneInputCharactersInNumber1, phoneNumber, dtmfString);
+    
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    
+    QString uriWithToneInputCharactersInNumber2(
+        QString("cti:") +
+        QString("*#1234567890"));
+    result = m_uriParser->parseUri(
+        uriWithToneInputCharactersInNumber2, phoneNumber, dtmfString);
+    QCOMPARE(result, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    
+    QVERIFY(verify());
+}
+
+QTEST_MAIN(UT_CtiUriSchemeParser)
+#include "unit_tests.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_ctiurischemeparser/ut_ctiurischemeparser.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,46 @@
+#
+# 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 = 
+TARGET.UID3 = 0xE31F4ECF
+DEPENDPATH += .
+INCLUDEPATH += . ../shared
+CONFIG += qtestlib
+DEFINES += QT_NO_DEBUG_STREAM
+
+QT -= gui
+
+symbian {
+    TARGET.CAPABILITY = ALL -TCB
+    
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += ../../../../inc
+    
+    # TEST CODE
+    HEADERS += ../../inc/urischemeparser.h     \
+               ../../inc/ctiurischemeparser.h
+    SOURCES += ../../src/urischemeparser.cpp   \
+               ../../src/ctiurischemeparser.cpp
+    SOURCES += unit_tests.cpp
+    
+    #MOCKED DEPENDENCIES
+    SOURCES += ../shared/mock_mpecallsettersif.cpp
+    SOURCES += ../shared/mock_mpecallcontrolif.cpp
+    
+    LIBS += -lmocklib -lsymbianmock
+}
--- a/phoneengine/phoneservices/tsrc/ut_dialservice/ut_dialservice.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/ut_dialservice/ut_dialservice.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -35,7 +35,9 @@
 
     LIBS += -lxqservice \
             -lxqserviceutil \
-            -lphoneuicontrol
+            -lphoneuicontrol \
+            -lfeatmgr \
+            -lxqsettingsmanager
 
     TARGET.CAPABILITY = ALL -TCB
 }
--- a/phoneengine/phoneservices/tsrc/ut_phoneservices/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/ut_phoneservices/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -16,18 +16,22 @@
 */
 
 #include <QtTest/QtTest>
-
-//#include <hbglobal_p.h>
 #include "phoneservices.h"
 #include "dialservice.h"
 #include "dtmfservice.h"
+#include "urischemehandlerservice.h"
 
-bool m_dialServiceConstructed;
-bool m_dtmfServiceConstructed;
-MPECallControlIF* m_dialServiceCallPointer;
-MPECallSettersIF* m_dialServiceParameterPointer;
-MPECallControlIF* m_dtmfServiceCallPointer;
-MPECallSettersIF* m_dtmfServiceParameterPointer;
+bool g_dialServiceConstructed;
+MPECallControlIF* g_dialServiceCallPointer;
+MPECallSettersIF* g_dialServiceParameterPointer;
+
+bool g_dtmfServiceConstructed;
+MPECallControlIF* g_dtmfServiceCallPointer;
+MPECallSettersIF* g_dtmfServiceParameterPointer;
+
+bool g_uriSchemeHandlerServiceConstructed;
+MPECallControlIF* g_uriSchemeServiceCallPointer;
+MPECallSettersIF* g_uriSchemeServiceParameterPointer;
 
 class TestPhoneServices 
     : 
@@ -78,9 +82,9 @@
 DialService::DialService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
     XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters)
 {
-    m_dialServiceConstructed = true;
-    m_dialServiceCallPointer = &call;
-    m_dialServiceParameterPointer = &parameters;
+    g_dialServiceConstructed = true;
+    g_dialServiceCallPointer = &call;
+    g_dialServiceParameterPointer = &parameters;
 }
 
 DialService::~DialService()
@@ -89,59 +93,59 @@
 
 int DialService::dial(const QString& number)
 {
-    Q_UNUSED(number);
+    Q_UNUSED(number)
     return 0;
 }
 
 int DialService::dial(const QString& number, int contactId)
 {
-    Q_UNUSED(number);
-    Q_UNUSED (contactId);
+    Q_UNUSED(number)
+    Q_UNUSED (contactId)
     return 0;
 }
 
 void DialService::dialVideo(const QString& number)
 {
-    Q_UNUSED(number);
+    Q_UNUSED(number)
 }
 
 void DialService::dialVideo(const QString& number, int contactId)
 {
-    Q_UNUSED(number);
-    Q_UNUSED(contactId);
+    Q_UNUSED(number)
+    Q_UNUSED(contactId)
 }
 
 void DialService::dialVoip(const QString& address)
 {
-Q_UNUSED(address);
+    Q_UNUSED(address)
 }
 
 void DialService::dialVoip(const QString& address, int contactId)
 {
-Q_UNUSED(address);
-Q_UNUSED(contactId);
+    Q_UNUSED(address)
+    Q_UNUSED(contactId)
 }
 
 void DialService::dialVoipService(const QString& address, int serviceId)
 {
-Q_UNUSED(address);
-Q_UNUSED(serviceId);
+    Q_UNUSED(address)
+    Q_UNUSED(serviceId)
 }
 
 void DialService::dialVoipService(
         const QString& address, int serviceId, int contactId)
 {
-Q_UNUSED(address);
-Q_UNUSED(serviceId);
-Q_UNUSED(contactId);
+    Q_UNUSED(address)
+    Q_UNUSED(serviceId)
+    Q_UNUSED(contactId)
 }
 
 DTMFService::DTMFService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
     XQServiceProvider(QLatin1String("com.nokia.symbian.IDtmfPlay"), parent), m_call (call), m_parameters (parameters)
 {
-    m_dtmfServiceConstructed = true;
-    m_dtmfServiceCallPointer = &call;
-    m_dtmfServiceParameterPointer = &parameters;
+    g_dtmfServiceConstructed = true;
+    g_dtmfServiceCallPointer = &call;
+    g_dtmfServiceParameterPointer = &parameters;
 }
 
 DTMFService::~DTMFService()
@@ -150,13 +154,37 @@
 
 void DTMFService::playDTMFTone(const QChar& keyToPlay)
 {
-    Q_UNUSED(keyToPlay);
+    Q_UNUSED(keyToPlay)
 }
 
 void DTMFService::stopDTMFPlay()
 {
 }
 
+UriSchemeHandlerService::UriSchemeHandlerService(
+    MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent)
+    : 
+    XQServiceProvider(
+        QLatin1String("phoneui.com.nokia.symbian.IUriView"), parent),
+    m_callControlIf(call),
+    m_callParameters(parameters)
+{
+    g_uriSchemeHandlerServiceConstructed = true;
+    g_uriSchemeServiceCallPointer = &call;
+    g_uriSchemeServiceParameterPointer = &parameters;
+}
+
+UriSchemeHandlerService::~UriSchemeHandlerService()
+{
+    
+}
+
+bool UriSchemeHandlerService::view(const QString &uri)
+{
+    Q_UNUSED(uri)
+    return true;
+}
+
 TestPhoneServices::TestPhoneServices ()
 {
 }
@@ -185,18 +213,26 @@
     m_handlePlayDTMFLCalled = false;
     m_setKeyCodeCalled = false;
     keyValue = -1;
-    m_dialServiceConstructed = false;
-    m_dtmfServiceConstructed = false;
+    g_dialServiceConstructed = false;
+    g_dtmfServiceConstructed = false;
+    
+    g_uriSchemeHandlerServiceConstructed = false;
+    g_uriSchemeServiceCallPointer = NULL;
+    g_uriSchemeServiceParameterPointer = NULL;
     
     m_phoneServices = new PhoneServices(*this, *this, this);
 
-    QVERIFY(m_dialServiceConstructed == true);
-    QVERIFY(m_dialServiceCallPointer == this);
-    QVERIFY(m_dialServiceParameterPointer == this);
+    QVERIFY(g_dialServiceConstructed == true);
+    QVERIFY(g_dialServiceCallPointer == this);
+    QVERIFY(g_dialServiceParameterPointer == this);
     
-    QVERIFY(m_dtmfServiceConstructed == true);
-    QVERIFY(m_dtmfServiceCallPointer == this);
-    QVERIFY(m_dtmfServiceParameterPointer == this);
+    QVERIFY(g_dtmfServiceConstructed == true);
+    QVERIFY(g_dtmfServiceCallPointer == this);
+    QVERIFY(g_dtmfServiceParameterPointer == this);
+    
+    QVERIFY(g_uriSchemeHandlerServiceConstructed == true);
+    QVERIFY(g_uriSchemeServiceCallPointer == this);
+    QVERIFY(g_uriSchemeServiceParameterPointer == this);
 }
 
 void TestPhoneServices::cleanup ()
--- a/phoneengine/phoneservices/tsrc/ut_phoneservices/ut_phoneservices.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/ut_phoneservices/ut_phoneservices.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -47,6 +47,7 @@
 HEADERS += ../../inc/dtmfservice.h
 HEADERS += ../../inc/dialservicedepricated.h
 HEADERS += ../../inc/dtmfservicedepricated.h
+HEADERS += ../../inc/urischemehandlerservice.h
 SOURCES += ../../src/phoneservices.cpp
 SOURCES += ../../src/dialservicedepricated.cpp
 SOURCES += ../../src/dtmfservicedepricated.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_telurischemeparser/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,350 @@
+/*!
+* 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 tests for TEL URI Parser.
+*
+*/
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include "telurischemeparser.h"
+#include "mock_mpecallcontrolif.h"
+#include "mock_mpecallsettersif.h"
+
+class UT_TelUriSchemeParser : public QObject, public MockService
+{
+    Q_OBJECT
+    
+public:
+    UT_TelUriSchemeParser();
+    virtual ~UT_TelUriSchemeParser();
+
+private slots:
+    void init();
+    void cleanup();
+
+    void t_isSupportedUriScheme();
+    void t_globalNumber();
+    void t_localNumber();
+    void t_withPauseAndMustChangeSharpDigit();
+    void t_localWithAreaSpecifierAndPauseWithSharpDigit();
+    void t_visualSeparatorAndMultiplePausesWithStar();
+    void t_withAreaSpecifierWithWaitPauseAndStar();
+    void t_withIsdnSubAndAndWaitAndPause();
+    void t_wrongTelNum();
+    void t_wrongPostDial();
+    void t_justPauses();
+    void t_justWaits();
+    void t_justPausesAndWaits();
+    void t_uriWrongSchema();
+    void t_uriTooLongPhoneNumber();
+
+private:
+    TelUriSchemeParser *m_uriParser;
+};
+
+UT_TelUriSchemeParser::UT_TelUriSchemeParser()
+    :
+    m_uriParser(NULL)
+{
+}
+
+UT_TelUriSchemeParser::~UT_TelUriSchemeParser()
+{
+    delete m_uriParser;
+}
+
+void UT_TelUriSchemeParser::init()
+{
+    initialize();
+    
+    m_uriParser = new TelUriSchemeParser();
+}
+
+void UT_TelUriSchemeParser::cleanup()
+{
+    reset();
+    
+    delete m_uriParser;
+    m_uriParser = NULL;
+}
+
+void UT_TelUriSchemeParser::t_isSupportedUriScheme()
+{
+    // valid scheme
+    QString uriWithValidScheme(
+        QString("tel:") +
+        QString("1234567890"));
+    bool isValid = m_uriParser->isSupportedUriScheme(uriWithValidScheme);
+    
+    QCOMPARE(isValid, true);   
+        
+    // invalid scheme
+    QString uriWithWrongScheme(
+        QString("cti:") +
+        QString("1234567890"));
+    isValid = m_uriParser->isSupportedUriScheme(uriWithWrongScheme);
+    
+    QCOMPARE(isValid, false);   
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_globalNumber()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:+3585551234567");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_localNumber()
+{
+    QString KExpectedPhoneNumber = "04051234567";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:04051234567");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_withPauseAndMustChangeSharpDigit()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "p#3233";
+    QString telUri("tel:+3585551234567;postd=p%233233");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUri, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_localWithAreaSpecifierAndPauseWithSharpDigit()
+{
+    QString KExpectedPhoneNumber = "1234";
+    QString KExpectedDtmfString = "p#3233";
+    QString telUriWithNumber("tel:1234;phone-context=+358555;postd=p#3233");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_visualSeparatorAndMultiplePausesWithStar()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "pp*3233";
+    QString telUriWithNumber("tel:+358-555-1234567;postd=pp*3233");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_withAreaSpecifierWithWaitPauseAndStar()
+{
+    QString KExpectedPhoneNumber = "+1234567890";
+    QString KExpectedDtmfString = "pw22p*3";
+    QString telUriWithNumber("tel:+1234567890;phone-context=+1234;"
+                                "vnd.company.option=foo;postd=w22p*3");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_withIsdnSubAndAndWaitAndPause()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "pwp2233";
+    QString telUriWithNumber("tel:+358-555-1234567;isub=5555;postd=wp2233");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_wrongTelNum()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:0w003585551234567;phone-context=+3585551234");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_wrongPostDial()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:+3585551234567;postd=*A123");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_justPauses()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:+3585551234567;postd=pppp");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_justWaits()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:+3585551234567;postd=wwww");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_justPausesAndWaits()
+{
+    QString KExpectedPhoneNumber = "+3585551234567";
+    QString KExpectedDtmfString = "";
+    QString telUriWithNumber("tel:+3585551234567;postd=wpwp");
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        telUriWithNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, true);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_uriWrongSchema()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    
+    QString uriWithWrongSchema(
+        QString("cti:") +
+        QString("1234567890"));
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        uriWithWrongSchema, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+void UT_TelUriSchemeParser::t_uriTooLongPhoneNumber()
+{
+    QString KExpectedPhoneNumber = "";
+    QString KExpectedDtmfString = "";
+    
+    QString uriWithTooLongPhoneNumber(
+        QString("tel:") +
+        QString("12345678901234567890123456789012345678901234567890") +
+        QString("12345678901234567890123456789012345678901234567890") + 
+        QString("1"));
+    
+    QString phoneNumber = "";
+    QString dtmfString = "";
+    bool handled = m_uriParser->parseUri(
+        uriWithTooLongPhoneNumber, phoneNumber, dtmfString);
+    
+    QCOMPARE(handled, false);
+    QCOMPARE(phoneNumber, KExpectedPhoneNumber);
+    QCOMPARE(dtmfString, KExpectedDtmfString);
+    QVERIFY(verify());
+}
+
+QTEST_MAIN(UT_TelUriSchemeParser)
+#include "unit_tests.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_telurischemeparser/ut_telurischemeparser.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,45 @@
+#
+# 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 = 
+TARGET.UID3 = 0xE31F4EAF
+DEPENDPATH += .
+INCLUDEPATH += . ../shared
+CONFIG += qtestlib
+
+QT -= gui
+
+symbian {
+    TARGET.CAPABILITY = ALL -TCB
+    
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += ../../../../inc
+    
+    # TEST CODE
+    HEADERS += ../../inc/urischemeparser.h     \
+               ../../inc/telurischemeparser.h
+    SOURCES += ../../src/urischemeparser.cpp   \
+               ../../src/telurischemeparser.cpp
+    SOURCES += unit_tests.cpp
+    
+    #MOCKED DEPENDENCIES
+    SOURCES += ../shared/mock_mpecallsettersif.cpp
+    SOURCES += ../shared/mock_mpecallcontrolif.cpp
+    
+    LIBS += -lmocklib -lsymbianmock
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_urischemehandlerservice/unit_tests.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,234 @@
+/*!
+* 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 tests for URI Scheme Handler Service.
+*
+*/
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include <xqrequestinfo.h>
+#include <HbDeviceMessageBox>
+#include "urischemehandlerservice.h"
+#include "telurischemeparser.h"
+#include "ctiurischemeparser.h"
+#include "mock_mpecallcontrolif.h"
+#include "mock_mpecallsettersif.h"
+
+const QString KGlobalPhoneNumber = "+358401234567890";
+const QString KTelUriWithGlobalNumber("tel:" + KGlobalPhoneNumber);
+
+void setPhoneNumber(
+    const QString &uri,
+    QString &phoneNumber,
+    QString &dtmfString())
+{
+    Q_UNUSED(uri)
+    Q_UNUSED(dtmfString)
+    phoneNumber = KGlobalPhoneNumber;
+}
+
+class UT_UriSchemeHandlerService : public QObject, public MockService
+{
+    Q_OBJECT
+    
+public:
+    UT_UriSchemeHandlerService();
+    virtual ~UT_UriSchemeHandlerService();
+
+private slots:
+    void init();
+    void cleanup();
+    
+    void t_viewUnsupportedScheme();
+    void t_viewSupportedSchemeCapabilityCheckFails();
+    void t_viewSupportedSchemeParsingFails();
+    void t_viewSupportedUriUserCancelsCall();
+    void t_viewSupportedUriUserAcceptsCall();
+    void t_viewSupportedUriCallRequestFails();
+    
+private:
+    UriSchemeHandlerService *m_uriHandlerService;
+    CPECallControlIFMock *m_callControlIfMock;
+    CPECallSettersIFMock *m_callSettersIfMock;
+};
+
+
+UT_UriSchemeHandlerService::UT_UriSchemeHandlerService()
+    :
+    m_uriHandlerService(NULL), 
+    m_callControlIfMock(NULL), 
+    m_callSettersIfMock(NULL)
+{
+}
+
+
+UT_UriSchemeHandlerService::~UT_UriSchemeHandlerService()
+{
+    delete m_uriHandlerService;
+    delete m_callControlIfMock;
+    delete m_callSettersIfMock;
+}
+
+
+void UT_UriSchemeHandlerService::init()
+{
+    initialize();
+    
+    QT_TRAP_THROWING(SmcDefaultValue<XQRequestInfo>::SetL(XQRequestInfo()))
+    
+    m_callControlIfMock = new CPECallControlIFMock();
+    m_callSettersIfMock = new CPECallSettersIFMock();
+    m_uriHandlerService = new UriSchemeHandlerService(
+        *m_callControlIfMock, *m_callSettersIfMock);
+}
+
+
+void UT_UriSchemeHandlerService::cleanup()
+{
+    reset();
+    
+    delete m_uriHandlerService;
+    m_uriHandlerService = NULL;
+    delete m_callControlIfMock;
+    m_callControlIfMock = NULL;
+    delete m_callSettersIfMock;
+    m_callSettersIfMock = NULL;
+    
+    SmcDefaultValue<XQRequestInfo>::Reset();
+}
+
+
+void UT_UriSchemeHandlerService::t_viewUnsupportedScheme()
+{
+    QString unknownUri("mailto:alice@wonderland");
+    
+    EXPECT(TelUriSchemeParser::isSupportedUriScheme).returns(false);
+    EXPECT(CPECallControlIFMock::HandleDialServiceCall).times(0);
+    
+    bool handled = m_uriHandlerService->view(unknownUri);
+    
+    QCOMPARE(handled, false);
+    QVERIFY(verify());
+}
+
+
+void UT_UriSchemeHandlerService::t_viewSupportedSchemeCapabilityCheckFails()
+{
+    EXPECT(TelUriSchemeParser::isSupportedUriScheme).returns(true);
+    QSet<int> invalidCapabilities;
+    invalidCapabilities.insert(ECapabilityNetworkServices);
+    EXPECT(XQRequestInfo::clientCapabilities).returns(invalidCapabilities);
+    EXPECT(CPECallControlIFMock::HandleDialServiceCall).times(0);
+    
+    bool handled = m_uriHandlerService->view(KTelUriWithGlobalNumber);
+    
+    QCOMPARE(handled, false);
+    QVERIFY(verify());
+}
+
+
+void UT_UriSchemeHandlerService::t_viewSupportedSchemeParsingFails()
+{
+    EXPECT(TelUriSchemeParser::isSupportedUriScheme).returns(true);
+    QSet<int> validCapabilities;
+    validCapabilities.insert(ECapabilityNetworkServices);
+    validCapabilities.insert(ECapabilityNetworkControl);
+    EXPECT(XQRequestInfo::clientCapabilities).returns(validCapabilities);
+    EXPECT(TelUriSchemeParser::parseUri).returns(false);
+    EXPECT(CPECallControlIFMock::HandleDialServiceCall).times(0);
+    
+    bool handled = m_uriHandlerService->view(KTelUriWithGlobalNumber);
+    
+    QCOMPARE(handled, false);
+    QVERIFY(verify());    
+}
+
+
+void UT_UriSchemeHandlerService::t_viewSupportedUriUserCancelsCall()
+{
+    EXPECT(TelUriSchemeParser::isSupportedUriScheme).returns(true);
+    QSet<int> validCapabilities;
+    validCapabilities.insert(ECapabilityNetworkServices);
+    validCapabilities.insert(ECapabilityNetworkControl);
+    EXPECT(XQRequestInfo::clientCapabilities).returns(validCapabilities);
+    EXPECT(TelUriSchemeParser::parseUri).returns(true);
+    EXPECT(HbDeviceMessageBox::setTimeout).with(0);
+    EXPECT(HbDeviceMessageBox::isAcceptAction).returns(false);
+    EXPECT(CPECallControlIFMock::HandleDialServiceCall).times(0);
+    
+    bool handled = m_uriHandlerService->view(KTelUriWithGlobalNumber);
+    
+    QCOMPARE(handled, false);
+    QVERIFY(verify());
+}
+
+
+void UT_UriSchemeHandlerService::t_viewSupportedUriUserAcceptsCall()
+{
+    EXPECT(TelUriSchemeParser::isSupportedUriScheme).returns(true);
+    QSet<int> validCapabilities;
+    validCapabilities.insert(ECapabilityNetworkServices);
+    validCapabilities.insert(ECapabilityNetworkControl);
+    EXPECT(XQRequestInfo::clientCapabilities).returns(validCapabilities);
+    EXPECT(TelUriSchemeParser::parseUri)
+        .willOnce(invoke(setPhoneNumber))
+        .returns(true);
+    EXPECT(HbDeviceMessageBox::setTimeout).with(0);
+    EXPECT(HbDeviceMessageBox::isAcceptAction).returns(true);
+    
+    _LIT(KExpectedDialString, "+358401234567890");
+    EXPECT(CPECallSettersIFMock::SetPhoneNumber).with(KExpectedDialString());
+    EXPECT(CPECallSettersIFMock::SetCallTypeCommand).with(EPECallTypeCSVoice);
+    EXPECT(CPECallControlIFMock::HandleDialServiceCall).returns(KErrNone);
+    
+    bool handled = m_uriHandlerService->view(KTelUriWithGlobalNumber);
+    
+    QCOMPARE(handled, true);
+    QVERIFY(verify());
+}
+
+
+void UT_UriSchemeHandlerService::t_viewSupportedUriCallRequestFails()
+{
+    EXPECT(TelUriSchemeParser::isSupportedUriScheme).returns(true);
+    QSet<int> validCapabilities;
+    validCapabilities.insert(ECapabilityNetworkServices);
+    validCapabilities.insert(ECapabilityNetworkControl);
+    EXPECT(XQRequestInfo::clientCapabilities).returns(validCapabilities);
+    EXPECT(TelUriSchemeParser::parseUri)
+        .willOnce(invoke(setPhoneNumber))
+        .returns(true);
+    EXPECT(HbDeviceMessageBox::setTimeout).with(0);
+    EXPECT(HbDeviceMessageBox::isAcceptAction).returns(true);
+    
+    _LIT(KExpectedDialString, "+358401234567890");
+    EXPECT(CPECallSettersIFMock::SetPhoneNumber).with(KExpectedDialString());
+    EXPECT(CPECallSettersIFMock::SetCallTypeCommand).with(EPECallTypeCSVoice);
+    EXPECT(CPECallControlIFMock::HandleDialServiceCall).returns(KErrNoMemory);
+    
+    bool handled = m_uriHandlerService->view(KTelUriWithGlobalNumber);
+    
+    QCOMPARE(handled, false);
+    QVERIFY(verify());
+}
+
+
+int main(int argc, char *argv[])
+{
+    QCoreApplication app(argc, argv);
+    UT_UriSchemeHandlerService tc;
+    return QTest::qExec(&tc, argc, argv);
+}
+
+#include "unit_tests.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_urischemehandlerservice/ut_urischemehandlerservice.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,55 @@
+#
+# 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 = 
+TARGET.UID3 = 0xE31F4EDA
+DEPENDPATH += .
+INCLUDEPATH += . ../shared
+CONFIG += hb qtestlib
+DEFINES += QT_NO_DEBUG_STREAM XQ_BUILD_XQSERVICEUTIL_LIB XQ_BUILD_XQSERVICE_LIB
+
+QT -= gui
+DEFINES -= QT_GUI_LIB
+
+symbian {
+    TARGET.CAPABILITY = ALL -TCB
+    
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += ../../../../inc
+    
+    # TEST CODE
+    HEADERS += ../../inc/urischemehandlerservice.h
+    SOURCES += ../../src/urischemehandlerservice.cpp
+    SOURCES += unit_tests.cpp
+    
+    #MOCKED DEPENDENCIES
+    HEADERS += /epoc32/include/mw/xqserviceprovider.h
+    HEADERS += ../../inc/urischemeparser.h
+    HEADERS += ../../inc/ctiurischemeparser.h
+    HEADERS += ../../inc/telurischemeparser.h
+    SOURCES += ../shared/mock_hbdevicemessagebox.cpp
+    SOURCES += ../shared/mock_urischemeparser.cpp
+    SOURCES += ../shared/mock_telurischemeparser.cpp
+    SOURCES += ../shared/mock_ctiurischemeparser.cpp
+    SOURCES += ../shared/mock_xqrequestinfo.cpp
+    SOURCES += ../shared/mock_mpecallsettersif.cpp
+    SOURCES += ../shared/mock_mpecallcontrolif.cpp
+    SOURCES += ../shared/mock_xqserviceprovider.cpp
+    
+    LIBS += -lmocklib -lsymbianmock# -lxqservice
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/dialerwidgetplugin.pri	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,47 @@
+#
+# 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:
+#
+
+HEADERS += ./inc/*.h
+
+SOURCES += ./src/*.cpp
+
+defineTest(exportResources) {
+    symbian {
+        for(subdirs, 1) {
+            entries = $$files($$subdirs)
+            for(entry, entries) : BLD_INF_RULES.prj_exports += "./$$entry z:/$$replace(2, ^/,)/$$basename(entry)"
+        }
+        export ( BLD_INF_RULES.prj_exports)
+    }
+}
+
+symbian: plugin { # copy qtstub and manifest
+
+    pluginstub.sources = $${TARGET}.dll
+    pluginstub.path = $$PLUGIN_SUBDIR
+
+    DEPLOYMENT += pluginstub
+
+    qtplugins.path = $$PLUGIN_SUBDIR
+    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
+
+    message(Remove "contains(MOBILITY, serviceframework)" after the QtSF refactorig is done!)
+        
+    !contains(MOBILITY, serviceframework):qtplugins.sources += resource/$${TARGET}.manifest
+    contains(MOBILITY, serviceframework):BLD_INF_RULES.prj_exports += "resource/$${TARGET}.s60xml z:$$qtplugins.path/$${TARGET}.xml"
+    
+    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin z:$$qtplugins.path/$$basename(qtplugin)"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/dialerwidgetplugin.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,57 @@
+# 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 = lib
+CONFIG += plugin \
+    hb \
+    mobility
+MOBILITY = serviceframework
+win32:PLUGIN_SUBDIR = /hsresources/import/widgetregistry/20022F44
+symbian:PLUGIN_SUBDIR = /private/20022F35/import/widgetregistry/20022F44
+LIBS += -lhswidgetmodel
+DEPENDPATH += ./inc \
+    ./src
+INCLUDEPATH += ./inc \
+    ../../inc
+symbian: { 
+    LIBS += -lxqservice \
+        -lxqserviceutil \
+        -lxqtelephonyservice \
+        -lxqsettingsmanager \
+        -llogsengine
+    TARGET.UID3 = 0x20022F44
+    TARGET.EPOCALLOWDLLDATA = 1
+    TARGET.CAPABILITY = ALL \
+        -TCB
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    
+    BLD_INF_RULES.prj_exports +=  \
+     "$${LITERAL_HASH}include <platform_paths.hrh>" \
+     "./rom/dialerwidgetplugin.iby    CORE_APP_LAYER_IBY_EXPORT_PATH(dialerwidgetplugin.iby)"
+}
+OUTPUT_DIR = $$PWD/bin
+SOURCE_DIR = $$PWD/inc
+OBJECTS_DIR = $$OUTPUT_DIR/tmp/$$TARGET
+DESTDIR = $$OUTPUT_DIR
+MOC_DIR = $$OUTPUT_DIR/tmp/$$TARGET/moc
+RCC_DIR = $$OUTPUT_DIR/tmp/$$TARGET/rcc
+UI_DIR = $$OUTPUT_DIR/tmp/$$TARGET/ui
+LIBS += -L$$DESTDIR
+DEPENDPATH += . \
+    $$SOURCE_DIR
+INCLUDEPATH += . \
+    $$SOURCE_DIR
+INCLUDEPATH += $$MOC_DIR
+plugin:!isEmpty(PLUGIN_SUBDIR):DESTDIR = $$OUTPUT_DIR/$$PLUGIN_SUBDIR
+include(dialerwidgetplugin.pri)
+exportResources(./resource/*.manifest, $$PLUGIN_SUBDIR)
+exportResources(./resource/*.svg, $$PLUGIN_SUBDIR)
+exportResources(./resource/*.png, $$PLUGIN_SUBDIR)
+RESOURCES += dialerwidgetpluging.qrc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/dialerwidgetpluging.qrc	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,13 @@
+<RCC>
+    <qresource prefix="/icons">
+        <file>resource/qtg_fr_shortcut_badge_bg_r.png</file>
+        <file>resource/qtg_fr_shortcut_badge_bg_c.png</file>
+        <file>resource/qtg_fr_shortcut_badge_bg_l.png</file>
+        <file>resource/qtg_graf_hs_dialer.svg</file>
+    </qresource>
+    <qresource prefix="/data">
+    	<file>resource/dialerwidget.widgetml</file>
+    	<file>resource/dialerwidget.css</file>
+    </qresource>
+    
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/inc/dialerwidget.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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:
+*
+*/
+
+#ifndef DIALERWIDGET_H
+#define DIALERWIDGET_H
+
+#include <hswidget.h>
+
+
+#ifndef HOMESCREEN_TEST
+    #define HOMESCREEN_TEST_CLASS(aClassName)
+    #define HOMESCREEN_TEST_FRIEND_CLASS(aClassName)
+#else
+    #define HOMESCREEN_TEST_CLASS(aClassName) class aClassName;
+    #define HOMESCREEN_TEST_FRIEND_CLASS(aClassName) friend class aClassName;
+#endif //HOMESCREEN_TEST
+
+HOMESCREEN_TEST_CLASS(TestDialerWidgetPlugin)
+
+
+class DialerWidgetEngine;
+class HbFrameItem;    
+class HbIconItem;
+class HbTextItem;
+class HbTouchArea;
+
+class DialerWidget : public HsWidget
+{
+    Q_OBJECT
+
+public:
+    DialerWidget(QGraphicsItem* parent = 0, Qt::WindowFlags flags = 0);
+    ~DialerWidget();
+private:
+    
+    void createPrimitives();
+    
+public slots:
+    void startDialer();
+   
+    // from HS fw
+    void onInitialize();
+    void onShow();
+    void onHide();
+    void onUninitialize();
+    
+    // from engine
+    void onEngineException(const int& exc);
+    
+    void onMissedCallsCountChange(const int& count);
+    
+signals:
+    void error();
+
+protected:
+    void mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_UNUSED(event) }
+    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+    StartResult onStart();
+    StopResult onStop();
+    SuspendResult onSuspend();
+    ResumeResult onResume();
+
+private:
+    
+    HbFrameItem         *m_background;
+    HbFrameItem         *m_badgeBackground;
+    HbTextItem          *m_text;
+    HbTouchArea         *m_touchArea;
+    DialerWidgetEngine  *m_engine;
+    
+    HOMESCREEN_TEST_FRIEND_CLASS(TestDialerWidgetPlugin)
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/inc/dialerwidgetengine.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* 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 DIALERWIDGETENGINE_H_
+#define DIALERWIDGETENGINE_H_
+
+#include <QObject>
+#include <xqsettingsmanager.h>
+
+class DialerWidgetEngine : public QObject    
+    {
+    Q_OBJECT
+public:
+    DialerWidgetEngine();
+    virtual ~DialerWidgetEngine();
+    bool initialize();
+    int missedCallsCount();
+    
+public slots:
+    void valueChanged(const XQSettingsKey &key, const QVariant &value);
+signals:
+    void exceptionOccured(const int& err);
+    void missedCallsCountChanged(const int& missedCallsCount);
+private:
+
+private:
+    XQSettingsManager * m_settingsManager;
+    int m_missedCalls;
+    };
+
+#endif /* DIALERWIDGETENGINE_H_ */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/inc/dialerwidgetplugin.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* 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:  Homescreen widget plugin
+*
+*/
+
+
+#ifndef DIALERWIDGETPLUGIN_H
+#define DIALERWIDGETPLUGIN_H
+
+#include <QObject>
+#include <qserviceplugininterface.h>
+
+QTM_USE_NAMESPACE
+
+
+/**
+ * @ingroup group_hsdialerwidgetplugin
+ * @brief Homescreen dialer widget plugin.
+ *
+ * This library includes homescreen dialer widget implemented by homescreen scrum team.
+ * This plugin provides widgets that are described in the  hsdialerwidgetplugin.xml plugin
+ * xml file. 
+ *
+ * @since S60 ?S60_version.
+ */
+class DialerWidgetPlugin : public QObject, public QServicePluginInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(QtMobility::QServicePluginInterface)
+
+public:
+    QObject *createInstance(const QServiceInterfaceDescriptor &descriptor,
+                            QServiceContext *context,
+                            QAbstractSecuritySession *session);
+
+};
+
+#endif //DIALERWIDGETPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/dialerwidget.css	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,44 @@
+DialerWidget {
+	layout: default
+}
+
+DialerWidget::background {
+	top: -6un;
+	right: 6un;
+	left: -6un;
+	preferred-width: 24un;
+	preferred-height: 24un;
+	zvalue: 0;
+}
+
+DialerWidget::badgeBackground {
+	left: -1.5un;
+  right: 1.5un;
+  top: -1.5un;
+  bottom: 1.5un;
+  preferred-width: 3.0un;
+  preferred-height: 3.0un;
+  zvalue: 1;
+}
+
+DialerWidget::text {
+  left: -1.5un;
+  right: 1.5un;
+  top: -1.5un;
+  bottom: 1.5un;
+  fixed-width: 3.0un;
+  text-align: center center;
+	text-height: var(hb-param-text-height-tiny);
+	text-line-count-max: 1;
+	color: var(qtc_list_item_title_normal);
+	zvalue: 2;
+}
+
+DialerWidget::touch_area {
+	left: -6.0un;
+	top: -6.0un;
+	preferred-width: 12un;
+	preferred-height: 12un;
+	zvalue: 3;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/dialerwidget.widgetml	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbwidget type="DialerWidget" version="0.1">
+    <layout name="default" type="mesh">
+    		<meshitem dst="" dstEdge="TOP" src="background" srcEdge="TOP"/>
+    		<meshitem dst="" dstEdge="RIGHT" src="background" srcEdge="RIGHT"/>
+        <meshitem dst="badgeBackground" dstEdge="RIGHT" src="background" srcEdge="LEFT"/>
+        <meshitem dst="" dstEdge="LEFT" src="text" srcEdge="LEFT"/>
+        <meshitem dst="" dstEdge="TOP" src="text" srcEdge="TOP"/>
+        <meshitem dst="" dstEdge="LEFT" src="touch_area" srcEdge="LEFT"/>
+        <meshitem dst="" dstEdge="RIGHT" src="touch_area" srcEdge="RIGHT"/>
+        <meshitem dst="background" dstEdge="BOTTOM" src="touch_area" srcEdge="TOP"/>
+    </layout>
+    <metadata>
+        <items>
+            <item name="background" type="HbWidget"/>
+            <item name="badgeBackground" type="HbWidget"/>
+            <item name="text" text="0" type="HbTextItem"/>
+            <item name="touch_area" type="HbTouchArea"/>
+        </items>
+    </metadata>
+</hbwidget>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/dialerwidgetplugin.manifest	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<widgetprovider>
+    <widget library="dialerwidgetplugin"
+            uri="dialerwidgetplugin"
+            title="txt_long_caption_dialer"
+            iconuri="qtg_graf_hs_dialer.svg"
+            description="txt_dial_dblist_val_dialer_enable_access_to_recent"/>
+</widgetprovider>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/dialerwidgetplugin.s60xml	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service>
+    <name>dialerwidgetplugin</name>
+    <filepath>dialerwidgetplugin</filepath>
+    <description>Dialer widget</description>
+    <interface>
+        <name>com.nokia.symbian.IHomeScreenWidget</name>
+        <version>1.0</version>
+        <description>The dialer widget displays dialing menu</description>
+        <capabilities></capabilities>
+        <customproperty key="iconuri">qtg_graf_hs_dialer.svg</customproperty>
+        <customproperty key="title">Dialer</customproperty>
+    </interface>
+</service>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/dialerwidgetplugin.xml	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service>
+    <name>dialerwidgetplugin</name>
+    <filepath>dialerwidgetplugin</filepath>
+    <description>Dialer widget</description>
+    <interface>
+        <name>com.nokia.symbian.IHomeScreenWidget</name>
+        <version>1.0</version>
+        <description>The dialer widget displays dialing menu</description>
+        <capabilities></capabilities>
+        <customproperty key="iconuri">qtg_graf_hs_dialer.svg</customproperty>
+        <customproperty key="title">Dialer</customproperty>
+    </interface>
+</service>
Binary file phoneplugins/dialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_c.png has changed
Binary file phoneplugins/dialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_l.png has changed
Binary file phoneplugins/dialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_r.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/qtg_graf_hs_dialer.svg	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,27 @@
+<?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 baseProfile="tiny" height="81px" version="1.1" viewBox="0 0 81 81" width="81px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M81,75c0,3.3-2.699,6-6,6H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h69c3.301,0,6,2.7,6,6  V75z" fill="url(#SVGID_1_)" fill-opacity="0.92" stroke-opacity="0.92"/>
+<path d="M75,0.5c3.033,0,5.5,2.467,5.5,5.5v69c0,3.033-2.467,5.5-5.5,5.5H6c-3.033,0-5.5-2.467-5.5-5.5V6  c0-3.033,2.467-5.5,5.5-5.5H75 M75,0H6C2.7,0,0,2.7,0,6v69c0,3.3,2.7,6,6,6h69c3.301,0,6-2.7,6-6V6C81,2.7,78.301,0,75,0L75,0z" fill="#999999"/>
+<g>
+<g>
+<path d="M28.548,20.202c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.47,3.284,3.284V20.202z" fill="#3C3C3C"/>
+<path d="M47.343,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#3C3C3C"/>
+<path d="M66.136,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284V16.37    c0-1.814,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#3C3C3C"/>
+<path d="M28.548,35.255c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V35.255z" fill="#3C3C3C"/>
+<path d="M47.343,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#3C3C3C"/>
+<path d="M66.136,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#3C3C3C"/>
+<path d="M28.548,50.034c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V50.034z" fill="#3C3C3C"/>
+<path d="M47.343,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#3C3C3C"/>
+<path d="M47.343,64.63c0,1.815-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.469-3.284-3.284v-3.831    c0-1.813,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.471,3.285,3.284V64.63z" fill="#3C3C3C"/>
+<path d="M66.136,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#3C3C3C"/>
+</g>
+</g>
+<rect fill="none" height="81" width="81"/>
+<defs>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="40.5005" x2="40.5005" y1="81.3467" y2="41.859">
+<stop offset="0" style="stop-color:#F2F2F2"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+</defs>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/resource/qtg_graf_hs_dialer_pressed.svg	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,29 @@
+<?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 baseProfile="tiny" height="81px" version="1.1" viewBox="0 0 81 81" width="81px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M81,75c0,3.3-2.699,6-6,6H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h69c3.301,0,6,2.7,6,6V75z" fill="url(#SVGID_1_)"/>
+<path d="M75,0.5c3.033,0,5.5,2.467,5.5,5.5v69c0,3.033-2.467,5.5-5.5,5.5H6  c-3.033,0-5.5-2.467-5.5-5.5V6c0-3.033,2.467-5.5,5.5-5.5H75 M75,0H6C2.7,0,0,2.7,0,6v69c0,3.3,2.7,6,6,6h69c3.301,0,6-2.7,6-6V6  C81,2.7,78.301,0,75,0L75,0z" display="none" fill="#999999"/>
+<g>
+<g>
+<path d="M28.548,20.202c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.47,3.284,3.284V20.202z" fill="#FFFFFF"/>
+<path d="M47.343,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#FFFFFF"/>
+<path d="M66.136,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284V16.37    c0-1.814,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#FFFFFF"/>
+<path d="M28.548,35.255c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V35.255z" fill="#FFFFFF"/>
+<path d="M47.343,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#FFFFFF"/>
+<path d="M66.136,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#FFFFFF"/>
+<path d="M28.548,50.034c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V50.034z" fill="#FFFFFF"/>
+<path d="M47.343,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#FFFFFF"/>
+<path d="M47.343,64.63c0,1.815-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.469-3.284-3.284v-3.831    c0-1.813,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.471,3.285,3.284V64.63z" fill="#FFFFFF"/>
+<path d="M66.136,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#FFFFFF"/>
+</g>
+</g>
+<rect fill="none" height="81" width="81"/>
+<defs>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="40.4995" x2="40.4995" y1="79.9482" y2="102.8848">
+<stop offset="0" style="stop-color:#8CE0FF"/>
+<stop offset="0.2432" style="stop-color:#83DEFD"/>
+<stop offset="0.6383" style="stop-color:#6BD8F7"/>
+<stop offset="1" style="stop-color:#4FD1F0"/>
+</linearGradient>
+</defs>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/rom/dialerwidgetplugin.iby	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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 __DIALERWIDETPLUGIN_IBY__
+#define __DIALERWIDETPLUGIN_IBY__
+
+file=ABI_DIR\BUILD_DIR\dialerwidgetplugin.dll                                        	SHARED_LIB_DIR\dialerwidgetplugin.dll
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\dialerwidgetplugin.qtplugin    	private\20022f35\import\widgetregistry\20022F44\dialerwidgetplugin.qtplugin
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\dialerwidgetplugin.manifest    	private\20022f35\import\widgetregistry\20022F44\dialerwidgetplugin.manifest
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_graf_hs_dialer.svg		   	private\20022f35\import\widgetregistry\20022F44\qtg_graf_hs_dialer.svg	
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_r.png    private\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_r.png
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_l.png	private\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_l.png
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_c.png    private\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_c.png       
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\dialerwidgetplugin.xml          private\20022f35\import\widgetregistry\20022F44\dialerwidgetplugin.xml
+
+#endif //__DIALERWIDETPLUGIN_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/src/dialerwidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,274 @@
+/*
+* 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:
+*
+*/
+
+#include <HbStyle>
+#include <HbStyleLoader>
+#include <HbFrameItem>
+#include <HbFrameDrawer>
+#include <HbIconItem>
+#include <HbTextItem>
+#include <HbTouchArea>
+#include "dialerwidgetengine.h"
+#include "dialerwidget.h"
+#include "qtphonelog.h"
+
+#ifdef Q_OS_SYMBIAN
+#include "qtphonelog.h"
+#include <xqappmgr.h>
+#include <xqservicerequest.h>
+#include <xqcallinfo.h>
+#include <xqpublishandsubscribeutils.h>
+#include <logsservices.h>
+#include <xqrequestinfo.h>
+#endif
+
+namespace
+{
+    const char KDialerWidgetIcon[] = ":/icons/resource/qtg_graf_hs_dialer";
+    const char KMissedCallShortcutBadge[] = ":/icons/resource/qtg_fr_shortcut_badge_bg";
+    const char KDialerWidgetWidgetml[] = ":/data/resource/dialerwidget.widgetml";
+    const char KDialerWidgetCss[] = ":/data/resource/dialerwidget.css";
+}
+
+/*!
+    \class DialerWidget
+
+    \ingroup group_dialerwidgetplugin
+    \brief Implementation for the homescreen dialer launcher.
+
+*/
+
+/*!
+    Constructs dialer widget with given \a parent and given window \a flags.
+*/
+DialerWidget::DialerWidget(QGraphicsItem *parent, Qt::WindowFlags flags)
+  : HsWidget(parent, flags),
+    m_background(0), m_badgeBackground(0), m_text(0), m_touchArea(0)
+{   
+    PHONE_TRACE 
+}
+
+/*!
+    Destructor.
+*/
+DialerWidget::~DialerWidget()
+{
+}
+
+/*!
+    \fn void DialerWidget::startDialer()
+
+    Starts dialer widget via view activation service.
+*/
+void DialerWidget::startDialer()
+{
+    PHONE_TRACE
+#ifdef Q_OS_SYMBIAN
+    PHONE_DEBUG("DialerWidget::startDialer");
+    
+    QList<CallInfo> calls;
+    QScopedPointer<XQCallInfo> callInfo(XQCallInfo::create());
+    callInfo->getCalls(calls);
+    QList<QVariant> args;
+    QString service;
+    QString interface;
+    QString operation;
+
+    if (0 < calls.count()) {
+        PHONE_DEBUG("call ongoing, bring Telephone to foreground");
+        service = "phoneui";
+        interface = "com.nokia.symbian.IStart";
+        operation = "start(int)";
+        int openDialer(0);
+        args << openDialer;
+    } else {
+        PHONE_DEBUG("no calls, open Dialer");
+        service = "logs";
+        interface = "com.nokia.symbian.ILogsView";
+        operation = "show(QVariantMap)";
+        QVariantMap map;
+        map.insert("view_index", QVariant(int(LogsServices::ViewAll)));
+        map.insert("show_dialpad", QVariant(true));
+        map.insert("dialpad_text", QVariant(QString()));
+        args.append(QVariant(map));
+    }
+
+    XQApplicationManager appManager;
+    QScopedPointer<XQAiwRequest> request(appManager.create(service, interface, operation, false));
+    if (request == NULL) {
+        return;
+    }
+    request->setArguments(args);
+    XQRequestInfo info;
+    info.setForeground(true);
+    request->setInfo(info);
+    bool ret = request->send();
+    PHONE_TRACE2("request sent successfully:", ret);
+#endif
+
+}
+
+void DialerWidget::onInitialize()
+{
+    PHONE_TRACE
+    QT_TRY{
+        // basic ui
+        createPrimitives();
+        Q_ASSERT(HbStyleLoader::registerFilePath(KDialerWidgetWidgetml));
+        Q_ASSERT(HbStyleLoader::registerFilePath(KDialerWidgetCss));
+        // Engine construction is 2 phased 
+        m_engine = new DialerWidgetEngine();
+        connect(m_engine, SIGNAL( exceptionOccured(const int&) )
+                ,this, SLOT( onEngineException(const int&) ) );
+        
+        if(!m_engine->initialize()){
+            //engine construction failed. Give up.
+            emit error();
+            return;
+            }
+        connect( m_engine, SIGNAL(missedCallsCountChanged(const int&)),
+                this, SLOT(onMissedCallsCountChange(const int&)));
+    }
+    QT_CATCH(...){
+        emit error();
+    }
+}
+
+/*!
+    \fn void DialerWidget::onShow()
+
+    Shows the widget
+*/
+void DialerWidget::onShow()
+{
+    PHONE_TRACE
+    updatePrimitives();
+}
+
+/*!
+    \fn void DialerWidget::onHide()
+
+    Hides the widget
+*/
+void DialerWidget::onHide()
+{
+    PHONE_TRACE
+}
+
+void DialerWidget::onUninitialize()
+{
+    PHONE_TRACE
+    HbStyleLoader::unregisterFilePath(KDialerWidgetWidgetml);
+    HbStyleLoader::unregisterFilePath(KDialerWidgetCss);
+}
+
+void DialerWidget::onEngineException(const int& exc)
+{
+    Q_UNUSED(exc);
+    emit error();
+}
+
+void DialerWidget::onMissedCallsCountChange(const int& count)
+{
+    m_text->setText( QLocale::system().toString(count));
+    if ( count ){
+        m_text->setVisible(true);
+        m_badgeBackground->setVisible(true);
+    } else {
+        m_text->setVisible(false);
+        m_badgeBackground->setVisible(false);
+    }
+}
+
+/*!
+    \fn void DialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
+
+    Dialer widget start is triggered from release \a event.
+    \sa startDialer()
+*/
+void DialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
+{   
+    Q_UNUSED(event);
+    startDialer();
+}
+
+HsWidget::StartResult DialerWidget::onStart()
+{
+    return StartResultRunning;
+}
+HsWidget::StopResult DialerWidget::onStop()
+{
+    return StopResultFinished;
+}
+HsWidget::SuspendResult DialerWidget::onSuspend()
+{
+    return SuspendResultSuspended;
+}
+HsWidget::ResumeResult DialerWidget::onResume()
+{
+    return ResumeResultRunning;
+}
+
+void DialerWidget::createPrimitives()
+{   
+    setPreferredSize(100,100);
+    // Background
+    if (!m_background) {
+        HbFrameDrawer *drawer = new HbFrameDrawer(
+                KDialerWidgetIcon, HbFrameDrawer::OnePiece);
+        m_background = new HbFrameItem(drawer, this);
+        style()->setItemName(m_background, /*QLatin1String(*/"background"/*)*/);
+        m_background->moveBy(0,10);
+        m_background->resize(81,81);
+    }
+    
+    // Badge background
+    if (!m_badgeBackground) {
+        HbFrameDrawer *badgedrawer = new HbFrameDrawer(
+                KMissedCallShortcutBadge, HbFrameDrawer::ThreePiecesHorizontal);
+        m_badgeBackground = new HbFrameItem(badgedrawer, this);
+        style()->setItemName(m_background, QLatin1String("badgeBackground"));
+        m_badgeBackground->resize(20,20);
+        m_badgeBackground->moveBy(70,0);
+        m_badgeBackground->setVisible(true);
+        m_badgeBackground->setVisible( false );
+    }
+
+    // Text
+    if (!m_text) {
+        m_text = new HbTextItem(this);
+        style()->setItemName(m_text, QLatin1String("text"));
+        m_text->resize(20,20);
+        m_text->moveBy(76,0);
+        m_text->setVisible(true);
+        HbFontSpec *textFont = new HbFontSpec(HbFontSpec::Primary);
+        textFont->setTextHeight(3*HbDeviceProfile::current().unitValue());
+        m_text->setFontSpec(*textFont);
+        m_text->setText("0");
+        m_text->setVisible( false);
+    }
+
+    // Touch Area
+    if (!m_touchArea) {
+        m_touchArea = new HbTouchArea(this);
+        m_touchArea->installEventFilter(this);
+        style()->setItemName(m_touchArea, QLatin1String("touch_area"));
+        m_touchArea->moveBy(0,10);
+        m_touchArea->resize(81,81);
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/src/dialerwidgetengine.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,72 @@
+/*
+* 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 "dialerwidgetengine.h"
+
+#include <logsdomaincrkeys.h>
+#include <logsservices.h>
+
+DialerWidgetEngine::DialerWidgetEngine():
+    m_missedCalls(-1)
+{
+}
+
+DialerWidgetEngine::~DialerWidgetEngine()
+{
+    delete m_settingsManager;
+    m_settingsManager = NULL;
+}
+
+bool DialerWidgetEngine::initialize()
+{
+#ifdef Q_OS_SYMBIAN
+    m_settingsManager = new XQSettingsManager(this);
+    if ( !m_settingsManager ){
+        return false;
+    }
+    XQSettingsKey settingsKey( XQSettingsKey::TargetCentralRepository,
+                KCRUidLogs.iUid, KLogsNewMissedCalls );
+    
+    if ( !connect( m_settingsManager,
+                SIGNAL( valueChanged(const XQSettingsKey & ,const QVariant &)),
+                    this, SLOT(valueChanged(XQSettingsKey,
+                            QVariant)))){
+        return false;
+    }
+    
+    if(!m_settingsManager->startMonitoring( settingsKey )){
+        return false;
+    }
+    
+#endif
+    return true;
+}
+
+void DialerWidgetEngine::valueChanged( 
+        const XQSettingsKey &key, 
+        const QVariant &value )
+{
+    if ( key.key() == (quint32)KLogsNewMissedCalls ){
+        m_missedCalls = value.toInt(); 
+        emit missedCallsCountChanged( m_missedCalls );
+    }
+}
+
+int DialerWidgetEngine::missedCallsCount()
+{
+    return m_missedCalls;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/dialerwidgetplugin/src/dialerwidgetplugin.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* 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:  Homescreen widget plugin
+*
+*/
+
+#include <qserviceinterfacedescriptor.h>
+#include <qabstractsecuritysession.h>
+#include <qservicecontext.h>
+
+#include "Dialerwidgetplugin.h"
+#include "Dialerwidget.h"
+#include "qtphonelog.h"
+
+#ifdef COVERAGE_MEASUREMENT
+#pragma CTC SKIP
+#endif //COVERAGE_MEASUREMENT
+
+QObject *DialerWidgetPlugin::createInstance(const QServiceInterfaceDescriptor &descriptor,
+                                             QServiceContext *context,
+                                             QAbstractSecuritySession *session)
+{
+    PHONE_DEBUG("DialerWidgetPlugin::createInstance");
+    Q_UNUSED(context);
+    Q_UNUSED(session);
+
+    if (descriptor.interfaceName() == QLatin1String("com.nokia.symbian.IHomeScreenWidget")) {
+        PHONE_DEBUG("creating DialerWidget instance");
+        return new DialerWidget();
+    } else {
+        return 0;
+    }
+}
+
+Q_EXPORT_PLUGIN2(Dialerwidgetplugin, DialerWidgetPlugin)
+
+#ifdef COVERAGE_MEASUREMENT
+#pragma CTC ENDSKIP
+#endif //COVERAGE_MEASUREMENT
--- a/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pri	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-HEADERS += ./inc/*.h
-
-SOURCES += ./src/*.cpp
-
-defineTest(exportResources) {
-    symbian {
-        for(subdirs, 1) {
-            entries = $$files($$subdirs)
-            for(entry, entries) : BLD_INF_RULES.prj_exports += "./$$entry z:/$$replace(2, ^/,)/$$basename(entry)"
-        }
-        export ( BLD_INF_RULES.prj_exports)
-    }
-}
-
-symbian: plugin { # copy qtstub and manifest
-
-    pluginstub.sources = $${TARGET}.dll
-    pluginstub.path = $$PLUGIN_SUBDIR
-
-    DEPLOYMENT += pluginstub
-
-    qtplugins.path = $$PLUGIN_SUBDIR
-    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-
-    message(Remove "contains(MOBILITY, serviceframework)" after the QtSF refactorig is done!)
-        
-    !contains(MOBILITY, serviceframework):qtplugins.sources += resource/$${TARGET}.manifest
-    contains(MOBILITY, serviceframework):BLD_INF_RULES.prj_exports += "resource/$${TARGET}.s60xml z:$$qtplugins.path/$${TARGET}.xml"
-    
-    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin z:$$qtplugins.path/$$basename(qtplugin)"
-}
\ No newline at end of file
--- a/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pro	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-# Contributors:
-# Description:
-TEMPLATE = lib
-CONFIG += plugin \
-    hb \
-    mobility
-MOBILITY = serviceframework
-win32:PLUGIN_SUBDIR = /hsresources/import/widgetregistry/20022F44
-symbian:PLUGIN_SUBDIR = /private/20022F35/import/widgetregistry/20022F44
-LIBS += -lhswidgetmodel
-DEPENDPATH += ./inc \
-    ./src
-INCLUDEPATH += ./inc \
-    ../../inc
-symbian: { 
-    LIBS += -lxqservice \
-        -lxqserviceutil \
-        -lxqtelephonyservice \
-        -lxqsettingsmanager \
-        -llogsengine
-    TARGET.UID3 = 0x20022F44
-    TARGET.EPOCALLOWDLLDATA = 1
-    TARGET.CAPABILITY = ALL \
-        -TCB
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-    
-    BLD_INF_RULES.prj_exports +=  \
-     "$${LITERAL_HASH}include <platform_paths.hrh>" \
-     "./rom/hsdialerwidgetplugin.iby    CORE_APP_LAYER_IBY_EXPORT_PATH(hsdialerwidgetplugin.iby)"
-}
-OUTPUT_DIR = $$PWD/bin
-SOURCE_DIR = $$PWD/inc
-OBJECTS_DIR = $$OUTPUT_DIR/tmp/$$TARGET
-DESTDIR = $$OUTPUT_DIR
-MOC_DIR = $$OUTPUT_DIR/tmp/$$TARGET/moc
-RCC_DIR = $$OUTPUT_DIR/tmp/$$TARGET/rcc
-UI_DIR = $$OUTPUT_DIR/tmp/$$TARGET/ui
-LIBS += -L$$DESTDIR
-DEPENDPATH += . \
-    $$SOURCE_DIR
-INCLUDEPATH += . \
-    $$SOURCE_DIR
-INCLUDEPATH += $$MOC_DIR
-plugin:!isEmpty(PLUGIN_SUBDIR):DESTDIR = $$OUTPUT_DIR/$$PLUGIN_SUBDIR
-include(hsdialerwidgetplugin.pri)
-exportResources(./resource/*.manifest, $$PLUGIN_SUBDIR)
-exportResources(./resource/*.svg, $$PLUGIN_SUBDIR)
-exportResources(./resource/*.png, $$PLUGIN_SUBDIR)
-RESOURCES += hsdialerwidgetpluging.qrc
--- a/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetpluging.qrc	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<RCC>
-    <qresource prefix="/icons">
-        <file>resource/qtg_fr_shortcut_badge_bg_r.png</file>
-        <file>resource/qtg_fr_shortcut_badge_bg_c.png</file>
-        <file>resource/qtg_fr_shortcut_badge_bg_l.png</file>
-        <file>resource/qtg_graf_hs_dialer.svg</file>
-    </qresource>
-    <qresource prefix="/data">
-    	<file>resource/dialerwidget.widgetml</file>
-    	<file>resource/dialerwidget.css</file>
-    </qresource>
-    
-</RCC>
--- a/phoneplugins/hsdialerwidgetplugin/inc/dialerwidgetengine.h	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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:
-*
-*/
-
-#ifndef HSDIALERWIDGETENGINE_H_
-#define HSDIALERWIDGETENGINE_H_
-
-#include <QObject>
-#include <xqsettingsmanager.h>
-
-class DialerWidgetEngine : public QObject    
-    {
-    Q_OBJECT
-public:
-    DialerWidgetEngine();
-    virtual ~DialerWidgetEngine();
-    bool initialize();
-    int missedCallsCount();
-    
-public slots:
-    void valueChanged(const XQSettingsKey &key, const QVariant &value);
-signals:
-    void exceptionOccured(const int& err);
-    void missedCallsCountChanged(const int& missedCallsCount);
-private:
-
-private:
-    XQSettingsManager * m_settingsManager;
-    int m_missedCalls;
-    };
-
-#endif /* HSDIALERWIDGETENGINE_H_ */
--- a/phoneplugins/hsdialerwidgetplugin/inc/hsdialerwidget.h	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef HSDIALERWIDGET_H
-#define HSDIALERWIDGET_H
-
-#include <hswidget.h>
-
-#ifndef HOMESCREEN_TEST
-    #define HOMESCREEN_TEST_CLASS(aClassName)
-    #define HOMESCREEN_TEST_FRIEND_CLASS(aClassName)
-#else
-    #define HOMESCREEN_TEST_CLASS(aClassName) class aClassName;
-    #define HOMESCREEN_TEST_FRIEND_CLASS(aClassName) friend class aClassName;
-#endif //HOMESCREEN_TEST
-
-HOMESCREEN_TEST_CLASS(TestDialerWidgetPlugin)
-
-class XQCallInfo;
-class DialerWidgetEngine;
-class HbFrameItem;    
-class HbIconItem;
-class HbTextItem;
-class HbTouchArea;
-
-class HsDialerWidget : public HsWidget
-{
-    Q_OBJECT
-
-public:
-    HsDialerWidget(QGraphicsItem* parent = 0, Qt::WindowFlags flags = 0);
-    ~HsDialerWidget();
-private:
-    
-    void createPrimitives();
-    
-public slots:
-    void startDialer();
-   
-    // from HS fw
-    void onInitialize();
-    void onShow();
-    void onHide();
-    void onUninitialize();
-    
-    // from engine
-    void onEngineException(const int& exc);
-    
-    void onMissedCallsCountChange(const int& count);
-    
-signals:
-    void error();
-
-protected:
-    void mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_UNUSED(event) }
-    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
-    StartResult onStart();
-    StopResult onStop();
-    SuspendResult onSuspend();
-    ResumeResult onResume();
-
-    
-
-
-private:
-    
-    XQCallInfo *mXQCallInfo;
-    DialerWidgetEngine *m_engine;
-    HbFrameItem     *m_background;
-    HbFrameItem     *m_badgeBackground;
-    HbTextItem      *m_text;
-    HbTouchArea     *m_touchArea;
-    HOMESCREEN_TEST_FRIEND_CLASS(TestDialerWidgetPlugin)
-};
-
-#endif
--- a/phoneplugins/hsdialerwidgetplugin/inc/hsdialerwidgetplugin.h	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Homescreen widget plugin
-*
-*/
-
-
-#ifndef HSDIALERWIDGETPLUGIN_H
-#define HSDIALERWIDGETPLUGIN_H
-
-#include <QObject>
-#include <qserviceplugininterface.h>
-
-QTM_USE_NAMESPACE
-
-
-/**
- * @ingroup group_hsdialerwidgetplugin
- * @brief Homescreen dialer widget plugin.
- *
- * This library includes homescreen dialer widget implemented by homescreen scrum team.
- * This plugin provides widgets that are described in the  hsdialerwidgetplugin.xml plugin
- * xml file. 
- *
- * @since S60 ?S60_version.
- */
-class HsDialerWidgetPlugin : public QObject, public QServicePluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(QtMobility::QServicePluginInterface)
-
-public:
-    QObject *createInstance(const QServiceInterfaceDescriptor &descriptor,
-                            QServiceContext *context,
-                            QAbstractSecuritySession *session);
-
-};
-
-#endif //HSDIALERWIDGETPLUGIN_H
--- a/phoneplugins/hsdialerwidgetplugin/resource/dialerwidget.css	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-MyWidget {
-	layout: default
-}
-
-MyWidget::background {
-	top: -6un;
-	right: 6un;
-	left: -6un;
-	preferred-width: 24un;
-	preferred-height: 24un;
-	zvalue: 0;
-}
-
-MyWidget::badgeBackground {
-	left: -1.5un;
-  right: 1.5un;
-  top: -1.5un;
-  bottom: 1.5un;
-  preferred-width: 3.0un;
-  preferred-height: 3.0un;
-  zvalue: 1;
-}
-
-MyWidget::text {
-  left: -1.5un;
-  right: 1.5un;
-  top: -1.5un;
-  bottom: 1.5un;
-  fixed-width: 3.0un;
-  text-align: center center;
-	text-height: var(hb-param-text-height-tiny);
-	text-line-count-max: 1;
-	color: var(qtc_list_item_title_normal);
-	zvalue: 2;
-}
-
-MyWidget::touch_area {
-	left: -6.0un;
-	top: -6.0un;
-	preferred-width: 12un;
-	preferred-height: 12un;
-	zvalue: 3;
-}
-
--- a/phoneplugins/hsdialerwidgetplugin/resource/dialerwidget.widgetml	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbwidget type="MyWidget" version="0.1">
-    <layout name="default" type="mesh">
-    		<meshitem dst="" dstEdge="TOP" src="background" srcEdge="TOP"/>
-    		<meshitem dst="" dstEdge="RIGHT" src="background" srcEdge="RIGHT"/>
-        <meshitem dst="badgeBackground" dstEdge="RIGHT" src="background" srcEdge="LEFT"/>
-        <meshitem dst="" dstEdge="LEFT" src="text" srcEdge="LEFT"/>
-        <meshitem dst="" dstEdge="TOP" src="text" srcEdge="TOP"/>
-        <meshitem dst="" dstEdge="LEFT" src="touch_area" srcEdge="LEFT"/>
-        <meshitem dst="" dstEdge="RIGHT" src="touch_area" srcEdge="RIGHT"/>
-        <meshitem dst="background" dstEdge="BOTTOM" src="touch_area" srcEdge="TOP"/>
-    </layout>
-    <metadata>
-        <items>
-            <item name="background" type="HbWidget"/>
-            <item name="badgeBackground" type="HbWidget"/>
-            <item name="text" text="0" type="HbTextItem"/>
-            <item name="touch_area" type="HbTouchArea"/>
-        </items>
-    </metadata>
-</hbwidget>
--- a/phoneplugins/hsdialerwidgetplugin/resource/hsdialerwidgetplugin.manifest	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<widgetprovider>
-    <widget library="hsdialerwidgetplugin"
-            uri="hsdialerwidgetplugin"
-            title="Dialer"
-            iconuri="qtg_graf_hs_dialer.svg"
-            description="The dialer is used to make phone calls."/>
-</widgetprovider>
--- a/phoneplugins/hsdialerwidgetplugin/resource/hsdialerwidgetplugin.s60xml	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<service>
-    <name>hsdialerwidgetplugin</name>
-    <filepath>hsdialerwidgetplugin</filepath>
-    <description>Dialer widget</description>
-    <interface>
-        <name>com.nokia.symbian.IHomeScreenWidget</name>
-        <version>1.0</version>
-        <description>The dialer widget displays dialing menu</description>
-        <capabilities></capabilities>
-        <customproperty key="iconuri">qtg_graf_hs_dialer.svg</customproperty>
-        <customproperty key="title">Dialer</customproperty>
-    </interface>
-</service>
--- a/phoneplugins/hsdialerwidgetplugin/resource/hsdialerwidgetplugin.xml	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<service>
-    <name>hsdialerwidgetplugin</name>
-    <filepath>hsdialerwidgetplugin</filepath>
-    <description>Dialer widget</description>
-    <interface>
-        <name>com.nokia.symbian.IHomeScreenWidget</name>
-        <version>1.0</version>
-        <description>The dialer widget displays dialing menu</description>
-        <capabilities></capabilities>
-        <customproperty key="iconuri">qtg_graf_hs_dialer.svg</customproperty>
-        <customproperty key="title">Dialer</customproperty>
-    </interface>
-</service>
Binary file phoneplugins/hsdialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_c.png has changed
Binary file phoneplugins/hsdialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_l.png has changed
Binary file phoneplugins/hsdialerwidgetplugin/resource/qtg_fr_shortcut_badge_bg_r.png has changed
--- a/phoneplugins/hsdialerwidgetplugin/resource/qtg_graf_hs_dialer.svg	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<?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 baseProfile="tiny" height="81px" version="1.1" viewBox="0 0 81 81" width="81px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<path d="M81,75c0,3.3-2.699,6-6,6H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h69c3.301,0,6,2.7,6,6  V75z" fill="url(#SVGID_1_)" fill-opacity="0.92" stroke-opacity="0.92"/>
-<path d="M75,0.5c3.033,0,5.5,2.467,5.5,5.5v69c0,3.033-2.467,5.5-5.5,5.5H6c-3.033,0-5.5-2.467-5.5-5.5V6  c0-3.033,2.467-5.5,5.5-5.5H75 M75,0H6C2.7,0,0,2.7,0,6v69c0,3.3,2.7,6,6,6h69c3.301,0,6-2.7,6-6V6C81,2.7,78.301,0,75,0L75,0z" fill="#999999"/>
-<g>
-<g>
-<path d="M28.548,20.202c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.47,3.284,3.284V20.202z" fill="#3C3C3C"/>
-<path d="M47.343,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#3C3C3C"/>
-<path d="M66.136,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284V16.37    c0-1.814,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#3C3C3C"/>
-<path d="M28.548,35.255c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V35.255z" fill="#3C3C3C"/>
-<path d="M47.343,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#3C3C3C"/>
-<path d="M66.136,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#3C3C3C"/>
-<path d="M28.548,50.034c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V50.034z" fill="#3C3C3C"/>
-<path d="M47.343,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#3C3C3C"/>
-<path d="M47.343,64.63c0,1.815-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.469-3.284-3.284v-3.831    c0-1.813,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.471,3.285,3.284V64.63z" fill="#3C3C3C"/>
-<path d="M66.136,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#3C3C3C"/>
-</g>
-</g>
-<rect fill="none" height="81" width="81"/>
-<defs>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="40.5005" x2="40.5005" y1="81.3467" y2="41.859">
-<stop offset="0" style="stop-color:#F2F2F2"/>
-<stop offset="1" style="stop-color:#FFFFFF"/>
-</linearGradient>
-</defs>
-</svg>
--- a/phoneplugins/hsdialerwidgetplugin/resource/qtg_graf_hs_dialer_pressed.svg	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?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 baseProfile="tiny" height="81px" version="1.1" viewBox="0 0 81 81" width="81px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<path d="M81,75c0,3.3-2.699,6-6,6H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h69c3.301,0,6,2.7,6,6V75z" fill="url(#SVGID_1_)"/>
-<path d="M75,0.5c3.033,0,5.5,2.467,5.5,5.5v69c0,3.033-2.467,5.5-5.5,5.5H6  c-3.033,0-5.5-2.467-5.5-5.5V6c0-3.033,2.467-5.5,5.5-5.5H75 M75,0H6C2.7,0,0,2.7,0,6v69c0,3.3,2.7,6,6,6h69c3.301,0,6-2.7,6-6V6  C81,2.7,78.301,0,75,0L75,0z" display="none" fill="#999999"/>
-<g>
-<g>
-<path d="M28.548,20.202c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.47,3.284,3.284V20.202z" fill="#FFFFFF"/>
-<path d="M47.343,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284V16.37    c0-1.814,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#FFFFFF"/>
-<path d="M66.136,20.202c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284V16.37    c0-1.814,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.47,3.285,3.284V20.202z" fill="#FFFFFF"/>
-<path d="M28.548,35.255c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V35.255z" fill="#FFFFFF"/>
-<path d="M47.343,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#FFFFFF"/>
-<path d="M66.136,35.255c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V35.255z" fill="#FFFFFF"/>
-<path d="M28.548,50.034c0,1.813-1.471,3.284-3.284,3.284h-7.116c-1.813,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.471-3.284,3.284-3.284h7.116c1.813,0,3.284,1.469,3.284,3.284V50.034z" fill="#FFFFFF"/>
-<path d="M47.343,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.471-3.284-3.284v-3.831    c0-1.815,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#FFFFFF"/>
-<path d="M47.343,64.63c0,1.815-1.471,3.284-3.285,3.284h-7.115c-1.815,0-3.284-1.469-3.284-3.284v-3.831    c0-1.813,1.469-3.284,3.284-3.284h7.115c1.814,0,3.285,1.471,3.285,3.284V64.63z" fill="#FFFFFF"/>
-<path d="M66.136,50.034c0,1.813-1.471,3.284-3.285,3.284h-7.115c-1.813,0-3.283-1.471-3.283-3.284v-3.831    c0-1.815,1.471-3.284,3.283-3.284h7.115c1.814,0,3.285,1.469,3.285,3.284V50.034z" fill="#FFFFFF"/>
-</g>
-</g>
-<rect fill="none" height="81" width="81"/>
-<defs>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="40.4995" x2="40.4995" y1="79.9482" y2="102.8848">
-<stop offset="0" style="stop-color:#8CE0FF"/>
-<stop offset="0.2432" style="stop-color:#83DEFD"/>
-<stop offset="0.6383" style="stop-color:#6BD8F7"/>
-<stop offset="1" style="stop-color:#4FD1F0"/>
-</linearGradient>
-</defs>
-</svg>
--- a/phoneplugins/hsdialerwidgetplugin/rom/hsdialerwidgetplugin.iby	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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:
-*
-*/
-
-#ifndef __HSDIALERWIDETPLUGIN_IBY__
-#define __HSDIALERWIDETPLUGIN_IBY__
-
-file=ABI_DIR\BUILD_DIR\hsdialerwidgetplugin.dll                                        	SHARED_LIB_DIR\hsdialerwidgetplugin.dll
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.qtplugin    	private\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.qtplugin
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.manifest    	private\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.manifest
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_graf_hs_dialer.svg		   	private\20022f35\import\widgetregistry\20022F44\qtg_graf_hs_dialer.svg	
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_r.png    private\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_r.png
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_l.png	private\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_l.png
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_c.png    private\20022f35\import\widgetregistry\20022F44\qtg_fr_shortcut_badge_bg_c.png       
-data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.xml          private\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.xml
-
-#endif //__HSDIALERWIDETPLUGIN_IBY__
--- a/phoneplugins/hsdialerwidgetplugin/src/dialerwidgetengine.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +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:
-*
-*/
-
-#include "dialerwidgetengine.h"
-
-#include <logsdomaincrkeys.h>
-#include <logsservices.h>
-
-DialerWidgetEngine::DialerWidgetEngine():
-    m_missedCalls(-1)
-{
-}
-
-DialerWidgetEngine::~DialerWidgetEngine()
-{
-    delete m_settingsManager;
-    m_settingsManager = NULL;
-}
-
-bool DialerWidgetEngine::initialize()
-{
-#ifdef Q_OS_SYMBIAN
-    m_settingsManager = new XQSettingsManager(this);
-    if ( !m_settingsManager ){
-        return false;
-    }
-    XQSettingsKey settingsKey( XQSettingsKey::TargetCentralRepository,
-                KCRUidLogs.iUid, KLogsNewMissedCalls );
-    
-    if ( !connect( m_settingsManager,
-                SIGNAL( valueChanged(const XQSettingsKey & ,const QVariant &)),
-                    this, SLOT(valueChanged(XQSettingsKey,
-                            QVariant)))){
-        return false;
-    }
-    
-    if(!m_settingsManager->startMonitoring( settingsKey )){
-        return false;
-    }
-    
-#endif
-    return true;
-}
-
-void DialerWidgetEngine::valueChanged( 
-        const XQSettingsKey &key, 
-        const QVariant &value )
-{
-    if ( key.key() == (quint32)KLogsNewMissedCalls ){
-        m_missedCalls = value.toInt(); 
-        emit missedCallsCountChanged( m_missedCalls );
-    }
-}
-
-int DialerWidgetEngine::missedCallsCount()
-{
-    return m_missedCalls;
-}
--- a/phoneplugins/hsdialerwidgetplugin/src/hsdialerwidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +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:
-*
-*/
-
-#include <HbStyle>
-#include <HbStyleLoader>
-#include <HbFrameItem>
-#include <HbFrameDrawer>
-#include <HbIconItem>
-#include <HbTextItem>
-#include <HbTouchArea>
-#include "dialerwidgetengine.h"
-
-#ifdef Q_OS_SYMBIAN
-#include "qtphonelog.h"
-#include <xqservicerequest.h>
-#include <xqcallinfo.h>
-#include <xqpublishandsubscribeutils.h>
-#include <logsservices.h>
-#include <xqrequestinfo.h>
-#else
-#define PHONE_TRACE
-#define PHONE_TRACE1(A)
-#define PHONE_TRACE2(A, B)
-#define PHONE_TRACE3(A, B, C)
-#define PHONE_TRACE4(A, B, C, D)
-#endif
-
-#include "hsdialerwidget.h"
-
-
-namespace
-{
-    const char KDialerWidgetIcon[] = ":/icons/resource/qtg_graf_hs_dialer";
-    const char KMissedCallShortcutBadge[] = ":/icons/resource/qtg_fr_shortcut_badge_bg";
-    const char KDialerWidgetWidgetml[] = ":/data/resource/dialerwidget.widgetml";
-    const char KDialerWidgetCss[] = ":/data/resource/dialerwidget.css";
-}
-
-/*!
-    \class HsDialerWidget
-
-    \ingroup group_hsdialerwidgetplugin
-    \brief Implementation for the homescreen dialer launcher.
-
-*/
-
-/*!
-    Constructs dialer widget with given \a parent and given window \a flags.
-*/
-HsDialerWidget::HsDialerWidget(QGraphicsItem *parent, Qt::WindowFlags flags)
-  : HsWidget(parent, flags),
-    mXQCallInfo(0), m_background(0), m_badgeBackground(0), m_text(0), m_touchArea(0)
-{   
-    PHONE_TRACE 
-}
-
-/*!
-    Destructor.
-*/
-HsDialerWidget::~HsDialerWidget()
-{
-    PHONE_TRACE
-}
-
-/*!
-    \fn void HsDialerWidget::startDialer()
-
-    Starts dialer widget via view activation service.
-*/
-void HsDialerWidget::startDialer()
-{
-    PHONE_TRACE
-#ifdef Q_OS_SYMBIAN
-    PHONE_DEBUG("HsDialerWidget::startDialer");
-    
-    if (!mXQCallInfo) {
-        mXQCallInfo = XQCallInfo::create();
-        mXQCallInfo->setParent(this);
-    }    
-    QList<CallInfo> calls;
-    mXQCallInfo->getCalls(calls);
-        
-    if( 0 < calls.count() ){
-        PHONE_DEBUG("call ongoing, bring Telephone to foreground");
-        
-        // ToDo: should telephone + dialpad be opened when there is a waiting call?
-        int dialer(1);
-        XQServiceRequest snd("com.nokia.services.telephony.uistarter", "start(int)", false);
-        snd << dialer;
-        QVariant retValue;
-        snd.send(retValue);
-    }
-    else {
-        PHONE_DEBUG("no calls, open Dialer");
-        XQServiceRequest snd("com.nokia.services.logsservices.starter",
-            "start(int,bool)", false);
-        XQRequestInfo info;
-        info.setForeground(true);
-        snd.setInfo(info);
-        snd << (int)LogsServices::ViewAll;
-        snd << true;
-        int retValue;
-        snd.send(retValue);
-
-        //LogsServices::start(LogsServices::ViewAll, true);
-    }
-#endif
-
-}
-
-void HsDialerWidget::onInitialize()
-{
-    PHONE_TRACE
-    QT_TRY{
-        // basic ui
-        createPrimitives();
-        Q_ASSERT(HbStyleLoader::registerFilePath(KDialerWidgetWidgetml));
-        Q_ASSERT(HbStyleLoader::registerFilePath(KDialerWidgetCss));
-        // Engine construction is 2 phased 
-        m_engine = new DialerWidgetEngine();
-        connect(m_engine, SIGNAL( exceptionOccured(const int&) )
-                ,this, SLOT( onEngineException(const int&) ) );
-        
-        if(!m_engine->initialize()){
-            //engine construction failed. Give up.
-            emit error();
-            return;
-            }
-        connect( m_engine, SIGNAL(missedCallsCountChanged(const int&)),
-                this, SLOT(onMissedCallsCountChange(const int&)));
-        
-    }
-    QT_CATCH(...){
-        emit error();
-    }
-}
-
-/*!
-    \fn void HsDialerWidget::onShow()
-
-    Shows the widget
-*/
-void HsDialerWidget::onShow()
-{
-    PHONE_TRACE
-    updatePrimitives();
-}
-
-/*!
-    \fn void HsDialerWidget::onHide()
-
-    Hides the widget
-*/
-void HsDialerWidget::onHide()
-{
-    PHONE_TRACE
-}
-
-void HsDialerWidget::onUninitialize()
-{
-    PHONE_TRACE
-    HbStyleLoader::unregisterFilePath(KDialerWidgetWidgetml);
-    HbStyleLoader::unregisterFilePath(KDialerWidgetCss);
-}
-
-void HsDialerWidget::onEngineException(const int& exc)
-{
-    Q_UNUSED(exc);
-    emit error();
-}
-
-void HsDialerWidget::onMissedCallsCountChange(const int& count)
-{
-    m_text->setText( QLocale::system().toString(count));
-    if ( count ){
-        m_text->setVisible(true);
-        m_badgeBackground->setVisible(true);
-    } else {
-        m_text->setVisible(false);
-        m_badgeBackground->setVisible(false);
-    }
-}
-
-/*!
-    \fn void HsDialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
-
-    Dialer widget start is triggered from release \a event.
-    \sa startDialer()
-*/
-void HsDialerWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
-{   
-    Q_UNUSED(event);
-    startDialer();
-}
-
-HsWidget::StartResult HsDialerWidget::onStart()
-{
-    return StartResultRunning;
-}
-HsWidget::StopResult HsDialerWidget::onStop()
-{
-    return StopResultFinished;
-}
-HsWidget::SuspendResult HsDialerWidget::onSuspend()
-{
-    return SuspendResultSuspended;
-}
-HsWidget::ResumeResult HsDialerWidget::onResume()
-{
-    return ResumeResultRunning;
-}
-
-void HsDialerWidget::createPrimitives()
-{   
-    setPreferredSize(100,100);
-    // Background
-    if (!m_background) {
-        HbFrameDrawer *drawer = new HbFrameDrawer(
-                KDialerWidgetIcon, HbFrameDrawer::OnePiece);
-        m_background = new HbFrameItem(drawer, this);
-        style()->setItemName(m_background, /*QLatin1String(*/"background"/*)*/);
-        m_background->moveBy(0,10);
-        m_background->resize(81,81);
-    }
-    
-    // Badge background
-    if (!m_badgeBackground) {
-        HbFrameDrawer *badgedrawer = new HbFrameDrawer(
-                KMissedCallShortcutBadge, HbFrameDrawer::ThreePiecesHorizontal);
-        m_badgeBackground = new HbFrameItem(badgedrawer, this);
-        style()->setItemName(m_background, QLatin1String("badgeBackground"));
-        m_badgeBackground->resize(20,20);
-        m_badgeBackground->moveBy(70,0);
-        m_badgeBackground->setVisible(true);
-        m_badgeBackground->setVisible( false );
-    }
-
-    // Text
-    if (!m_text) {
-        m_text = new HbTextItem(this);
-        style()->setItemName(m_text, QLatin1String("text"));
-        m_text->resize(20,20);
-        m_text->moveBy(76,0);
-        m_text->setVisible(true);
-        HbFontSpec *textFont = new HbFontSpec(HbFontSpec::Primary);
-        textFont->setTextHeight(3*HbDeviceProfile::current().unitValue());
-        m_text->setFontSpec(*textFont);
-        m_text->setText("0");
-        m_text->setVisible( false);
-    }
-
-    // Touch Area
-    if (!m_touchArea) {
-        m_touchArea = new HbTouchArea(this);
-        m_touchArea->installEventFilter(this);
-        style()->setItemName(m_touchArea, QLatin1String("touch_area"));
-        m_touchArea->moveBy(0,10);
-        m_touchArea->resize(81,81);
-    }
-}
--- a/phoneplugins/hsdialerwidgetplugin/src/hsdialerwidgetplugin.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +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:  Homescreen widget plugin
-*
-*/
-
-#include <qserviceinterfacedescriptor.h>
-#include <qabstractsecuritysession.h>
-#include <qservicecontext.h>
-
-#include "hsdialerwidgetplugin.h"
-#include "hsdialerwidget.h"
-#include "qtphonelog.h"
-
-#ifdef COVERAGE_MEASUREMENT
-#pragma CTC SKIP
-#endif //COVERAGE_MEASUREMENT
-
-QObject *HsDialerWidgetPlugin::createInstance(const QServiceInterfaceDescriptor &descriptor,
-                                             QServiceContext *context,
-                                             QAbstractSecuritySession *session)
-{
-    PHONE_DEBUG("HsDialerWidgetPlugin::createInstance");
-    Q_UNUSED(context);
-    Q_UNUSED(session);
-
-    if (descriptor.interfaceName() == QLatin1String("com.nokia.symbian.IHomeScreenWidget")) {
-        PHONE_DEBUG("creating HsDialerWidget instance");
-        return new HsDialerWidget();
-    } else {
-        return 0;
-    }
-}
-
-Q_EXPORT_PLUGIN2(hsdialerwidgetplugin, HsDialerWidgetPlugin)
-
-#ifdef COVERAGE_MEASUREMENT
-#pragma CTC ENDSKIP
-#endif //COVERAGE_MEASUREMENT
--- a/phoneplugins/infowidgetplugin/infowidget/inc/infowidget.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/inc/infowidget.h	Tue Jul 06 14:15:47 2010 +0300
@@ -54,12 +54,6 @@
         AnimationOngoing
     } m_animationState; 
     
-    // Delay for animation start
-    enum AnimationStartDelay {
-        StartNoDelay, 
-        StartDelayed
-    }; 
-    
 public:    
     InfoWidget(QGraphicsItem *parent = 0, Qt::WindowFlags flags = 0);
     ~InfoWidget();
@@ -129,7 +123,7 @@
     void settingsValidationFailed(); 
     void settingsDialogClosed(HbAction* action); 
     
-    bool startMarquees(AnimationStartDelay delay = StartNoDelay);
+    bool startMarquees();
     void stopMarquees(); 
     void marqueeNext(); 
     
--- a/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetlayoutmanager.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetlayoutmanager.h	Tue Jul 06 14:15:47 2010 +0300
@@ -39,7 +39,6 @@
 class InfoWidgetDocumentLoader : public HbDocumentLoader
 {
 public:
-    InfoWidgetDocumentLoader();
     virtual QObject *createObject(const QString& type,
                                   const QString &name);
 };
@@ -123,8 +122,8 @@
     int layoutRows() const; 
     void setLayoutRows(int rows);
     
-    qreal layoutRowHeight() const;
-    bool textFitsToRect(QString text, QFont font, QRectF rect); 
+    qreal layoutRowHeight();
+    bool textFitsToRect(QString text, QFont font, QRectF rect) const;  
     
 private:
     QMap<LayoutItemRole, QGraphicsWidget *> m_widgets;
@@ -135,6 +134,7 @@
     InfoWidgetDocumentLoader *m_documentLoader;
     DisplayRole m_displayRole; 
     int m_layoutRows;
+    qreal m_cachedLayoutRowHeight; 
     
 };
 
--- a/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetnetworkhandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetnetworkhandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -32,7 +32,6 @@
     ~InfoWidgetNetworkHandler();    
 
     bool createSession(); 
-    bool sessionExists();
     
     QString serviceProviderName() const;
     bool serviceProviderNameDisplayRequired() const; 
@@ -50,7 +49,6 @@
 public slots: 
     void suspend(); 
     void resume();
-    
     void enableMcn(); 
     void disableMcn(); 
     
--- a/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -21,7 +21,7 @@
 #include <QObject>
 #include <QScopedPointer>
 #include <rsatservice.h>
-#include "infowidgetsathandlerprivate.h"
+#include "infowidgetsathandler_p.h"
 
 // Class declaration
 class InfoWidgetSatHandler: public QObject
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandler_p.h	Tue Jul 06 14:15:47 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:  
+ *
+ */
+
+#ifndef INFOWIDGETSATHANDLER_P_H_
+#define INFOWIDGETSATHANDLER_P_H_
+
+#include <rsatservice.h>
+#include <rsatsession.h>
+#include <QString>
+
+// Forward declarations 
+class InfoWidgetSatHandler; 
+
+// Class declaration
+class InfoWidgetSatHandlerPrivate: public CActive
+{
+public:  
+    
+    InfoWidgetSatHandlerPrivate(
+            InfoWidgetSatHandler *iwSatHandler, 
+            RSatService& iSatService);
+    ~InfoWidgetSatHandlerPrivate();
+ 
+    void startObserving();
+    bool connect();
+    void disconnect();
+    void activate();
+    void getIdleModeData();
+
+protected: // From CActive
+    void RunL();
+    void DoCancel();
+       
+private: // Data
+    InfoWidgetSatHandler *m_satHandler; // Not owned. 
+    RSatService& m_satService;
+    RSatSession m_satSession;
+    RSatService::TSATIdleResult m_idleResult;
+
+    QString m_idleTxt;
+};
+
+#endif // INFOWIDGETSATHANDLER_P_H_
+
--- a/phoneplugins/infowidgetplugin/infowidget/inc/infowidgetsathandlerprivate.h	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:  
- *
- */
-
-#ifndef INFOWIDGETSATHANDLERPRIVATE_H_
-#define INFOWIDGETSATHANDLERPRIVATE_H_
-
-#include <rsatservice.h>
-#include <rsatsession.h>
-#include <QString>
-
-// Forward declarations 
-class InfoWidgetSatHandler; 
-
-// Class declaration
-class InfoWidgetSatHandlerPrivate: public CActive
-{
-public:  
-    
-    InfoWidgetSatHandlerPrivate(InfoWidgetSatHandler *iwSatHandler, RSatService& iSatService);
-    ~InfoWidgetSatHandlerPrivate();
- 
-    void startObserving();
-    
-    bool connect();
-    int disconnect();
-
-private: 
- 
-    void activate();
-    void getIdleModeData();
-    
-    void RunL();
-    void DoCancel();
-       
-private: // Data
-   
-    InfoWidgetSatHandler *q_ptr;
-    RSatService& m_satService;
-    RSatSession m_satSession;
-    RSatService::TSATIdleResult m_idleResult;
-    
-    QString m_idleTxt;
-};
-
-#endif // INFOWIDGETSATHANDLERPRIVATE_H_
-
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -55,12 +55,13 @@
 // Local constants 
 const int INFOWIDGET_DEFAULT_HEIGHT = 100;
 const int INFOWIDGET_DEFAULT_WIDTH = 200;
+const int INFOWIDGET_MARQUEE_START_DELAY = 5000; 
 const char *TS_FILE_OPERATOR_WIDGET = "operator_widget"; 
 const char *TS_FILE_COMMON = "common";
 const char *BACKGROUND_FRAME_NAME = "qtg_fr_hswidget_normal"; 
 
 /*!
-    InfoWidget::InfoWidget() 
+    Constructor.  
 */
 InfoWidget::InfoWidget(QGraphicsItem* parent, Qt::WindowFlags flags)
     : HbWidget(parent, flags),
@@ -76,8 +77,7 @@
     m_initialized(false)
 {
     INSTALL_TRACE_MSG_HANDLER; 
-    
-    DPRINT << ": IN";
+    DPRINT;
     
     // Localization file loading
     installTranslator(TS_FILE_OPERATOR_WIDGET);
@@ -120,41 +120,32 @@
             backgroundFrameDrawer.take(), this);  
     
     setBackgroundItem(m_backgroundFrameItem); 
-
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::~InfoWidget() 
+    Destructor.  
 */
 InfoWidget::~InfoWidget()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     // Force layout manager to delete widgets 
     // before InfoWidget is destroyed   
     m_layoutManager->destroyWidgets(); 
     
     // Remove and delete language translators 
     removeTranslators(); 
-    
-    DPRINT << ": OUT"; 
     UNINSTALL_TRACE_MSG_HANDLER;
 }
 
 /*!
-    InfoWidget::onInitialize()
-    
     Called by HS framework, saved preference data
     is available when onInitialize() is called and 
-    meta-object data reading should be done here      
+    meta-object data reading should be done here.       
 */
 void InfoWidget::onInitialize()
 {
-    DPRINT << ": IN";
-    
+    DPRINT; 
     m_initialized = true; 
-    
     // Initialize preferences from meta-object data
     if (!readPersistentPreferences()) {
 
@@ -177,24 +168,23 @@
     // Listen for model changes 
     QObject::connect(m_engine.data(), SIGNAL(modelChanged()), 
             this, SLOT(readModel()), Qt::UniqueConnection); 
-    
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::onUninitialize() 
+    This slot is called by HomeScreen framework 
+    when the widget is uninstalled.    
 */
 void InfoWidget::onUninitialize()
 {
-    DPRINT << ": IN";
+    DPRINT;
     stopMarquees();
     m_initialized = false; 
     m_engine->suspend();
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::onShow() 
+    This slot is called by HomeScreen framework 
+    when the widget visibility is gained.    
 */
 void InfoWidget::onShow()
 {
@@ -206,7 +196,8 @@
 }
 
 /*!
-    InfoWidget::onHide() 
+    This slot is called by HomeScreen framework 
+    when the widget visibility is lost.    
 */
 void InfoWidget::onHide()
 {
@@ -218,7 +209,7 @@
 }
 
 /*!
-    InfoWidget::timerEvent() 
+    Handles timer events.  
 */
 void InfoWidget::timerEvent(QTimerEvent *event)
 {
@@ -239,12 +230,11 @@
 }
 
 /*!
-    InfoWidget::installTranslator() 
+    Install widget translator for given translation file.  
 */
 bool InfoWidget::installTranslator(QString translationFile)
 {
-    DPRINT << ": IN";
-
+    DPRINT;
     QString lang = QLocale::system().name();
     QString path = "z:/resource/qt/translations/";
     bool translatorLoaded(false);  
@@ -258,31 +248,23 @@
         m_translators.append(widgetTranslator.take()); 
         DPRINT << ": translator installed: " << translationFile; 
     }
-    
-    DPRINT << ": OUT";
     return translatorLoaded;
 }
 
 /*!
-    InfoWidget::removeTranslators()
-    
-    Remove translators from qApp and delete objects 
+    Remove translators. No need to call 
+    QApplication::removeTranslator, 
+    QTranslator object removes itself before deletion.  
 */
 void InfoWidget::removeTranslators()
 {
-    DPRINT << ": IN";
-
-    foreach (QTranslator *translator, m_translators) {
-        qApp->removeTranslator(translator);
-    }    
+    DPRINT;
     qDeleteAll(m_translators);
     m_translators.clear();
-    
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::boundingRect() 
+    Returns bounding rect. 
 */
 QRectF InfoWidget::boundingRect() const
 {   
@@ -290,9 +272,7 @@
 }
 
 /*!
-    InfoWidget::sizeHint() 
-    
-    Calculate size hint based on visible rows count 
+    Calculate widget size hint based on visible row count.  
 */
 QSizeF InfoWidget::sizeHint(Qt::SizeHint which, const QSizeF & constraint) const   
 {
@@ -325,7 +305,7 @@
 }
 
 /*!
-    InfoWidget::sizePolicy() 
+    Returns size polizy for the widget.   
 */
 QSizePolicy InfoWidget::sizePolicy () const 
 {
@@ -336,13 +316,12 @@
 }
 
 /*!
-    InfoWidget::updateItemsVisibility() 
+    Update item visibility based on display preferences.   
 */
 void InfoWidget::updateItemsVisibility()
 {
-    DPRINT <<": IN"; 
+    DPRINT; 
     int layoutRows = 0; 
-    QList<QGraphicsWidget *> widgetsToHide; 
     
     // Update layout according to item visibility settings
     if (m_preferences->preference(InfoWidgetPreferences::DisplaySpn).compare(
@@ -369,19 +348,19 @@
         m_layoutManager->removeWidget(InfoWidgetLayoutManager::RoleSatTextIcon); 
     }
     
-    DPRINT << ": visible layout rows count: " << layoutRows;
+    if (m_animatingItems.count() == 0) {
+        m_animatingItem = NULL; 
+    }
+    
     m_layoutManager->setLayoutRows(layoutRows);
 }
 
 /*!
-    InfoWidget::layoutInfoDisplay()
-    
-    Layout info display    
+    Layout info display.    
 */
 void InfoWidget::layoutInfoDisplay()
 {  
-    DPRINT << ": IN";
-    
+    DPRINT;
     QGraphicsLayout *infoDisplayLayout = 
         m_layoutManager->layoutInfoDisplay(); 
     
@@ -393,21 +372,16 @@
             m_layout->addItem(contentWidget);
         }
     }
-
     updateItemsVisibility(); 
-    
     endChanges();
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::layoutSettingsDialog()
-    
-    Layout and display settings dialog    
+    Layout and display settings dialog.    
 */
 void InfoWidget::layoutSettingsDialog()
 {  
-    DPRINT << ": IN";
+    DPRINT;
     startChanges();
     
     m_layoutManager->reloadWidgets(InfoWidgetLayoutManager::SettingsDialog); 
@@ -420,28 +394,22 @@
                 RoleSettingsDialog)); 
 
         if (settingsDialog) {
-            DPRINT << ": settingsDialog has been returned from layout manager";
             initializeSettingsDialogItems();
-            
             settingsDialog->setDismissPolicy(HbDialog::NoDismiss); 
             settingsDialog->setTimeout(HbDialog::NoTimeout);
             settingsDialog->open(this, 
                     SLOT(settingsDialogClosed(HbAction *))); 
             }
     }    
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::initializeSettingsDialogItems()
-    
     Set up initial check box states 
-    and connect signals to local slots  
+    and connect signals to local slots.  
 */
 void InfoWidget::initializeSettingsDialogItems()
 {  
-    DPRINT << ": IN";
-
+    DPRINT;
     // Connect display setting check boxes
     HbCheckBox *spnCheckBox = 
             qobject_cast<HbCheckBox *>(m_layoutManager->getWidget(
@@ -478,13 +446,9 @@
                 this, SLOT(satDisplaySettingChanged(int)), 
                 Qt::UniqueConnection); 
     }
-    
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::updateInfoDisplayItem() 
-    
     Fetch widget based on item role and update 
     item specific data. 
 */
@@ -501,8 +465,8 @@
         marqueeItem->setTextColor( HbColorScheme::color(
                 "qtc_hs_list_item_title_normal"));
         
-        // Update widget effective size if not already set  
-        marqueeItem->adjustSize(); 
+        // Update widget effective size
+        marqueeItem->adjustSize();
         if (!m_layoutManager->textFitsToRect(
                 text,
                 marqueeItem->font(), 
@@ -514,88 +478,81 @@
 }
 
 /*!
-    InfoWidget::updateInfoDisplay() 
-    
     Model or visibility data has changed, 
     update info display widgets accordingly. 
 */
 void InfoWidget::updateInfoDisplay()
 {
-    DPRINT << ": IN"; 
-    
+    DPRINT; 
     if (m_initialized) {
         stopMarquees();
         
         if (m_layoutManager->currentDisplayRole() == 
-                InfoWidgetLayoutManager::InfoDisplay )
-            {
-            QString text;
+                InfoWidgetLayoutManager::InfoDisplay) {
+            
             InfoWidgetEngine::ModelData modelData = m_engine->modelData(); 
         
             // Update service provider name item
-            text = modelData.serviceProviderName();
-            updateInfoDisplayItem(InfoWidgetLayoutManager::RoleSpnMarqueeItem, text); 
+            QString text = modelData.serviceProviderName();
+            updateInfoDisplayItem(
+                    InfoWidgetLayoutManager::RoleSpnMarqueeItem, text); 
 
             // Update MCN name item
             text = modelData.mcnName();
-            updateInfoDisplayItem(InfoWidgetLayoutManager::RoleMcnMarqueeItem, text); 
+            updateInfoDisplayItem(
+                    InfoWidgetLayoutManager::RoleMcnMarqueeItem, text); 
             
             // Update SAT display text item
             text = modelData.satDisplayText();
-            updateInfoDisplayItem(InfoWidgetLayoutManager::RoleSatMarqueeItem, text); 
+            updateInfoDisplayItem(
+                    InfoWidgetLayoutManager::RoleSatMarqueeItem, text); 
         }
         
         if (m_animatingItems.count() > 0) {
-            startMarquees(StartDelayed); 
+            startMarquees(); 
         }
     }
 }
 
 /*!
-    InfoWidget::readModel() 
-    
-    Read model data. Model's modelChanged - signal is connected to this slot.  
+    Read model data. 
+    Model's modelChanged - signal is connected to this slot.  
 */
 void InfoWidget::readModel()
 {
-    DPRINT << ": IN"; 
-
+    DPRINT; 
     if (m_layoutManager->currentDisplayRole() == 
             InfoWidgetLayoutManager::InfoDisplay) { 
         updateInfoDisplay(); 
     }
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::handleModelError() 
-    
-    Model error signal is connected to this slot 
+    Model error signal is connected to this slot. 
 */
 void InfoWidget::handleModelError(int operation,int errorCode)
 {
-    DWARNING << ": operation: " << operation << " error: " << errorCode; 
+    DWARNING << ": operation: " << operation << 
+                " error: " << errorCode; 
 }
 
 /*!
-    InfoWidget::mousePressEvent() 
+    Mouse press handler. 
 */
 void InfoWidget::mousePressEvent(QGraphicsSceneMouseEvent *event)
 {
     Q_UNUSED(event);
-    
     // Clear flag 
     m_dragEvent = false; 
 }
 
 /*!
-    InfoWidget::mouseReleaseEvent() 
+    Mouse release handler.  
 */
 void InfoWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
 {
     Q_UNUSED(event);
-
-    // If in info display and widget wasn't dragged 
+    // If widget wasn't dragged 
     // layout and open settings dialog
     if ((!m_dragEvent) && 
           m_layoutManager->currentDisplayRole() == 
@@ -606,23 +563,21 @@
     
     // Clear flag 
     m_dragEvent = false; 
-
 }
 
 /*!
-    InfoWidget::mouseMoveEvent() 
+    Mouse move handler.  
 */
 void InfoWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
 {
     Q_UNUSED(event);
-    
     // Mouse is moving 
     // after mouse press event
     m_dragEvent = true; 
 }
 
 /*!
-    InfoWidget::spnDisplaySettingChanged() 
+    Slot for handling Spn display setting change.  
 */
 void InfoWidget::spnDisplaySettingChanged(int state)
 {
@@ -637,7 +592,7 @@
 }
 
 /*!
-    InfoWidget::mcnDisplaySettingChanged() 
+    Slot for handling Mcn display setting change. 
 */
 void InfoWidget::mcnDisplaySettingChanged(int state)
 {
@@ -652,7 +607,7 @@
 }
 
 /*!
-    InfoWidget::satDisplaySettingChanged() 
+    Slot for handling SAT display setting change. 
 */
 void InfoWidget::satDisplaySettingChanged(int state)
 {
@@ -667,8 +622,6 @@
 }
 
 /*!
-    InfoWidget::mcnDisplay() 
-    
     Getter function for Meta-object property "mcnDisplay"
 */
 QString InfoWidget::mcnDisplay()
@@ -679,8 +632,6 @@
 }
 
 /*!
-    InfoWidget::setMcnDisplay() 
-    
     Setter function for Meta-object property "mcnDisplay"
 */
 void InfoWidget::setMcnDisplay(QString value)
@@ -691,8 +642,6 @@
     }
 
 /*!
-    InfoWidget::homeZoneDisplay() 
-    
     Getter function for Meta-object property "homeZoneDisplay"
 */
 QString InfoWidget::homeZoneDisplay()
@@ -703,8 +652,6 @@
 }
 
 /*!
-    InfoWidget::setHomeZoneDisplay()
-    
     Setter function for Meta-object property "homeZoneDisplay" 
 */
 void InfoWidget::setHomeZoneDisplay(QString value)
@@ -715,8 +662,6 @@
 }
 
 /*!
-    InfoWidget::activeLineDisplay() 
-    
     Getter function for Meta-object property "activeLineDisplay"
 */
 QString InfoWidget::activeLineDisplay()
@@ -727,8 +672,6 @@
 }
 
 /*!
-    InfoWidget::setActiveLineDisplay() 
-    
     Setter function for Meta-object property "activeLineDisplay"
 */
 void InfoWidget::setActiveLineDisplay(QString value)
@@ -751,8 +694,6 @@
 }
 
 /*!
-    InfoWidget::setSatDisplay()
-    
     Setter function for Meta-object property "satDisplay" 
 */
 void InfoWidget::setSatDisplay(QString value)
@@ -763,8 +704,6 @@
 }
 
 /*!
-    InfoWidget::spnDisplay()
-    
     Getter function for Meta-object property "spnDisplay" 
 */
 QString InfoWidget::spnDisplay()
@@ -775,8 +714,6 @@
 }
 
 /*!
-    InfoWidget::setSpnDisplay()
-    
     Setter function for Meta-object property "spnDisplay" 
 */
 void InfoWidget::setSpnDisplay(QString value)
@@ -787,8 +724,6 @@
 }
 
 /*!
-    InfoWidget::readPersistentPreferences()
-    
     Read Meta-object properties and store to preference handler. 
     Restores preferences from previous session.   
 */
@@ -827,8 +762,6 @@
 }
 
 /*!
-    InfoWidget::initializeCheckBoxStates()
-    
     Read display settings from preference store 
     and set check box initial states accordingly. 
 */
@@ -838,7 +771,7 @@
     HbCheckBox *spnCheckBox = qobject_cast<HbCheckBox *>(m_layoutManager->getWidget(
             InfoWidgetLayoutManager::RoleSpnCheckBox));
     if (spnCheckBox) {
-    spnCheckBox->setChecked(m_preferences->isPreferenceSet(
+        spnCheckBox->setChecked(m_preferences->isPreferenceSet(
                 InfoWidgetPreferences::DisplaySpn));
     }
     
@@ -858,18 +791,17 @@
 }
 
 /*!
-    InfoWidget::settingsEditingFinished()
+    Handles settings validating and storing
+    when the settings dialog is closed with Ok action.   
 */
 void InfoWidget::settingsEditingFinished()
 {
-    DPRINT << ": IN";
-    
-    // Save settings data if validation succeeds 
+    DPRINT;
+     
     if (m_preferences->validate()) {
-        DPRINT << ": switching to info display";
-        
+
         // Signal HS framework to store Meta-object 
-        // preferences if changed 
+        // preferences if preferences have changed. 
         if (m_preferences->storePreferences()) {
             emit setPreferences(
                     m_preferences->preferenceNames());
@@ -884,20 +816,15 @@
                 true);
         
     } else {
-        DPRINT << ": settings validation failed";
         // Cancel edit mode 
         settingsEditingCancelled();
         
         // Display warning note
         settingsValidationFailed();
     }
-    
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::settingsEditingCancelled()
-    
     Slot to be called when settings editing 
     shouldn't cause change set of visible items. 
     Restores previous state.  
@@ -915,50 +842,47 @@
 }
 
 /*!
-    InfoWidget::settingsDialogClosed()
-    
-    Slot to be called when settings dialog is about to close
+    Slot to be called when settings dialog is about to close. 
 */
 void InfoWidget::settingsDialogClosed(HbAction* action)
 {
-    DPRINT << ": IN";
+    DPRINT;
     if (action) {
         if (action->text() == hbTrId("txt_common_button_ok")) {
             settingsEditingFinished(); 
-        } else if (action->text() == hbTrId("txt_common_button_cancel") ) {
+        } else if (action->text() == hbTrId("txt_common_button_cancel")) {
             settingsEditingCancelled(); 
         }       
     } else {
-        DPRINT << ": null action";
         settingsEditingCancelled(); 
     }
      
     // Switch to info display 
     layoutInfoDisplay();
-    DPRINT << ": OUT";
 }
 
 /*!
-    InfoWidget::startChanges()
+    Handle start of changes, called when settings dialog
+    is shown and layout changes are expected.      
 */
 void InfoWidget::startChanges()
 {
     DPRINT;
     m_layoutChanging = true;
     if (m_animationState != AnimationIdle) {
-            stopMarquees(); 
+        stopMarquees(); 
     }
 }
 
 /*!
-    InfoWidget::endChanges()
+    Handle end of changes, called when settings dialog
+    is closed and layout changes are to be finished.      
 */
 void InfoWidget::endChanges()
 {
     DPRINT;
     updateGeometry();
     updateInfoDisplay();
-    
     m_layoutChanging = false;
 }
 
@@ -976,10 +900,7 @@
 }
 
 /*!
-   InfoWidget::settingsValidationFailed()
-   
    Slot to be called when preference validation has failed. 
-   Displays warning message box
 */
 void InfoWidget::settingsValidationFailed()
 {
@@ -991,13 +912,11 @@
 }
 
 /*!
-   InfoWidget::startMarquees()
-   
    Start marquee animations. 
    First find existing marquee items and 
-   enable marquee sequence
+   enable marquee sequence. 
 */
-bool InfoWidget::startMarquees(AnimationStartDelay delay)
+bool InfoWidget::startMarquees()
 {  
     DPRINT;
     bool started(true); 
@@ -1009,68 +928,53 @@
       
     int animatingItemsCount = m_animatingItems.count();  
     if (animatingItemsCount > 0) {
-        HbMarqueeItem *marqueeItem(NULL);  
-        foreach (marqueeItem, m_animatingItems) {
-            if (animatingItemsCount > 1) {
-                // Multiple items, connect to marqueeNext() 
-                // sequence logic
-                QObject::connect(
-                        marqueeItem,SIGNAL(animationStopped()),
-                        this, SLOT(marqueeNext()), 
-                        Qt::UniqueConnection);
-                marqueeItem->setLoopCount(1); 
-            } else if (animatingItemsCount ==1 ){
-                // Single item, set continuous marquee mode 
-                marqueeItem->setLoopCount(-1); 
+        foreach (HbMarqueeItem *marqueeItem, m_animatingItems) {
+            if (marqueeItem) {
+                if (animatingItemsCount > 1) {
+                    // Multiple items, connect to marqueeNext() 
+                    // sequence logic
+                    QObject::connect(
+                            marqueeItem, SIGNAL(animationStopped()),
+                            this, SLOT(marqueeNext()), 
+                            Qt::QueuedConnection);
+                    marqueeItem->setLoopCount(1); 
+                } else if (animatingItemsCount == 1){
+                    // Single item, set continuous marquee mode 
+                    marqueeItem->setLoopCount(-1); 
+                }
             }
         }
         
         // Store marquee sequence start item 
         m_animatingItem = m_animatingItems.first();
-        
-        if (delay == StartNoDelay) {
-            m_animationState = AnimationOngoing; 
-            m_animatingItem->startAnimation();
-        } else if (delay == StartDelayed && !m_timerId) {
-            m_animationState = AnimationStarting;
-            m_timerId = startTimer(100);
-        } 
-        
+        m_animationState = AnimationStarting;
+        m_timerId = startTimer(INFOWIDGET_MARQUEE_START_DELAY);
     } else {
-        // No animating items, not started
-        DWARNING << ": not done, no animating items";
+        DPRINT << ": not started, no animating items";
         m_animatingItem = NULL; 
         started = false;
     }
-    
     return started; 
 }
 
 /*!
-   InfoWidget::stopMarquees()
-   
    Stop all marquee animations and reset 
-   animation state
+   animation state. 
 */
 void InfoWidget::stopMarquees()
 {  
     DPRINT;
     if (m_animationState != AnimationIdle && 
         m_animatingItems.count() > 0) {
-        HbMarqueeItem *marqueeItem(NULL);
-        
-        foreach (marqueeItem, m_animatingItems) {
-            
-            // Disconnect if more than one item, 
-            // single animator doesn't connect to animationStopped() 
-            if (m_animatingItems.count() > 1) {
+        foreach (HbMarqueeItem *marqueeItem, m_animatingItems) {
+            if (marqueeItem) {
                 QObject::disconnect(
                     marqueeItem, SIGNAL(animationStopped()),
                     this, SLOT(marqueeNext()));
-            }
-            
-            if (marqueeItem->isAnimating()) {
-                marqueeItem->stopAnimation();
+                
+                if (marqueeItem->isAnimating()) {
+                    marqueeItem->stopAnimation();
+                }
             }
         }
     }
@@ -1087,8 +991,6 @@
 }
 
 /*!
-   InfoWidget::marqueeNext()
-   
    Starts marquee animation for 
    next item in sequence.  
 */
@@ -1117,7 +1019,6 @@
             }
         }
     }
-    
 }
 
 // End of File. 
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -88,13 +88,11 @@
  */
 void InfoWidgetEngine::updateNetworkDataToModel()
 {
-    DPRINT << ": IN"; 
-    
-    if (m_networkHandler->sessionExists() && 
-        m_networkHandler->isOnline()) {
-    
+    if (m_networkHandler->isOnline()) {
+        DPRINT << ": online, update data";
         m_modelData.setServiceProviderName(
                 m_networkHandler->serviceProviderName());
+
         m_modelData.setServiceProviderNameDisplayRequired(
                 m_networkHandler->serviceProviderNameDisplayRequired());
     
@@ -107,10 +105,10 @@
         m_modelData.setHomeZoneTextTag(
                 m_networkHandler->homeZoneTextTag());
     } else {
-        // Not registered to network, clear data
-        m_modelData.setServiceProviderName(QString(""));
-        m_modelData.setMcnName(QString(""));
-        m_modelData.setHomeZoneTextTag(QString("")); 
+        DPRINT << ": offline, clear data";
+        m_modelData.setServiceProviderName("");
+        m_modelData.setMcnName("");
+        m_modelData.setHomeZoneTextTag(""); 
     }
         
     emit modelChanged();
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine_s.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidgetengine_s.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -19,12 +19,20 @@
 #include "infowidgetlogging.h"
 
 /*!
+  Stubbed class implementation for testing  
+  Widget on windows/other environment.  
+*/
+
+
+/*!
    InfoWidgetEngine::InfoWidgetEngine
  */
 InfoWidgetEngine::InfoWidgetEngine(QObject *parent): 
-    QObject(parent)
+    QObject(parent),
+    m_networkHandler(NULL),
+    m_satHandler(NULL)
 {
-    DPRINT;
+    DPRINT << ": STUBBED";
 }
 
 /*!
@@ -32,53 +40,24 @@
  */
 InfoWidgetEngine::~InfoWidgetEngine()
 {
-    DPRINT;
+    DPRINT << ": STUBBED";
 }    
 
 /*!
-   InfoWidgetEngine::logModelData
-   
-   Utility function for logging model data
- */
-void InfoWidgetEngine::logModelData()
-{
-    DPRINT << ": mcn name: " << m_modelData.mcnName(); 
-    DPRINT << ": service provider name: " << m_modelData.serviceProviderName();
-    DPRINT << ": homezone text tag: " << m_modelData.homeZoneTextTag();
-    
-    DPRINT << ": mcn type: " << m_modelData.mcnIndicatorType(); 
-    DPRINT << ": active line: " << m_modelData.activeLine(); 
-    DPRINT << ": homezone indicator type: " << m_modelData.homeZoneIndicatorType(); 
-} 
-
-/*!
    InfoWidgetEngine::modelData
-   
-   Getter for model data. 
  */
 const InfoWidgetEngine::ModelData& InfoWidgetEngine::modelData() const
 {
-    DPRINT;
+    DPRINT << ": STUBBED";
     return m_modelData; 
 }
 
 /*!
-   InfoWidgetEngine::setModelData
-   
-   Enables setting model initial data to engine.   
- */
-void InfoWidgetEngine::setModelData(const InfoWidgetEngine::ModelData &data)
-{
-    DPRINT; 
-    m_modelData = data;
-}
-
-/*!
-   InfoWidgetEngine::updateNetworkDataToModel
+   InfoWidgetEngine::updateNetworkDataToModel() 
  */
 void InfoWidgetEngine::updateNetworkDataToModel()
 {
-    DPRINT;
+    DPRINT << ": STUBBED"; 
 }
 
 /*!
@@ -86,7 +65,7 @@
  */
 void InfoWidgetEngine::updateSatDataToModel()
 {
-    DPRINT;
+    DPRINT << ": STUBBED";
 }
 
 /*!
@@ -94,32 +73,61 @@
  */
 void InfoWidgetEngine::updateLineDataToModel()
 {
-    DPRINT;
+    DPRINT << ": STUBBED";
 }
 
 /*!
    InfoWidgetEngine::handleNetworkError
  */
-void InfoWidgetEngine::handleNetworkError(int operation, int errorCode)
+void InfoWidgetEngine::handleNetworkError(
+        int operation, int errorCode)
 {
-    DPRINT << ": operation: " << operation << " error code: " << errorCode; 
+    DPRINT << ": STUBBED"; 
 }
 
 /*!
    InfoWidgetEngine::handleSatError
  */
-void InfoWidgetEngine::handleSatError(int operation, int errorCode)
+void InfoWidgetEngine::handleSatError(
+        int operation, int errorCode)
 {
-    DPRINT << ": operation: " << operation << " error code: " << errorCode; 
+    DPRINT << ": STUBBED"; 
 }
 
 /*!
    InfoWidgetEngine::handleLineError
  */
-void InfoWidgetEngine::handleLineError(int operation, int errorCode)
+void InfoWidgetEngine::handleLineError(
+        int operation, int errorCode)
+{
+    DPRINT << ": STUBBED"; 
+}
+
+/*!
+   InfoWidgetEngine::handlePreferencesChanged
+ */
+void InfoWidgetEngine::handlePreferencesChanged(
+        InfoWidgetPreferences::Options options)
 {
-    DPRINT << ": operation: " << operation << " error code: " << errorCode; 
+    DPRINT << ": STUBBED";
+}
+
+/*!
+   InfoWidgetEngine::suspend
+ */
+void InfoWidgetEngine::suspend() 
+{
+    DPRINT << ": STUBBED";
 }
 
+/*!
+   InfoWidgetEngine::preferenceChanged
+ */
+void InfoWidgetEngine::resume()
+{
+    DPRINT << ": STUBBED"; 
+}
+
+
 // End of File. 
 
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidgetlayoutmanager.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidgetlayoutmanager.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -15,7 +15,6 @@
  *
  */
 
-#include "infowidgetlayoutmanager.h"
 #include <QtGlobal>
 #include <QObject>
 #include <QGraphicsWidget>
@@ -25,6 +24,8 @@
 #include <hbmarqueeitem.h>
 #include <hbiconitem.h> 
 #include <hbpushbutton.h>
+#include <hbinstance.h>
+#include "infowidgetlayoutmanager.h"
 #include "infowidgetlogging.h"
 
 /*!
@@ -67,47 +68,32 @@
 const char LAYOUT_NAME_CONTAINER[] = "container";
 
 /*!
-  InfoWidgetDocumentLoader::InfoWidgetDocumentLoader()
- */
-InfoWidgetDocumentLoader::InfoWidgetDocumentLoader()
-{
-}
-
-/*!
-  InfoWidgetDocumentLoader::createObject()
+  Create object from document. 
  */
 QObject *InfoWidgetDocumentLoader::createObject(
     const QString &type,
     const QString &name)
 {
-    DPRINT << ": IN";
-    
-    DPRINT << ": type: "<< type;
-    DPRINT << ": name: "<< name;
-    
+    DPRINT;
     if ( type == HbMarqueeItem::staticMetaObject.className() ) {
-        DPRINT << ": HbMarqueeItem";
         QObject *object = new HbMarqueeItem;
         object->setObjectName(name);
-        DPRINT << ": HbMarqueeitem found, OUT";
         return object;
     }
-    
-    DPRINT << ": OUT";
     return HbDocumentLoader::createObject(type, name);
 }
 
 /*!
-   InfoWidgetLayoutManager::InfoWidgetLayoutManager()
+   Constructor. 
 */
 InfoWidgetLayoutManager::InfoWidgetLayoutManager(QObject *parent) 
 : QObject(parent), 
   m_documentLoader(NULL), 
   m_displayRole(InfoDisplay),
-  m_layoutRows(0)
+  m_layoutRows(0),
+  m_cachedLayoutRowHeight(0.0)
 {
-    DPRINT << ": IN"; 
-    
+    DPRINT; 
     // Fill supported layout item roles for info display
     QList<LayoutItemRole> displayWidgetRoles = widgetRoles(InfoDisplay);
     
@@ -115,46 +101,38 @@
     bool loadResult = loadWidgets(InfoDisplay, 
             displayWidgetRoles,
             m_infoDisplayWidgets); 
-    DPRINT << ": info display widget load result: " << loadResult;
     
     // Fill supported layout item roles for settings display
     displayWidgetRoles = widgetRoles(SettingsDialog);
-  
+
     // Try to load all widgets in list by widget role 
     loadResult = loadWidgets(SettingsDialog, 
             displayWidgetRoles,
             m_settingsDialogWidgets); 
-    DPRINT << ": settings dialog widget load result: " << loadResult;
-    
-    DPRINT << ": OUT";
 }
 
 /*!
-   InfoWidgetLayoutManager::~InfoWidgetLayoutManager()
+   Destructor. 
 */
 InfoWidgetLayoutManager::~InfoWidgetLayoutManager()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     if (m_documentLoader) { 
         delete m_documentLoader;
     }
-    
-    DPRINT << ": OUT";
 }
 
 /*!
-   InfoWidgetLayoutManager::destroyWidgets()
+   Destroy all widgets. 
+   Deletes parent widgets of each display 
+   causing deletion of child items. 
 */
 void InfoWidgetLayoutManager::destroyWidgets()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     // Destroy parent items 
     removeWidget(RoleContent); 
     removeWidget(RoleSettingsDialog); 
-
-    DPRINT << ": OUT";    
 }
 
 /*!
@@ -176,7 +154,7 @@
 } 
 
 /*!
-   InfoWidgetLayoutManager::layoutRows()
+   Returns count of layout rows. 
 */
 int InfoWidgetLayoutManager::layoutRows() const 
 {
@@ -185,7 +163,7 @@
 } 
 
 /*!
-   InfoWidgetLayoutManager::setLayoutRows()
+   Set count of layout rows.  
 */
 void InfoWidgetLayoutManager::setLayoutRows(int rows) 
 {
@@ -194,37 +172,28 @@
 } 
 
 /*!
-   InfoWidgetLayoutManager::layoutRowHeight()
-   
-   Read size from style, currently graphics icon size used
-   as it defines row height in layout. Real font height 
-   and layout spacing could be used instead. 
+   Read row height from style. 
 */
-qreal InfoWidgetLayoutManager::layoutRowHeight() const
+qreal InfoWidgetLayoutManager::layoutRowHeight()
 {
-    DPRINT; 
-    HbStyle style; 
-    qreal rowHeight;
-
-    bool ok = style.parameter("hb-param-graphic-size-primary-small", 
-            rowHeight);
-    if (!ok) {
-        DWARNING << ": Paremeters reading failed!! Using default";
-        rowHeight = 26.8;
+    DPRINT;
+    // Read from style only if not already initialized
+    if (m_cachedLayoutRowHeight == 0.0) { 
+        bool ok = hbInstance->style()->parameter("hb-param-graphic-size-primary-small", 
+                m_cachedLayoutRowHeight);
+            DPRINT << ": row height from style: " << m_cachedLayoutRowHeight;
+        if (!ok) {
+            DWARNING << ": Error, paremeters reading failed!!";
+        }
     }
-    
-    DPRINT << ": rowHeight: " << rowHeight;
-    return rowHeight; 
+    return m_cachedLayoutRowHeight;
 }
 
 /*!
-   InfoWidgetLayoutManager::textFitsToRect()
-   
-   Check if text fits to given rect width. Return true also if 
-   text width is null, or text width AND rect width is null.   
+   Check if text fits to given rect width.  
 */
 bool InfoWidgetLayoutManager::textFitsToRect(QString text, 
-        QFont font, QRectF rect)
+        QFont font, QRectF rect) const 
 {
     bool fits(true);
     if (!rect.isEmpty()) { 
@@ -234,13 +203,13 @@
             fits = false; 
         }
     }
-    
-    DPRINT << ": fits: " << fits;
     return fits; 
 }
 
 /*!
-   InfoWidgetLayoutManager::contentWidget()
+   Returns content widget.  
+   The content widget is layout main widget and parent for 
+   sub-widgets in current display.     
 */
 QGraphicsWidget* InfoWidgetLayoutManager::contentWidget()
 {
@@ -249,7 +218,7 @@
 }
 
 /*!
-   InfoWidgetLayoutManager::marqueeItems()
+   Returns list of marquee items.  
 */
 QList<HbMarqueeItem *> InfoWidgetLayoutManager::marqueeItems() 
 {
@@ -261,65 +230,47 @@
     marqueeItemRoles.append(RoleMcnMarqueeItem);
     marqueeItemRoles.append(RoleSatMarqueeItem);
     
-    LayoutItemRole role;
-    HbMarqueeItem *item(NULL);
-    QGraphicsWidget *widget(NULL); 
-    foreach (role, marqueeItemRoles) {
-        widget = getWidget(role); 
+    foreach (LayoutItemRole role, marqueeItemRoles) {
+        QGraphicsWidget *widget = getWidget(role); 
         if (widget) {
-            item = qobject_cast<HbMarqueeItem*>(widget); 
+            HbMarqueeItem *item = 
+                    qobject_cast<HbMarqueeItem*>(widget); 
             if (item) {
                 items.append(item); 
                 item = NULL; 
             }
         }
     }
-    DPRINT << ": count of marquee items: " << items.count(); 
     return items; 
 }
 
 /*!
-   InfoWidgetLayoutManager::getWidget();
+   Get widget with given item role. 
 */
 QGraphicsWidget* InfoWidgetLayoutManager::getWidget(LayoutItemRole itemRole)
 {
-    DPRINT << ": item role: " << itemRole;
-    
     QGraphicsWidget *widget = m_widgets.value(itemRole); 
-    if (widget) {
-        DPRINT << ": widget: " << widget;
-    }
-    
     return widget; 
 }
 
 /*!
-   InfoWidgetLayoutManager::getObject();
+   Get object with given item role. 
 */
 QObject* InfoWidgetLayoutManager::getObject(LayoutItemRole itemRole)
 {
-    DPRINT << ": item role: " << itemRole;
-    
     QObject *object = m_objects.value(itemRole); 
-    if (object) {
-        DPRINT << ": object: " << object;
-    }
-    
     return object; 
 }
 
 /*!
-   InfoWidgetLayoutManager::removeWidget();
+   Remove widget with given item role. 
 */
 void InfoWidgetLayoutManager::removeWidget(LayoutItemRole itemRole, 
         bool deleteLater)
 {
-    DPRINT << ": item role: " << itemRole;
-    
+    DPRINT;
     QGraphicsWidget *widget = m_widgets.value(itemRole); 
     if (widget) {
-        DPRINT << ": removing widget: " << widget;        
-        m_widgets.remove(itemRole);
         if (!deleteLater) {
             delete widget;
         } else {
@@ -327,81 +278,66 @@
         }
     }
     
-    widget = m_infoDisplayWidgets.value(itemRole); 
-    if (widget) {
-        DPRINT << ": removing widget from m_infoDisplayWidgets";        
-        m_infoDisplayWidgets.remove(itemRole);
-    }
-    
-    widget = m_settingsDialogWidgets.value(itemRole); 
-    if (widget) {
-        DPRINT << ": removing widget from m_settingsDialogWidgets";         
-        m_settingsDialogWidgets.remove(itemRole);
-    }
+    m_widgets.remove(itemRole);
+    m_infoDisplayWidgets.remove(itemRole);
+    m_settingsDialogWidgets.remove(itemRole);
 }
 
 /*!
-    InfoWidgetLayoutManager::layoutInfoDisplay()
+    Returns info display layout.  
 */
 QGraphicsLayout* InfoWidgetLayoutManager::layoutInfoDisplay()
 {   
-    DPRINT << ": IN";
-
+    DPRINT;
     m_displayRole = InfoDisplay;
     m_widgets = m_infoDisplayWidgets; 
            
     QGraphicsLayout *activeLayout(NULL); 
-    DPRINT << ": getting content item and using its layout for activeLayout";
     QGraphicsWidget *content = getWidget(RoleContent); 
     if (content) {
         DPRINT << ": content found, getting layout";
         activeLayout = content->layout(); 
     }
-
-    DPRINT  << ": OUT";
     return activeLayout; 
 }
 
 /*!
-    InfoWidgetLayoutManager::layoutSettingsDialog()
+    Returns settings dialog layout. 
 */
 QGraphicsLayout* InfoWidgetLayoutManager::layoutSettingsDialog()
 {   
-    DPRINT << ": IN";
-    
+    DPRINT;
     m_displayRole = SettingsDialog;
     m_widgets = m_settingsDialogWidgets; 
     
     QGraphicsLayout *activeLayout(NULL); 
-    DPRINT << ": getting settingsDialog item";
     QGraphicsWidget *dialog = getWidget(RoleSettingsDialog); 
     if (dialog) {
-        DPRINT << ": dialog found, getting layout";
         activeLayout = dialog->layout(); 
-        
-        HbAction *okAction = qobject_cast<HbAction *>(getObject(RoleOkAction));
+
+        HbAction *okAction = qobject_cast<HbAction *>(
+                getObject(RoleOkAction));
         if (okAction) {
             dialog->addAction(okAction); 
         }
         
-        HbAction *cancelAction = qobject_cast<HbAction *>(getObject(RoleCancelAction));
+        HbAction *cancelAction = qobject_cast<HbAction *>(
+                getObject(RoleCancelAction));
         if (cancelAction) {
             dialog->addAction(cancelAction);
         }
     }
-
-    DPRINT  << ": OUT";
     return activeLayout;    
 }
 
 /*!
-    InfoWidgetLayoutManager::loadWidgets()
+    Load widgets from document for given display role.
 */
 bool InfoWidgetLayoutManager::loadWidgets(const DisplayRole displayRole, 
         const QList<LayoutItemRole> &displayWidgets,
         QMap<LayoutItemRole, QGraphicsWidget *> &widgetMap)
 {
-    DPRINT << ": IN";
+    DPRINT;
     bool loadResult(true); 
 
     // Cleanup previously loaded content in case of any data  
@@ -410,7 +346,6 @@
     if (!m_documentLoader) {
         m_documentLoader = new InfoWidgetDocumentLoader;
     }
-    
     Q_ASSERT(m_documentLoader); 
     
     bool loaded = true;
@@ -424,33 +359,25 @@
             "InfoWidgetLayoutManager", 
             "Invalid docml file");    
     
-    QGraphicsWidget *widget(NULL);
-    LayoutItemRole currentWidgetRole;
-    bool allWidgetsLoaded(true); 
     
-    foreach (currentWidgetRole, displayWidgets) {
-        widget = loadWidget(*m_documentLoader, displayRole, currentWidgetRole);
+    foreach (LayoutItemRole role, displayWidgets) {
+        QGraphicsWidget *widget = 
+                loadWidget(*m_documentLoader, displayRole, role);
            if (widget) {
-               widgetMap.insert(currentWidgetRole, widget);
+               widgetMap.insert(role, widget);
                widget = NULL;
-           } else {
-               allWidgetsLoaded = false; 
-               DWARNING << ": widget not found!";
-           }
+           } 
     }
     
-    DPRINT << ": allWidgetsLoaded: " << allWidgetsLoaded;
-            
-    int widgetCount = widgetMap.count(); 
-    if (widgetCount == displayWidgets.count()) {
+    if (widgetMap.count() == displayWidgets.count()) {
         loadResult = true;
         } else {
             DWARNING << ": all widgets were not loaded!";
             loadResult = false;
         }        
-    
+
+    m_objects.clear();
     if (displayRole == SettingsDialog) {
-        m_objects.clear();
         QObject *okAction = 
                 loadObject(*m_documentLoader, 
                         displayRole, 
@@ -462,13 +389,14 @@
                         RoleCancelAction); 
                 m_objects.insert(RoleCancelAction, cancelAction); 
     } 
-    
-    DPRINT << ": OUT";
+
     return loadResult; 
 }
 
 /*!
-    InfoWidgetLayoutManager::reloadWidgets()
+    Restores widgets from layout document. 
+    Called when layout items have been deleted  
+    and items should be shown again. 
 */
 bool InfoWidgetLayoutManager::reloadWidgets(const DisplayRole displayRole)
 {
@@ -493,17 +421,13 @@
 }
 
 /*!
-    InfoWidgetLayoutManager::loadWidget()
-    
-    Initialize loader with corresponding document file 
-    before calling this single widget loader utility   
+    Loads widget by given widget role id.
 */
 QGraphicsWidget* InfoWidgetLayoutManager::loadWidget(InfoWidgetDocumentLoader &loader, 
         DisplayRole displayRole, 
         LayoutItemRole widgetRole)
 {
-    DPRINT << ": IN";
-     
+    DPRINT;
     QString widgetPrefix; 
     if (displayRole == InfoDisplay) {
         widgetPrefix = LAYOUT_PREFIX_INFO_DISPLAY;
@@ -511,9 +435,7 @@
         widgetPrefix = LAYOUT_PREFIX_SETTINGS_DIALOG;
     }
         
-    QGraphicsWidget *widget(NULL);
     QString widgetName = widgetPrefix;
-    
     switch (widgetRole) 
         {
         case RoleContent: 
@@ -561,31 +483,19 @@
             break; 
         }
     
-    DPRINT << ": widget name: " << widgetName;
-    widget = qobject_cast<QGraphicsWidget *>(loader.findWidget(widgetName));
-    
-    if (widget) {
-        DPRINT << ": widget found: " << widgetName;
-    } else {
-        DPRINT << ": ERROR, widget not found!";
-    }
-           
-    DPRINT << ": OUT";
+    QGraphicsWidget *widget = qobject_cast<QGraphicsWidget *>(
+            loader.findWidget(widgetName));
     return widget; 
 }
 
 /*!
-    InfoWidgetLayoutManager::loadObject()
-    
-    Initialize loader with corresponding document 
-    file before calling this single object loader utility   
+    Loads object by given object role id. 
 */
 QObject* InfoWidgetLayoutManager::loadObject(InfoWidgetDocumentLoader &loader, 
         DisplayRole displayRole, 
         LayoutItemRole objectRole)
 {
-    DPRINT << ": IN";
-     
+    DPRINT;
     QString objectPrefix; 
     if (displayRole == InfoDisplay) {
         objectPrefix = LAYOUT_PREFIX_INFO_DISPLAY;
@@ -593,9 +503,7 @@
         objectPrefix = LAYOUT_PREFIX_SETTINGS_DIALOG;
     }
         
-    QObject *object(NULL);
     QString objectName = objectPrefix;
-    
     switch (objectRole) 
         {
         case RoleOkAction: 
@@ -609,25 +517,17 @@
         default: 
             break; 
         }
-    
-    DPRINT << ": object name: " << objectName;
-    object = qobject_cast<QObject *>(loader.findObject(objectName));
-    
-    if (object) {
-        DPRINT << ": object found: " << objectName;
-    } else {
-        DPRINT << ": ERROR, object not found!";
+
+    QObject *object = qobject_cast<QObject *>(loader.findObject(objectName));
+    if (!object) {
+        DWARNING << ": ERROR, object not found!";
     }
            
-    DPRINT << ": OUT";
     return object; 
 }
 
-
 /*!
-    InfoWidgetLayoutManager::widgetRoles()
-    
-    Returns supported widget roles for specific display
+    Returns supported widget roles for specific display.
 */
 const QList<InfoWidgetLayoutManager::LayoutItemRole> InfoWidgetLayoutManager::widgetRoles(
         DisplayRole displayRole) const
@@ -657,7 +557,6 @@
             break; 
     }
     
-    DPRINT << ": widgetRoles.count() : " << widgetRoles.count();
     return widgetRoles; 
 }    
     
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidgetnetworkhandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidgetnetworkhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -37,12 +37,10 @@
     InfoWidgetNetworkHandler::InfoWidgetNetworkHandler()
 */
 InfoWidgetNetworkHandler::InfoWidgetNetworkHandler(QObject *parent) 
-    : 
-    QObject(parent), 
+    :QObject(parent), 
     m_nwSession(NULL) 
 {
     DPRINT;
-    
     if (!createSession()) {
         DCRITICAL << ": session creation failed!"; 
     } 
@@ -54,7 +52,6 @@
 InfoWidgetNetworkHandler::~InfoWidgetNetworkHandler()
 {
     DPRINT;
-
     // Disable MCN setting, 
     // display client is being deleted 
     disableMcn(); 
@@ -87,14 +84,6 @@
 }
 
 /*!
-    InfoWidgetNetworkHandler::sessionExists()
-*/
-bool InfoWidgetNetworkHandler::sessionExists()
-{
-    return !m_nwSession.isNull(); 
-}
-
-/*!
     InfoWidgetNetworkHandler::suspend()
 */
 void InfoWidgetNetworkHandler::suspend()
@@ -220,17 +209,18 @@
 bool InfoWidgetNetworkHandler::isOnline() const
 {
     bool online(false); 
-    
-    switch (networkRegistrationStatus()) {
-        case ENWRegisteredBusy: // Fall through
-        case ENWRegisteredOnHomeNetwork: // Fall through
-        case ENWRegisteredRoaming: 
-            online = true;
-            break; 
-        default: 
-            break; 
+
+    if (!m_nwSession.isNull()) {
+        switch (networkRegistrationStatus()) {
+            case ENWRegisteredBusy: // Fall through
+            case ENWRegisteredOnHomeNetwork: // Fall through
+            case ENWRegisteredRoaming: 
+                online = true;
+                break; 
+            default: 
+                break; 
+        }
     }
-    
     DPRINT << ": online: " << online;
     return online; 
 }
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -53,20 +53,19 @@
  */
 void InfoWidgetSatHandler::connect(bool connect)
 {
-    DPRINT << ": IN : connected = " << m_connected 
-            << " : connect = " << connect;
-    
+    DPRINT; 
     if (connect && !m_connected) {
         DPRINT << "connect and startObserving() ";
         m_connected = m_satHandlerPrivate->connect();
-        if(m_connected){
+        if (m_connected) {
             m_satHandlerPrivate->startObserving();
         }
-    }else if (!connect && m_connected){
+    } else if (!connect && m_connected) {
         DPRINT << "disconnect and stopObserving() ";
-        m_connected = m_satHandlerPrivate->disconnect();
+        m_satHandlerPrivate->disconnect();
+        m_connected = false; 
     }
-    DPRINT << ": OUT : connected = " << m_connected;
+    DPRINT << ": connected = " << m_connected;
 }
 
 /*!
@@ -81,7 +80,8 @@
 /*!
    InfoWidgetSatHandler::setSatDisplayText
  */
-void InfoWidgetSatHandler::setSatDisplayText(const QString& displayText)
+void InfoWidgetSatHandler::setSatDisplayText(
+        const QString& displayText)
 {
     DPRINT << ": display text: " << displayText;
     m_displayText = displayText;
@@ -93,25 +93,25 @@
 void InfoWidgetSatHandler::handleIdleModeTxtMessage(int idleResult)
 {
     DPRINT << ": handleIdleModeTxtMessage: " << idleResult;
-    if(m_connected){
+    if (m_connected) {
         m_satService.SetIdleModeTextResponse(
-                (RSatService::TSATIdleResult)idleResult);
-    }
-    else{
+                static_cast<RSatService::TSATIdleResult>(idleResult));
+    } else {
         m_satService.SetIdleModeTextResponse( 
                 RSatService::ESATIdleCmdBeyondMeCapabilities );
     }
  
-    //Pass the result
+    // Emit the result
     emit handleMessage(idleResult);
 }
 
 /*!
    InfoWidgetSatHandler::handleSatError
  */
-void InfoWidgetSatHandler::handleSatError(int operation, int errorCode)
+void InfoWidgetSatHandler::handleSatError(
+        int operation, int errorCode)
 {
-    DPRINT << ": satError : operation: " << 
+    DWARNING << ": satError : operation: " << 
             operation << ": errorCode: "<<errorCode;
     m_satService.SetIdleModeTextResponse( 
             RSatService::ESATIdleMeUnableToProcessCmd);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandler_p.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,192 @@
+/*
+ * 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 <fbs.h>
+#include "infowidgetsathandler_p.h"
+#include "infowidgetsathandler.h"
+#include "infowidgetlogging.h"
+
+/*!
+  \class InfoWidgetSatHandlerPrivate
+  \brief Private implementation of InfoWidgetSatHandler  
+*/
+
+/*!
+   Constructor. 
+ */
+InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate(
+        InfoWidgetSatHandler *satHandler, RSatService& satService)
+    : CActive(CActive::EPriorityStandard), 
+      m_satHandler(satHandler),
+      m_satService(satService)
+{
+    DPRINT;
+    CActiveScheduler::Add(this);
+}
+
+/*!
+   Desctuctor.            
+*/
+InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate()
+{
+    DPRINT;
+    Cancel();
+}
+
+/*!
+   Connect RSatSession and open RSatService. 
+ */
+bool InfoWidgetSatHandlerPrivate::connect()
+{
+    TInt err( KErrNone );
+    bool connected(false); 
+    
+    TRAP(err, m_satSession.ConnectL());
+    if (KErrNone != err) {
+        DCRITICAL << ": Exception occured while connecting SatSession:" << err;
+    }
+    else{
+        TRAP(err, m_satService.OpenL(m_satSession));
+        if (KErrNone != err) {
+            DCRITICAL << ": Exception occured while opening SatService:" << err;
+            m_satSession.Close(); 
+        } else {
+            connected = true; 
+        }
+    }
+    
+    return connected;
+}
+
+/*! 
+   Gets initial content if any and starts 
+   listening for changes.     
+ */
+void InfoWidgetSatHandlerPrivate::startObserving()
+{
+    // Not observing yet but
+    getIdleModeData();
+    // in case there were content, there is need to send response to SAT
+    if (!m_idleTxt.isEmpty()) {
+        m_satHandler->handleIdleModeTxtMessage(m_idleResult);
+    }
+    // Start observing for changes
+    activate();
+}
+
+/*!
+   Disconnect session(s) and reset idle text data.    
+ */
+void InfoWidgetSatHandlerPrivate::disconnect()
+{
+    DPRINT;
+    m_idleTxt.clear();
+    Cancel();
+    m_satService.NotifySetupIdleModeTextChangeCancel(); 
+    m_satService.Close();
+    m_satSession.Close();
+}
+
+/*!
+   Get idle mode text.   
+ */
+void InfoWidgetSatHandlerPrivate::getIdleModeData()
+{
+    DPRINT << ": IN"; 
+    HBufC* string(NULL);
+    TUint8 recordId(NULL);
+    RSatService::TSatIconQualifier iconQualifier( 
+        RSatService::ESatIconNoIcon );
+    
+    // Get setup idle mode text, icon qualifier and record id.
+    TInt result(KErrNotFound);
+    TRAP(result, m_satService.GetSetupIdleModeTextL(
+            string, iconQualifier, recordId)); 
+    
+    if (0 != result) {
+        DWARNING << ": Exception occured while GetSetupIdleModeTextL :" << result;
+        m_idleResult = RSatService::ESATIdleMeUnableToProcessCmd;
+    } else{
+        if (RSatService::ESatIconSelfExplanatory != iconQualifier) { 
+            m_idleTxt = QString((QChar*)string->Des().Ptr(), string->Length());
+        }else {
+            m_idleTxt.clear();
+        }
+        //Determine result
+        if(RSatService::ESatIconNoIcon != iconQualifier
+                && !m_idleTxt.isEmpty()){
+            // Icon requested but we don't have icon support
+            m_idleResult = RSatService::ESATIdleSuccessRequestedIconNotDisplayed;
+        }else if(RSatService::ESatIconNoIcon == iconQualifier
+                && !m_idleTxt.isEmpty()){
+            m_idleResult = RSatService::ESATIdleSuccess;
+        }else{ 
+            // Got empty string, could be permanent problem as well
+            m_idleResult = RSatService::ESATIdleMeUnableToProcessCmd;
+        }
+    }
+    delete string;
+    
+    // Text (m_idleTxt) is empty in case of selfexplanatory icon
+    m_satHandler->setSatDisplayText(m_idleTxt); 
+    DPRINT << ": OUT"; 
+}
+
+/*!
+   InfoWidgetSatHandlerPrivate::RunL   
+ */
+void InfoWidgetSatHandlerPrivate::RunL()
+{ 
+    DPRINT;
+    if (KErrNone == iStatus.Int()) {   
+        getIdleModeData();
+        m_satHandler->handleIdleModeTxtMessage(m_idleResult);
+    } else {
+        m_satHandler->handleSatError(1, iStatus.Int());
+    }
+
+    if (!IsActive()) {
+        activate();
+    }       
+}
+
+/*!
+   Cancel SetupIdleModeTextChange notify.     
+ */
+void InfoWidgetSatHandlerPrivate::DoCancel()
+{
+    DPRINT;
+    m_satService.NotifySetupIdleModeTextChangeCancel(); 
+}
+
+/*!
+   Start listening SetupIdleModeTextChange notify.    
+ */
+void InfoWidgetSatHandlerPrivate::activate()
+{
+    DPRINT;
+    Cancel();   
+    TInt error = m_satService.NotifySetupIdleModeTextChange(iStatus);
+    
+    if (KErrNone == error) {
+        SetActive();
+        }
+}
+
+// End of File. 
+    
+
--- a/phoneplugins/infowidgetplugin/infowidget/src/infowidgetsathandlerprivate.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-
-#include <fbs.h>
-#include "infowidgetsathandlerprivate.h"
-#include "infowidgetsathandler.h"
-#include "infowidgetlogging.h"
-
-/*!
-  \class InfoWidgetSatHandlerPrivate
-  \brief Private implementation of InfoWidgetSatHandler  
-*/
-
-/*!
-   InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate   
- */
-InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate(
-        InfoWidgetSatHandler *iwSatHandler, RSatService& satService)
-    : CActive(CActive::EPriorityStandard), 
-	  q_ptr(iwSatHandler),
-      m_satService(satService)
-{
-    DPRINT << ": IN";
-    CActiveScheduler::Add(this);
-    DPRINT << ": OUT";
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate           
-*/
-InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate()
-{
-    DPRINT << ": IN";
-    Cancel();
-    DPRINT << ": OUT";
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::connect
- */
-bool InfoWidgetSatHandlerPrivate::connect()
-{
-    TInt err( KErrNone );
-    bool connected(false); 
-    
-    TRAP(err, m_satSession.ConnectL());
-    if (KErrNone != err) {
-        DPRINT << ": Exception occured while connecting SatSession:" << err;
-    }
-    else{
-        TRAP(err, m_satService.OpenL(m_satSession));
-        if (KErrNone != err) {
-            DCRITICAL << ": Exception occured while opening SatService:" << err;
-            DCRITICAL << ": closing SAT session"; 
-            m_satSession.Close(); 
-        } else {
-            connected = true; 
-        }
-    }
-    
-    return connected;
-}
-
-/*! 
-   InfoWidgetSatHandlerPrivate::startObserving
-    
-   To get initial content if any and start listening    
- */
-void InfoWidgetSatHandlerPrivate::startObserving()
-{
-    //not observing yet but
-    getIdleModeData();
-    // in case there were content, there is need to send response to SAT
-    if(!m_idleTxt.isEmpty()){
-        q_ptr->handleIdleModeTxtMessage( m_idleResult );
-    }
-    // Start observing for changes
-    activate();
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::disconnect   
- */
-int InfoWidgetSatHandlerPrivate::disconnect()
-{
-    DPRINT << ": IN";
-    m_idleTxt = "";
-    Cancel();
-    m_satService.NotifySetupIdleModeTextChangeCancel(); 
-    m_satService.Close();
-    m_satSession.Close();
-    
-    DPRINT << ": OUT";
-    return 0;//TODO:Fixme
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::getIdleModeData   
- */
-void InfoWidgetSatHandlerPrivate::getIdleModeData()
-{
-    HBufC* string( NULL );
-    TUint8 recordId( NULL );
-    RSatService::TSatIconQualifier iconQualifier( 
-        RSatService::ESatIconNoIcon );
-    
-    // Get setup idle mode text, icon qualifier and record id.
-    TInt result( KErrNotFound  );
-    TRAP(result, m_satService.GetSetupIdleModeTextL( string, iconQualifier, recordId )); 
-    if (0 != result) {
-        DPRINT << ": Exception occured while GetSetupIdleModeTextL :" << result;
-        m_idleResult = RSatService::ESATIdleMeUnableToProcessCmd;
-    }
-    else{
-        DPRINT << "string->Length() : " << string->Length();
-        if(RSatService::ESatIconSelfExplanatory != iconQualifier){ 
-            m_idleTxt = QString((QChar*)string->Des().Ptr(), string->Length());
-        }else{
-            m_idleTxt = "";
-        }
-        //determine result
-        if(RSatService::ESatIconNoIcon != iconQualifier
-                && !m_idleTxt.isEmpty()){
-            //icon requested but we don't have icon support
-            m_idleResult = RSatService::ESATIdleSuccessRequestedIconNotDisplayed;
-        }else if(RSatService::ESatIconNoIcon == iconQualifier
-                && !m_idleTxt.isEmpty()){
-            m_idleResult = RSatService::ESATIdleSuccess;
-        }else{ //got empty string, could be permanen problem as well?
-            //m_idleResult = RSatService::ESATIdleCmdBeyondMeCapabilities
-            m_idleResult = RSatService::ESATIdleMeUnableToProcessCmd;
-        }
-    }
-    delete string;
-    q_ptr->setSatDisplayText(m_idleTxt);//empty in case of selexplanatory icon
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::RunL   
- */
-void InfoWidgetSatHandlerPrivate::RunL()
-{ 
-    DPRINT << ": IN";
-    if ( KErrNone == iStatus.Int() )
-        {   
-        getIdleModeData();
-        q_ptr->handleIdleModeTxtMessage( m_idleResult );
-    } else {
-        q_ptr->handleSatError(1,iStatus.Int());
-    }
-    if ( !IsActive() )
-        {
-        activate();
-        }       
-    DPRINT << ": OUT";
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::DoCancel   
- */
-void InfoWidgetSatHandlerPrivate::DoCancel()
-{
-    DPRINT << ": IN";
-    m_satService.NotifySetupIdleModeTextChangeCancel(); 
-    DPRINT << ": OUT";
-}
-
-/*!
-   InfoWidgetSatHandlerPrivate::activate   
- */
-void InfoWidgetSatHandlerPrivate::activate()
-{
-    DPRINT << ": IN";
-    Cancel();   
-    TInt error = m_satService.NotifySetupIdleModeTextChange( iStatus );
-    
-    if ( KErrNone == error )
-        {
-        SetActive();
-        }
-    DPRINT << ": OUT";
-}
-
-// End of File. 
-    
-
--- a/phoneplugins/infowidgetplugin/infowidgetplugin.pri	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetplugin.pri	Tue Jul 06 14:15:47 2010 +0300
@@ -1,69 +1,47 @@
-#
 # 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:
-#
-#
-
 HEADERS += ./inc/infowidgetplugin.h \
-           ./inc/infowidgetlogging.h \
-           ./infowidget/inc/infowidget.h \
-           ./infowidget/inc/infowidgetlayoutmanager.h \
-           ./infowidget/inc/infowidgetpreferences.h \
-           ./infowidget/inc/infowidgetengine.h \
-           ./infowidget/inc/infowidgetsathandlerprivate.h
-
-symbian: {
-    HEADERS += ./infowidget/inc/infowidgetnetworkhandler.h \
-               ./infowidget/inc/infowidgetsathandler.h \
-               ./infowidget/inc/infowidgetlinehandler.h
-}
-SOURCES += infowidget/src/infowidgetsathandlerprivate.cpp \
+    ./inc/infowidgetlogging.h \
+    ./infowidget/inc/infowidget.h \
+    ./infowidget/inc/infowidgetlayoutmanager.h \
+    ./infowidget/inc/infowidgetpreferences.h \
+    ./infowidget/inc/infowidgetengine.h     
+symbian::HEADERS += ./infowidget/inc/infowidgetnetworkhandler.h \
+    ./infowidget/inc/infowidgetsathandler.h \
+    ./infowidget/inc/infowidgetsathandler_p.h \
+    ./infowidget/inc/infowidgetlinehandler.h
+SOURCES += infowidget/src/infowidgetsathandler_p.cpp \
     ./src/infowidgetplugin.cpp \
     ./infowidget/src/infowidget.cpp \
     ./infowidget/src/infowidgetlayoutmanager.cpp \
-    ./infowidget/src/infowidgetengine.cpp
+    ./infowidget/src/infowidgetpreferences.cpp 
+symbian::SOURCES += ./infowidget/src/infowidgetengine.cpp \
+    ./infowidget/src/infowidgetnetworkhandler.cpp \
+    ./infowidget/src/infowidgetsathandler.cpp \
+    ./infowidget/src/infowidgetlinehandler.cpp
+else::SOURCES += ./infowidget/src/infowidgetengine_s.cpp 
     
-symbian: {
-    SOURCES += ./infowidget/src/infowidgetpreferences.cpp \
-               ./infowidget/src/infowidgetnetworkhandler.cpp \
-               ./infowidget/src/infowidgetsathandler.cpp \
-               ./infowidget/src/infowidgetlinehandler.cpp 
-} else: { 
-    SOURCES += ./infowidget/src/infowidgetengine_s.cpp \
-               ./infowidget/src/infowidgetpreferences_s.cpp
+defineTest(exportResources):symbian { 
+    for(subdirs, 1) { 
+        entries = $$files($$subdirs)
+        for(entry, entries):BLD_INF_RULES.prj_exports += "./$$entry z:/$$replace(2, ^/,)/$$basename(entry)"
+    }
+    export ( BLD_INF_RULES.prj_exports)
 }
-
-defineTest(exportResources) {
-    symbian {
-        for(subdirs, 1) {
-            entries = $$files($$subdirs)
-            for(entry, entries) : BLD_INF_RULES.prj_exports += "./$$entry z:/$$replace(2, ^/,)/$$basename(entry)"
-        }
-        export ( BLD_INF_RULES.prj_exports)
-    }
-}
-
-symbian: plugin { # copy qtstub and manifest
-
+symbian:plugin { # copy qtstub and manifest
     pluginstub.sources = $${TARGET}.dll
     pluginstub.path = $$PLUGIN_SUBDIR
-
     DEPLOYMENT += pluginstub
-
     qtplugins.path = $$PLUGIN_SUBDIR
     qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
     contains(MOBILITY, serviceframework):BLD_INF_RULES.prj_exports += "resource/$${TARGET}.xml z:$$qtplugins.path/$${TARGET}.xml"
-    
     for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin z:$$qtplugins.path/$$basename(qtplugin)"
 }
--- a/phoneplugins/infowidgetplugin/resource/infowidget.docml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/resource/infowidget.docml	Tue Jul 06 14:15:47 2010 +0300
@@ -2,7 +2,6 @@
 <hbdocument version="1.1">
     <widget name="id:content" type="HbWidget">
         <widget name="id:container" type="HbWidget">
-            <widget name="id:settingsContainer" type="HbWidget">
                 <widget name="id:spnIcon" type="HbLabel">
                     <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
                     <icon iconName="qtg_large_network" name="icon"/>
@@ -55,10 +54,9 @@
                     <griditem column="0" itemname="id:mcnIcon" row="1"/>
                     <griditem column="1" itemname="id:spnMarqueeItem" row="0"/>
                 </layout>
-            </widget>
         </widget>
         <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
-        <sizehint height="6un" type="MINIMUM" width="32un"/>
+        <sizehint height="5.75un" type="MINIMUM" width="32un"/>
         <sizehint height="25un" type="MAXIMUM" width="32un"/>
         <layout type="anchor">
             <anchoritem dst="id:container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/tsrc/mocks/mock_cnwsession.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,44 @@
+/* 
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include "cnwsession.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CNWSession::CNWSession
+// -----------------------------------------------------------------------------
+//
+CNWSession::CNWSession(  )
+    //:
+    //CBase( /**/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CNWSession::~CNWSession
+// -----------------------------------------------------------------------------
+//
+CNWSession::~CNWSession(  )
+    {
+    
+    }
+
+
--- a/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -327,9 +327,9 @@
 // -----------------------------------------------------------------------------
 //
 void InfoWidget::settingsDialogClosed( 
-        HbAction * action )
+        HbAction *sss )
     {
-    //SMC_MOCK_METHOD1( void, HbAction *, action )
+    SMC_MOCK_METHOD1( void, HbAction *, sss )
     }
 
 
@@ -337,10 +337,9 @@
 // InfoWidget::startMarquees
 // -----------------------------------------------------------------------------
 //
-bool InfoWidget::startMarquees( 
-        AnimationStartDelay delay )
+bool InfoWidget::startMarquees()
     {
-    SMC_MOCK_METHOD1( bool, AnimationStartDelay, delay )
+    SMC_MOCK_METHOD0( bool )
     }
 
 
--- a/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetlayoutmanager.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetlayoutmanager.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -243,7 +243,7 @@
 // InfoWidgetLayoutManager::layoutRowHeight
 // -----------------------------------------------------------------------------
 //
-qreal InfoWidgetLayoutManager::layoutRowHeight(  ) const
+qreal InfoWidgetLayoutManager::layoutRowHeight(  )
     {
     SMC_MOCK_METHOD0( qreal )
     }
@@ -256,7 +256,7 @@
 bool InfoWidgetLayoutManager::textFitsToRect( 
         QString text,
         QFont font,
-        QRectF rect )
+        QRectF rect ) const
     {
     SMC_MOCK_METHOD3( bool, QString, text, 
         QFont, font, 
@@ -265,18 +265,6 @@
 
 
 // -----------------------------------------------------------------------------
-// InfoWidgetDocumentLoader::InfoWidgetDocumentLoader
-// -----------------------------------------------------------------------------
-//
-InfoWidgetDocumentLoader::InfoWidgetDocumentLoader(  )
-    //:
-    //HbDocumentLoader( /**/ )
-    {
-    
-    }
-
-
-// -----------------------------------------------------------------------------
 // InfoWidgetDocumentLoader::createObject
 // -----------------------------------------------------------------------------
 //
--- a/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetnetworkhandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetnetworkhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -57,16 +57,6 @@
 
 
 // -----------------------------------------------------------------------------
-// InfoWidgetNetworkHandler::sessionExists
-// -----------------------------------------------------------------------------
-//
-bool InfoWidgetNetworkHandler::sessionExists(  )
-    {
-    SMC_MOCK_METHOD0( bool )
-    }
-
-
-// -----------------------------------------------------------------------------
 // InfoWidgetNetworkHandler::serviceProviderName
 // -----------------------------------------------------------------------------
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetsathandler_p.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include "infowidgetsathandler_p.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate
+// -----------------------------------------------------------------------------
+//
+InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate( 
+        InfoWidgetSatHandler * iwSatHandler,
+        RSatService & iSatService )
+    :CActive( 0 ),
+        m_satService(iSatService)
+    
+    {
+    Q_UNUSED(iwSatHandler)
+    }
+
+
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate
+// -----------------------------------------------------------------------------
+//
+InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::startObserving
+// -----------------------------------------------------------------------------
+//
+void InfoWidgetSatHandlerPrivate::startObserving(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::connect
+// -----------------------------------------------------------------------------
+//
+bool InfoWidgetSatHandlerPrivate::connect(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::disconnect
+// -----------------------------------------------------------------------------
+//
+void InfoWidgetSatHandlerPrivate::disconnect(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+    
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::DoCancel
+// -----------------------------------------------------------------------------
+//
+void InfoWidgetSatHandlerPrivate::DoCancel( )
+	 {
+	 SMC_MOCK_METHOD0( void )	
+	 }
+	
+	
+// -----------------------------------------------------------------------------
+// InfoWidgetSatHandlerPrivate::RunL
+// -----------------------------------------------------------------------------
+//
+void InfoWidgetSatHandlerPrivate::RunL( )
+	 {
+	 SMC_MOCK_METHOD0( void )		
+	 }
+	
--- a/phoneplugins/infowidgetplugin/tsrc/mocks/mock_infowidgetsathandlerprivate.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-#include <QDebug>
-#include <smcmockclassincludes.h>
-#include "infowidgetsathandlerprivate.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate
-// -----------------------------------------------------------------------------
-//
-InfoWidgetSatHandlerPrivate::InfoWidgetSatHandlerPrivate( 
-        InfoWidgetSatHandler * iwSatHandler,
-        RSatService & iSatService )
-    :CActive( 0 ),
-        m_satService(iSatService)
-    
-    {
-    Q_UNUSED(iwSatHandler)
-    }
-
-
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate
-// -----------------------------------------------------------------------------
-//
-InfoWidgetSatHandlerPrivate::~InfoWidgetSatHandlerPrivate(  )
-    {
-    
-    }
-
-
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::startObserving
-// -----------------------------------------------------------------------------
-//
-void InfoWidgetSatHandlerPrivate::startObserving(  )
-    {
-    SMC_MOCK_METHOD0( void )
-    }
-
-
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::connect
-// -----------------------------------------------------------------------------
-//
-bool InfoWidgetSatHandlerPrivate::connect(  )
-    {
-    SMC_MOCK_METHOD0( bool )
-    }
-
-
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::disconnect
-// -----------------------------------------------------------------------------
-//
-int InfoWidgetSatHandlerPrivate::disconnect(  )
-    {
-    SMC_MOCK_METHOD0( int )
-    }
-    
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::DoCancel
-// -----------------------------------------------------------------------------
-//
-void InfoWidgetSatHandlerPrivate::DoCancel( )
-	 {
-	 SMC_MOCK_METHOD0( void )	
-	 }
-	
-	
-// -----------------------------------------------------------------------------
-// InfoWidgetSatHandlerPrivate::RunL
-// -----------------------------------------------------------------------------
-//
-void InfoWidgetSatHandlerPrivate::RunL( )
-	 {
-	 SMC_MOCK_METHOD0( void )		
-	 }
-	
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidget/src/ut_infowidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidget/src/ut_infowidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -670,26 +670,20 @@
     m_infoWidget->m_animatingItems.append(&satMarqueeItem); 
     
     // Test 1: 
-    m_infoWidget->m_animationState = InfoWidget::AnimationIdle; 
-    started = m_infoWidget->startMarquees(InfoWidget::StartNoDelay);
+    m_infoWidget->m_animationState = InfoWidget::AnimationIdle;
+    started = m_infoWidget->startMarquees();
     QVERIFY(started);
-    QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationOngoing);
+    QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationStarting);
     
     // Test 2:
-    m_infoWidget->m_animationState = InfoWidget::AnimationIdle; 
-    started = m_infoWidget->startMarquees(InfoWidget::StartDelayed);
-    QVERIFY(started);
-    QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationStarting); 
-            
-    // Test 3:
     m_infoWidget->m_animationState = InfoWidget::AnimationStarting; 
-    started = m_infoWidget->startMarquees(InfoWidget::StartDelayed);
+    started = m_infoWidget->startMarquees();
     QVERIFY(!started);
     QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationStarting); 
 
-    // Test 4:
+    // Test 3:
     m_infoWidget->m_animationState = InfoWidget::AnimationOngoing; 
-    started = m_infoWidget->startMarquees(InfoWidget::StartDelayed);
+    started = m_infoWidget->startMarquees();
     QVERIFY(!started);
     QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationOngoing); 
 
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -61,8 +61,6 @@
     SmcDefaultValue<QString>::SetL("");
     SmcDefaultValue<const QString & >::SetL("");
     
-    EXPECT(InfoWidgetNetworkHandler::sessionExists)
-        .returns(true);    
     EXPECT(InfoWidgetNetworkHandler::isOnline)
         .returns(true);    
     
@@ -116,8 +114,6 @@
 void UT_InfoWidgetEngine::t_updateNetworkDataToModel()
 {
     // Test: network status is online
-    EXPECT(InfoWidgetNetworkHandler::sessionExists)
-        .returns(true);    
     EXPECT(InfoWidgetNetworkHandler::isOnline)
         .returns(true);    
     
@@ -146,8 +142,6 @@
     QVERIFY(verify());
     
     // Test: network status is offline
-    EXPECT(InfoWidgetNetworkHandler::sessionExists)
-        .returns(true);    
     EXPECT(InfoWidgetNetworkHandler::isOnline)
           .returns(false);    
     EXPECT(InfoWidgetNetworkHandler::serviceProviderName).times(0);
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/inc/ut_infowidgetnetworkhandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/inc/ut_infowidgetnetworkhandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -25,6 +25,8 @@
 class InfoWidgetNetworkHandler;
 class TNWInfo;
 
+
+
 class UT_InfoWidgetNetworkHandler : public QObject, public MockService
 {
     Q_OBJECT
@@ -66,9 +68,7 @@
         TNWInfo& aTNWInfo);
     
 private:
-    
     InfoWidgetNetworkHandler *m_networkHandler;
-
 };
 
 #endif // UT_INFOWIDGETNETWORKHANDLER_H
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/src/ut_infowidgetnetworkhandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/src/ut_infowidgetnetworkhandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -16,6 +16,7 @@
 */
 #include <networkhandlingproxy.h>
 #include <nwhandlingengine.h>
+#include <cnwsession.h>
 #include "qtestmains60.h"
 #include <xqsettingskey.h>
 #include <xqsettingsmanager.h>
@@ -23,6 +24,14 @@
 #define private public
 #include "infowidgetnetworkhandler.h"
 
+class CMyNWSession : public CNWSession 
+{
+public: 
+    CMyNWSession(){};
+    ~CMyNWSession(){};
+}; 
+
+
 #define EXPECT_NO_EXCEPTION(statements)    \
 {                                       \
     bool exceptionDetected = false;     \
@@ -42,15 +51,15 @@
 const TNWMCNIndicatorType 
     KMcnIndicatorType = ENWMCNIndicatorTypeActive;
 
+const QString KSpnName("SpnNameSpnName..");     // max length 16 
 
 /*!
   UT_InfoWidgetNetworkHandler::UT_InfoWidgetNetworkHandler
  */
 UT_InfoWidgetNetworkHandler::UT_InfoWidgetNetworkHandler() 
     : 
-    m_networkHandler(0)
-{
-    
+    m_networkHandler(NULL)
+{   
 }
 
 
@@ -87,8 +96,17 @@
     
     SmcDefaultValue<QString>::SetL("");
     SmcDefaultValue<const QString & >::SetL("");
-    EXPECT(CreateL).willOnce(invoke(this, &initializeNetworkInfo));
+
+    // Ownership is transferred to InfoWidgetNetworkHandler
+    CMyNWSession *session= new (ELeave)CMyNWSession(); 
+    EXPECT(CreateL).returns(session);;
     m_networkHandler =  new InfoWidgetNetworkHandler();
+
+    m_networkHandler->m_nwInfo.iViagTextTag.Copy(KHomeZoneTextTag.utf16());
+    m_networkHandler->m_nwInfo.iViagIndicatorType = KHomeZoneIndicatorType;
+    m_networkHandler->m_nwInfo.iMCNName.Copy(KMcnName.utf16());
+    m_networkHandler->m_nwInfo.iMCNIndicatorType = KMcnIndicatorType;
+    m_networkHandler->m_nwInfo.iSPName.Copy(KSpnName.utf16()); 
     
     QVERIFY(verify());
 }
@@ -349,8 +367,7 @@
  */
 void UT_InfoWidgetNetworkHandler::t_serviceProviderName()
 {
-    QString s = "";
-    QCOMPARE(m_networkHandler->serviceProviderName(), s);
+    QCOMPARE(m_networkHandler->serviceProviderName(), KSpnName);
 }
 
 /*!
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/ut_infowidgetnetworkhandler.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetnetworkhandler/ut_infowidgetnetworkhandler.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -33,7 +33,8 @@
   INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
   LIBS += -lmocklib 		\
           -lsymbianmock 	\
-          -lcpframework
+          -lcpframework 
+          
 }
     
 # test code
@@ -46,6 +47,7 @@
 
 # mocks needed for testing
 SOURCES += ../mocks/mock_networkhandlingproxy.cpp
+SOURCES += ../mocks/mock_cnwsession.cpp
 
 HEADERS += /epoc32/include/platform/mw/xqsettingskey.h \
            /epoc32/include/platform/mw/xqsettingsmanager.h
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandler/ut_infowidgetsathandler.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandler/ut_infowidgetsathandler.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -46,4 +46,4 @@
 # mocks needed for testing
 SOURCES += ../mocks/mock_rsatservice.cpp  \
            ../mocks/mock_RSatSession.cpp  \
-           ../mocks/mock_infowidgetsathandlerprivate.cpp
\ No newline at end of file
+           ../mocks/mock_infowidgetsathandler_p.cpp
\ No newline at end of file
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/inc/ut_infowidgetsathandlerprivate.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/inc/ut_infowidgetsathandlerprivate.h	Tue Jul 06 14:15:47 2010 +0300
@@ -49,7 +49,7 @@
     
 private:
     
-    InfoWidgetSatHandlerPrivate *m_satHandler;
+    InfoWidgetSatHandlerPrivate *m_satHandlerPrivate;
     InfoWidgetSatHandler* m_iwSatHandler;
     RSatService m_satService;
 
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/src/ut_infowidgetsathandlerprivate.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/src/ut_infowidgetsathandlerprivate.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -17,11 +17,50 @@
 
 #include "ut_infowidgetsathandlerprivate.h"
 #define private public
-#include "infowidgetsathandlerprivate.h"
+#include "infowidgetsathandler_p.h"
 #include "infowidgetsathandler.h"
 #include "infowidgetlogging.h"
 #include "qtestmains60.h"
 
+static struct ActiveObjectControl {
+    enum TOperation {
+        EUndefined = 0, 
+        ECallRunL, 
+        ECallDoCancel,
+        EExitSequence
+    } operation;
+    int iStatus; 
+    CActive* object; 
+} m_activeObjectControl; 
+
+ 
+void CActive::SetActive(){
+    if (m_activeObjectControl.object) 
+    {
+    switch (m_activeObjectControl.operation) {
+        case ActiveObjectControl::ECallRunL: 
+            m_activeObjectControl.operation = ActiveObjectControl::EExitSequence;
+            m_activeObjectControl.object->iStatus = 
+                    m_activeObjectControl.iStatus;
+            m_activeObjectControl.object->RunL(); 
+            break;
+        case ActiveObjectControl::ECallDoCancel: 
+            m_activeObjectControl.operation = ActiveObjectControl::EExitSequence;
+            m_activeObjectControl.object->iStatus = 
+                    m_activeObjectControl.iStatus;
+            m_activeObjectControl.object->DoCancel(); 
+            break;
+            
+        default: 
+            break; 
+        }
+    
+    // Reset, causes infinite loop otherwise 
+    m_activeObjectControl.operation = ActiveObjectControl::EUndefined; 
+    m_activeObjectControl.object = NULL; 
+    }
+} 
+
 void SimulateLeaveL()
 {
     User::Leave(KErrGeneral);
@@ -61,11 +100,11 @@
 /*!
   UT_InfoWidgetSatHandlerPrivate ::UT_InfoWidgetSatHandlerPrivate 
  */
-UT_InfoWidgetSatHandlerPrivate::UT_InfoWidgetSatHandlerPrivate () //:
+UT_InfoWidgetSatHandlerPrivate::UT_InfoWidgetSatHandlerPrivate () 
 {
     DPRINT << "IN";
     
-    m_satHandler = 0;
+    m_satHandlerPrivate = 0;
     m_iwSatHandler = 0;
     
     DPRINT << "OUT";
@@ -78,7 +117,7 @@
 {
     DPRINT << "IN";
     
-    delete m_satHandler;
+    delete m_satHandlerPrivate;
     delete m_iwSatHandler;
     
     DPRINT << "OUT";
@@ -93,7 +132,7 @@
     
     initialize();
     m_iwSatHandler = new InfoWidgetSatHandler;
-    m_satHandler =  new InfoWidgetSatHandlerPrivate( m_iwSatHandler, m_satService);
+    m_satHandlerPrivate =  new InfoWidgetSatHandlerPrivate( m_iwSatHandler, m_satService);
     
     QVERIFY(verify());
 
@@ -108,7 +147,7 @@
     DPRINT << "IN";
     
     reset();
-    delete m_satHandler;
+    delete m_satHandlerPrivate;
     delete m_iwSatHandler;
 
     DPRINT << "OUT";
@@ -123,15 +162,15 @@
     
     expect("RSatSession::ConnectL");
     expect("RSatService::OpenL");
-    m_satHandler->connect();
+    m_satHandlerPrivate->connect();
      
     expect("RSatSession::ConnectL")
         .willOnce(invokeWithoutArguments(SimulateLeaveL));
-    m_satHandler->connect();
+    m_satHandlerPrivate->connect();
     
     expect("RSatService::OpenL")
         .willOnce(invokeWithoutArguments(SimulateLeaveL));
-    m_satHandler->connect();
+    m_satHandlerPrivate->connect();
 
     QVERIFY(verify());
 
@@ -145,7 +184,7 @@
 {
     DPRINT << "IN";
     
-    m_satHandler->disconnect();
+    m_satHandlerPrivate->disconnect();
     QVERIFY(verify());
 
     DPRINT << "OUT";
@@ -162,21 +201,21 @@
     expect("RSatService::NotifySetupIdleModeTextChange").returns(i);
     expect("RSatService::GetSetupIdleModeTextL")
         .willOnce(invoke(FillData));
-    m_satHandler->startObserving();
+    m_satHandlerPrivate->startObserving();
     
     expect("RSatService::NotifySetupIdleModeTextChange").returns(i);
     expect("RSatService::GetSetupIdleModeTextL")
         .willOnce(invoke(FillDataNoIcon));
-    m_satHandler->startObserving();
+    m_satHandlerPrivate->startObserving();
     
     expect("RSatService::NotifySetupIdleModeTextChange").returns(i);
     expect("RSatService::GetSetupIdleModeTextL")
         .willOnce(invoke(FillDataSelfExplIcon));
-    m_satHandler->startObserving();
+    m_satHandlerPrivate->startObserving();
     
     expect("RSatService::GetSetupIdleModeTextL")
         .willOnce(invokeWithoutArguments(SimulateLeaveL));
-    m_satHandler->startObserving();
+    m_satHandlerPrivate->startObserving();
     
     QVERIFY(verify());
 
@@ -188,21 +227,26 @@
  */
 void UT_InfoWidgetSatHandlerPrivate::t_runL()
 {
-    DPRINT << "IN";
-    
-    int i = 1;
+    DPRINT;
     expect("RSatService::GetSetupIdleModeTextL")
           .willOnce(invoke(FillData));
-    expect("RSatService::NotifySetupIdleModeTextChange").returns(i);
-    m_satHandler->RunL();
+    expect("RSatService::NotifySetupIdleModeTextChange").returns(KErrNone);
+    
+    TRequestStatus& status(m_satHandlerPrivate->iStatus);
+    expect("RSatService::NotifySetupIdleModeTextChange").with(status);
     
-    m_satHandler->iStatus = KErrGeneral;
-    expect("RSatService::NotifySetupIdleModeTextChange").returns(i);
-    m_satHandler->RunL();
-        
+    // Test RunL sequence with iStatus == KErrNone  
+    m_activeObjectControl.operation = ActiveObjectControl::ECallRunL; 
+    m_activeObjectControl.iStatus = KErrNone; 
+    m_activeObjectControl.object = m_satHandlerPrivate; 
+    m_satHandlerPrivate->startObserving();
+    
+    // Test RunL sequence with iStatus == KErrGeneral
+    m_activeObjectControl.operation = ActiveObjectControl::ECallRunL; 
+    m_activeObjectControl.iStatus = KErrGeneral; 
+    m_activeObjectControl.object = m_satHandlerPrivate; 
+    m_satHandlerPrivate->startObserving();
     QVERIFY(verify());
-
-    DPRINT << "OUT";
 }
 
 /*!
@@ -212,7 +256,11 @@
 {    
     DPRINT << "IN";
 
-    m_satHandler->DoCancel();
+    m_activeObjectControl.operation = ActiveObjectControl::ECallDoCancel; 
+    m_activeObjectControl.iStatus = KErrNone; 
+    m_activeObjectControl.object = m_satHandlerPrivate; 
+    m_satHandlerPrivate->startObserving();
+    
     QVERIFY(verify());
 
     DPRINT << "OUT";
--- a/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/ut_infowidgetsathandlerprivate.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidgetsathandlerprivate/ut_infowidgetsathandlerprivate.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -41,9 +41,9 @@
 
 # code to be tested
 HEADERS += ../../infowidget/inc/infowidgetsathandler.h
-HEADERS += ../../infowidget/inc/infowidgetsathandlerprivate.h 
+HEADERS += ../../infowidget/inc/infowidgetsathandler_p.h 
 
-SOURCES += ../../infowidget/src/infowidgetsathandlerprivate.cpp
+SOURCES += ../../infowidget/src/infowidgetsathandler_p.cpp
 
 # mocks needed for testing
 SOURCES += ../mocks/mock_rsatservice.cpp  \
--- a/phoneplugins/phoneindicatorplugin/inc/phoneindicatorinterface.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/phoneindicatorplugin/inc/phoneindicatorinterface.h	Tue Jul 06 14:15:47 2010 +0300
@@ -33,21 +33,14 @@
                                  int typeIndex,
                                  Interaction interaction);
 
-    ~PhoneIndicatorInterface();
+    ~PhoneIndicatorInterface(){}
 
     bool handleInteraction(InteractionType type);
     QVariant indicatorData(int role) const;
-    
-private slots:
-    void handleReturnValue(const QVariant &returnValue);
-    void handleError(int errorCode,const QString &errorMessage);
 
 protected:
 
     bool handleClientRequest(RequestType type, const QVariant &parameter);
-    
-private:
-    void launchDivertSettingsView();
 
 private:
 
@@ -58,7 +51,6 @@
     QString m_icon;
     QString m_icon2;
     QVariant m_parameter;
-    XQApplicationManager m_appMgr;
 };
 
 #endif // PHONEINDICATORINTERFACE_H
--- a/phoneplugins/phoneindicatorplugin/inc/phoneindicators.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/phoneindicatorplugin/inc/phoneindicators.h	Tue Jul 06 14:15:47 2010 +0300
@@ -23,13 +23,13 @@
 #include <QString>
 
 
-static const char *IndicatorNameTemplate = "PhoneIndicator_%1";
+static const char *IndicatorNameTemplate = "com.nokia.symbian.phoneindicatorplugin_%1";
 
 enum Interaction
 {
     InteractionNone,
     OpenMissedCallView,
-    SwitchBackToCall,
+    OpenCallUi,
     OpenDiverSettingsView,
     Deactivate
 };
@@ -58,8 +58,8 @@
 static const int PhoneIndicatorCount = 3;
 static const PhoneIndicatorInfo IndicatorInfos[PhoneIndicatorCount] = {
     {"qtg_mono_info.svg",   "Missed call", "Name/Number", OpenMissedCallView },
-    {"qtg_mono_info.svg",   "Active call", " ", SwitchBackToCall },
-    {"qtg_mono_info.svg",    "Active diverts", " ", OpenDiverSettingsView }
+    {"qtg_mono_info.svg",   "Active call", " ", OpenCallUi },
+    {"qtg_mono_info.svg",   "Active diverts", " ", OpenDiverSettingsView }
 };
 
 #endif // PHONEINDICATORS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/phoneindicatorplugin/inc/phoneindicatorservicesendertask.h	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,37 @@
+/*
+ * 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 PHONEINDICATORSERVICESENDERTASK_H_
+#define PHONEINDICATORSERVICESENDERTASK_H_
+
+#include <QObject>
+#include <QRunnable>
+#include "phoneindicators.h"
+
+class PhoneIndicatorServiceSenderTask : public QRunnable
+{
+public:
+    PhoneIndicatorServiceSenderTask(Interaction interaction);
+    ~PhoneIndicatorServiceSenderTask(){}
+    
+    void run();
+private:
+    Interaction     m_interaction;
+};
+
+#endif /* PHONEINDICATORSERVICESENDERTASK_H_ */
+
--- a/phoneplugins/phoneindicatorplugin/src/phoneindicatorinterface.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneplugins/phoneindicatorplugin/src/phoneindicatorinterface.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -11,25 +11,17 @@
  *
  * Contributors:
  *
- * Description:  
+ * Description:
  *
  */
 
 #include "phoneindicatorinterface.h"
+#include "phoneindicatorservicesendertask.h"
 #include "phoneindicators.h"
 
 #include <QTime>
-#include <QStringList> 
-#ifdef Q_OS_SYMBIAN
-#include <logsservices.h>
-#include <xqservicerequest.h>
-#include <xqrequestinfo.h>
-#include <apgtask.h>
-#include <xqaiwrequest.h>
-#include <cppluginlauncher.h>
-
-
-#endif
+#include <QStringList>
+#include <QThreadPool>
 
 PhoneIndicatorInterface::PhoneIndicatorInterface(
                 const QString &indicatorType,
@@ -42,47 +34,17 @@
         m_primaryText(IndicatorInfos[typeIndex].primaryText),
         m_secondaryText(IndicatorInfos[typeIndex].secondaryText),
         m_icon(IndicatorInfos[typeIndex].icon)
-
 {
 }
 
-PhoneIndicatorInterface::~PhoneIndicatorInterface()
-{
-
-}
-
 bool PhoneIndicatorInterface::handleInteraction(InteractionType type)
 {
     if (type == InteractionActivated) {
-        switch (m_interaction) {            
-        case OpenMissedCallView: {
-#ifdef Q_OS_SYMBIAN
-            XQServiceRequest snd("com.nokia.services.logsservices.starter",
-                                 "start(int,bool)", false);
-            snd << (int)LogsServices::ViewMissed;
-            snd << false;
-            int retValue;
-            snd.send(retValue);
-#endif
-            }
-            break;
-        case SwitchBackToCall: {
-#ifdef Q_OS_SYMBIAN
-            int dialer(1);
-            XQServiceRequest snd("com.nokia.services.telephony.uistarter", 
-                    "start(int)", false);
-            XQRequestInfo info;
-            info.setForeground(true);
-            snd.setInfo(info);
-            snd << dialer;
-            QVariant retValue;
-            snd.send(retValue);
-#endif
-            }
-            break;
-        case OpenDiverSettingsView: {
-            launchDivertSettingsView();
-            }
+        switch (m_interaction) {
+        case OpenMissedCallView:    //fallthrough
+        case OpenCallUi:      //fallthrough
+        case OpenDiverSettingsView:
+            QThreadPool::globalInstance()->start(new PhoneIndicatorServiceSenderTask(m_interaction));
             break;
         case Deactivate:
             emit deactivate();
@@ -98,7 +60,7 @@
 QVariant PhoneIndicatorInterface::indicatorData(int role) const
 {
     QVariantMap map = m_parameter.value<QVariantMap>();
-    
+
     if (role == PrimaryTextRole) {
         return map.value( (QVariant(PrimaryTextRole)).toString()).toString();
     } else if (role == SecondaryTextRole ) {
@@ -114,7 +76,7 @@
 bool PhoneIndicatorInterface::handleClientRequest(RequestType type, const QVariant &parameter)
 {
     bool handled(false);
-    switch (type) {        
+    switch (type) {
     case RequestActivate:
         if (m_parameter != parameter) {
             m_parameter = parameter;
@@ -125,47 +87,6 @@
     default:
         m_parameter.clear();
     }
-
     return handled;
 }
 
-void PhoneIndicatorInterface::launchDivertSettingsView()
-{
-
-    XQAiwRequest *request = m_appMgr.create(
-            "com.nokia.symbian.ICpPluginLauncher", 
-            "launchSettingView(QString,QVariant)", 
-            false);  // 
-    
-    if (!request) {
-        return;
-    }
-    else {
-        connect(request, SIGNAL(requestOk(QVariant)), SLOT(handleReturnValue(QVariant)));
-        connect(request, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString)));
-    }
-    // Set arguments for request 
-    QList<QVariant> args;
-    args << (QString)"cptelephonyplugin.dll";
-    args << (QVariant)"";            
-
-    request->setArguments(args);
-    request->setSynchronous(true);
-    // Make the request
-    if (!request->send()) {
-        //report error     
-    }
-    delete request;
-
-}
-
-void PhoneIndicatorInterface::handleReturnValue(const QVariant &returnValue)
-{      
-    Q_UNUSED(returnValue);
-}
-
-void PhoneIndicatorInterface::handleError(int errorCode,const QString &errorMessage)
-{
-    Q_UNUSED(errorCode);
-    Q_UNUSED(errorMessage);
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/phoneindicatorplugin/src/phoneindicatorservicesendertask.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,75 @@
+/*
+ * 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 "phoneindicatorservicesendertask.h"
+
+#include <xqaiwrequest.h>
+#include <xqappmgr.h>
+#include <logsservices.h>
+
+
+PhoneIndicatorServiceSenderTask::PhoneIndicatorServiceSenderTask(Interaction interaction):
+        m_interaction(interaction)
+{
+}
+
+void PhoneIndicatorServiceSenderTask::run()
+{    
+    XQApplicationManager appManager;
+    QList<QVariant> args;
+    QString service;
+    QString interface;
+    QString operation;
+    QVariantHash hash;
+    QVariantMap map;
+    
+    switch(m_interaction){
+        case OpenMissedCallView:
+            service = "logs";
+            interface = "com.nokia.symbian.ILogsView";
+            operation = "show(QVariantMap)";
+            map.insert("view_index",QVariant((int)LogsServices::ViewMissed));
+            map.insert("show_dialpad",QVariant(false));
+            map.insert("dialpad_text", QVariant(QString()));
+            args.append(QVariant(map));
+            break;
+        case OpenCallUi:            
+            service = "phoneui";
+            interface = "com.nokia.symbian.IStart";
+            operation = "start(int)";
+            args << (int)0;
+            break;
+        case OpenDiverSettingsView:
+            interface = "com.nokia.symbian.ICpPluginLauncher";
+            operation = "launchSettingView(QString,QVariant)";
+            args << QVariant("cptelephonyplugin.dll");            
+            hash["view"] = "divert_view";
+            hash["heading"] = "txt_phone_subhead_telephone";
+            args << hash;
+            break;
+        default:            
+            break;
+    }
+    QScopedPointer<XQAiwRequest> request( service.isEmpty() ? 
+        appManager.create( interface, operation, false):
+        appManager.create(service, interface, operation, false));
+    if ( request == NULL ){
+        return;       
+    }   
+    request->setArguments(args);
+    request->send();
+}
--- a/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -155,7 +155,9 @@
             HbDataFormModelItem::ToggleValueItem,
             hbTrId("txt_phone_formlabel_show_call_duration"),
             this);
-
+    m_DataItemShowCallDuration->setObjectName(
+            "showCallDurationDataItem"); 
+    
     if (showCallDurationStatus) {
         m_DataItemShowCallDuration->setContentWidgetData(
             "text", QVariant(hbTrId("txt_phone_setlabel_val_yes")));
@@ -192,6 +194,9 @@
             HbDataFormModelItem::TextItem,
             hbTrId("txt_phone_setlabel_soft_reject"),
             this);
+    m_DataItemSoftRejectTextEditor->setObjectName(
+            "softRejectTextEditorDataItem");
+    
     m_DataItemSoftRejectTextEditor->setContentWidgetData(
         "text", QVariant(softRejectText));
     m_DataItemSoftRejectTextEditor->setContentWidgetData(
@@ -217,6 +222,8 @@
             HbDataFormModelItem::ComboBoxItem,
             hbTrId("txt_phone_setlabel_send_my_caller_id"),
             this);
+    m_DataItemCLI->setObjectName("cliDataItem");
+    
     // CLI combo box items string list 
     QStringList list;
     QMapIterator<int, QString> cliSettingMapIterator(m_cliSettingMap);
@@ -247,7 +254,9 @@
             HbDataFormModelItem::ComboBoxItem,
             hbTrId("txt_phone_setlabel_own_video_in_received_call"),
             this);
-
+    m_OwnVideoInReceivedCall->setObjectName(
+            "ownVideoInReceivedCallDataItem");
+    
     QStringList ownVideoSelections;
     ownVideoSelections
         <<hbTrId("txt_phone_setlabel_own_video_in_val_show_automatic")
@@ -277,7 +286,7 @@
             HbDataFormModelItem::ToggleValueItem,
             hbTrId("txt_phone_setlabel_call_waiting"),
             this);
-
+    m_DataItemCallWaiting->setObjectName("callWaitingDataItem"); 
     m_DataItemCallWaiting->setContentWidgetData(
         "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_check_status")));
     m_DataItemCallWaiting->setContentWidgetData(
@@ -292,13 +301,10 @@
  */
 void CpCallsPluginGroup::connectShowCallDurationItem()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     m_helper.addConnection(
         m_DataItemShowCallDuration, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)),
         this, SLOT(showCallDurationStateChanged()));
-
-    DPRINT << ": OUT";
 }
  
 /*!
@@ -306,13 +312,10 @@
  */
 void CpCallsPluginGroup::connectSoftRejectItem()
 {
-    DPRINT << ": IN";
-
+    DPRINT;
     m_helper.addConnection(
         m_DataItemSoftRejectTextEditor, SIGNAL(editingFinished()),
         this, SLOT(softRejectTextChanged()));
-
-    DPRINT << ": OUT";
 }
 
 /*!
@@ -320,8 +323,7 @@
  */
 void CpCallsPluginGroup::connectCLIItem()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     m_helper.addConnection(
         m_DataItemCLI, SIGNAL(currentIndexChanged(int)),
         this, SLOT(cliCurrentIndexChanged(int)));
@@ -335,8 +337,6 @@
     } else {
         DPRINT << "Error: " << err;
     }
-    
-    DPRINT << ": OUT";
 }
 
 /*!
@@ -344,26 +344,21 @@
  */
 void CpCallsPluginGroup::connectOwnVideoInReceivedCall()
 {
-    DPRINT << ": IN";
-        
+    DPRINT;
     m_helper.addConnection(
         m_OwnVideoInReceivedCall, SIGNAL(currentIndexChanged(int)),
             this, SLOT(ownVideoInReceivedCallStateChanged(int)));
+}
 
-    DPRINT << ": OUT";
-}
 /*!
   CpCallsPluginGroup::connectCallWaitingItem.
  */
 void CpCallsPluginGroup::connectCallWaitingItem()
 {
-    DPRINT << ": IN";
-
+    DPRINT;
     m_helper.addConnection(
         m_DataItemCallWaiting, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)),
         this, SLOT(callWaitingCurrentIndexChanged()));
-
-    DPRINT << ": OUT";
 }
 
 /*!
@@ -440,24 +435,20 @@
         // Clicked first time, user want to check feature status
         DPRINT << "checking status";
         m_callWaitingWrapper->getCallWaitingStatus();
-    }
-
-    else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_on")) {
+    } else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_on")) {
         DPRINT << "activate";
         // User want to activate call waiting feature
         m_callWaitingWrapper->setCallWaiting(
             PSetCallWaitingWrapper::ActivateCallWaiting,
             AllTeleAndBearer);
-    }
-    else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_off")) {
+    } else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_off")) {
         DPRINT << "deactivate";
         // User want to deactivate call waiting feature
         m_callWaitingWrapper->setCallWaiting(
             PSetCallWaitingWrapper::DeactivateCallWaiting,
             AllTeleAndBearer);
-    }
-    else {
-        DPRINT << "nothing done";
+    } else {
+        DWARNING << ": Error, unhandled index!";
     }
 
     DPRINT << ": OUT";
@@ -507,11 +498,9 @@
 void CpCallsPluginGroup::insertMappedListItems()
 {
     DPRINT << ": IN";
-
     m_cliSettingMap.insert(ClirNetworkDefault, hbTrId("txt_phone_setlabel_val_default"));
     m_cliSettingMap.insert(ClirExplicitSuppress, hbTrId("txt_phone_setlabel_val_yes"));
     m_cliSettingMap.insert(ClirExplicitInvoke, hbTrId("txt_phone_setlabel_val_no"));
-
     DPRINT << ": OUT";
 }
 
@@ -524,7 +513,6 @@
 {
     DPRINT << ": IN status: " << status;
     // This happens only in the very first time when clicked.
-
     emit cancelNote(m_activeNoteId);
     
     bool alsCaseOnly = false;
@@ -610,9 +598,8 @@
 {
     DPRINT << ": IN";
     DPRINT << "errorCode:" << errorCode;
-    
+
     emit cancelNote(m_activeNoteId);
-    
     emit showGlobalErrorNote(m_activeNoteId, errorCode);
     
     DPRINT << ": OUT";
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -24,15 +24,15 @@
   CpNetworkPlugin::CpNetworkPlugin
  */
 CpNetworkPlugin::CpNetworkPlugin() : 
-    QObject(0),
-    m_localisation(0)
+    QObject(NULL),
+    m_localisation(NULL),
+    m_networkStatus(NULL)
 {
     INSTALL_TRACE_MSG_HANDLER;
     DPRINT << ": IN";
     
-    // Set scoped pointer 
+    // Create guarded objects
     m_localisation.reset(new CpPhoneLocalisation); 
-    
     m_networkStatus.reset(new CpNetworkStatus); 
     
     // Install required translations
@@ -61,9 +61,7 @@
         CpItemDataHelper &itemDataHelper) const
 {   
     DPRINT << ": IN";
-    
     QList<CpSettingFormItemData*> ret;
-    
     ret.append(new CpSettingFormEntryItemDataImpl<CpNetworkPluginView>(
             itemDataHelper,
             hbTrId("txt_cp_dblist_mobile_network"),
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.h	Tue Jul 06 14:15:47 2010 +0300
@@ -36,9 +36,7 @@
     Q_INTERFACES(CpLauncherInterface)
 
 public:
-    
     CpNetworkPlugin();
-    
     ~CpNetworkPlugin();
     
     /**
@@ -55,9 +53,7 @@
     CpBaseSettingView *createSettingView(const QVariant &hint) const;
 
 private:
-    
     QScopedPointer<CpPhoneLocalisation> m_localisation;
-    
     QScopedPointer<CpNetworkStatus> m_networkStatus; 
 };
 
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -59,8 +59,10 @@
 
     // #1 Read Network mode value from Cenrep
     model->appendDataFormItem(createNetworkModeItem());
-    // #2 Use phone settings for operator selection
-    model->appendDataFormItem(createOperatorSelectionItem());
+    if(m_psetNetworkWrapper->isManualNetworkSelectionSupported()) {
+        // #2 Use phone settings for operator selection
+        model->appendDataFormItem(createOperatorSelectionItem());
+    }
     // Home network cellular data usage
     model->appendDataFormItem(createHomeDataUsageItem());
     // Cellular network data usage when roaming
@@ -78,12 +80,9 @@
  */
 CpNetworkPluginForm::~CpNetworkPluginForm()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     delete m_pSetWrapper;
     delete m_cpSettingsWrapper;
-    
-    DPRINT << ": OUT";
 }
 
 
@@ -101,6 +100,7 @@
         NULL );
     QScopedPointer<CpSettingFormItemData> settingFormItemGuard(
         m_NetworkModeOptionsItemData);
+    m_NetworkModeOptionsItemData->setObjectName("networkModeItem"); 
     
     mNetworkModeOptions << hbTrId("txt_cp_setlabel_network_mode_val_dual_mode")
                         << hbTrId("txt_cp_setlabel_network_mode_val_umts")
@@ -147,6 +147,7 @@
         NULL);
     QScopedPointer<CpSettingFormItemData> settingFormItemGuard(
         m_NetworkOperatorSelectionItemData);
+    m_NetworkOperatorSelectionItemData->setObjectName("operatorSelectionItem");
     
     PSetNetworkWrapper::NetworkSelectionMode mode;
     PSetNetworkWrapper::ErrorCode err = 
@@ -188,7 +189,8 @@
         NULL);
     QScopedPointer<CpSettingFormItemData> settingFormItemGuard(
         mCellularUseHomeSelectionItemData);
-
+    mCellularUseHomeSelectionItemData->setObjectName("homeDataUsageItem"); 
+    
     // Populate the dropdown with selection items
     mCellularUseHomeOptions
         << hbTrId("txt_cp_setlabel_data_usage_in_val_automatic")
@@ -220,9 +222,7 @@
 void CpNetworkPluginForm::cellularDataUseHomeStateChanged(int index)
 {
     DPRINT << ": IN : index: " << index;
-
     mCellularSettings->setDataUseHome(index);
-    
     DPRINT << ": OUT";
 }
 
@@ -239,7 +239,8 @@
         NULL);
     QScopedPointer<CpSettingFormItemData> settingFormItemGuard(
         mCellularUseRoamSelectionItemData);
-
+    mCellularUseRoamSelectionItemData->setObjectName("roamDataUsageItem"); 
+    
     // Populate the dropdown with selection items
     mCellularUseRoamOptions
         << hbTrId("txt_cp_setlabel_data_usage_when_val_automatic")
@@ -358,7 +359,7 @@
                 break;
             }
         } else {
-            DPRINT << ": err: " << err;
+            DWARNING << ": err: " << err;
         }
     }
 
@@ -512,7 +513,8 @@
   CpNetworkPluginForm::createDialog
   */
 void CpNetworkPluginForm::addItemToListWidget(HbListWidget* w,
-        const QString& item, const int& data) const
+                        const QString& item, const int& data, 
+                        const HbIcon& primaryIcon) const
 {
     DPRINT << ": IN";
     Q_ASSERT(w != 0);
@@ -520,6 +522,8 @@
     HbListWidgetItem* o = new HbListWidgetItem();
     o->setText(item);
     o->setData(data);
+    if(!primaryIcon.isNull())
+        o->setIcon(primaryIcon);
     w->addItem(o);
     
     DPRINT << ": OUT";
@@ -679,7 +683,7 @@
     for (int i = 0; i < itemsCount; i++) {
         PSetNetworkWrapper::NetworkInfo *info = m_networkInfoList->at(i);
         QString text = networkName(*info);
-        addItemToListWidget(list, text, i);
+        addItemToListWidget(list, text, i, HbIcon(primaryIconForNetwork(*info)));
         DPRINT << ":  " << info;
     }
     // Connect list item activation signal to close the popup
@@ -701,6 +705,42 @@
     DPRINT << ": OUT";
 }
 
+/*!
+  CpNetworkPluginForm::primaryIconForNetwork
+  */
+QString CpNetworkPluginForm::primaryIconForNetwork(const PSetNetworkWrapper::NetworkInfo &info)
+{
+    DPRINT << ": IN";
+    
+    QString iconName;
+    bool isForbiddenIconSupported = m_cpSettingsWrapper->forbiddenIconSupported();
+    if (isForbiddenIconSupported) {
+        if (info.m_access == PSetNetworkWrapper::AccessTypeGsm) {
+            if (info.m_status == PSetNetworkWrapper::StatusForbidden) {
+                iconName.append("qtg_small_network_off");
+            } else {
+                iconName.append("qtg_small_network");
+            }
+        } else if (info.m_access == PSetNetworkWrapper::AccessTypeWcdma) {
+            if (info.m_status == PSetNetworkWrapper::StatusForbidden) {
+                iconName.append("qtg_small_wcdma_off");
+            } else {
+                iconName.append("qtg_small_wcdma");
+            }
+        }
+        else if (info.m_access == PSetNetworkWrapper::AccessTypeGsmAndWcdma) {
+            if (info.m_status == PSetNetworkWrapper::StatusForbidden) {
+                iconName.append("qtg_small_pd_wcdma_off");
+            } else {
+                iconName.append("qtg_small_pd_wcdma");
+            }
+        }
+    }
+    
+    DPRINT << ": OUT : " << iconName;
+    return iconName;
+}
+
 
 /*!
   CpNetworkPluginForm::finishedManualSelectiondialog.
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.h	Tue Jul 06 14:15:47 2010 +0300
@@ -38,22 +38,18 @@
     Q_OBJECT
     
 public:
-    
     explicit CpNetworkPluginForm(QGraphicsItem *parent = 0);
-    
     virtual ~CpNetworkPluginForm();
-    
+
     void searchAvailableNetworks();
     
 signals:
-    
     void showGlobalProgressNote(int &noteId, const QString& text);
     void showGlobalNote(
         int &noteId, const QString& text, HbMessageBox::MessageBoxType msgBoxType);
     void cancelNote(int noteId);
 
-public slots: 
-
+public slots:
     void cellularDataUseHomeStateChanged(int index);
     void cellularDataUseRoamStateChanged(int index);
     void networkModeStateChanged(int index);
@@ -72,7 +68,7 @@
         PSetNetworkWrapper::RegistrationStatus& status);
     void finishedManualSelectiondialog(HbAction* action);
 
-private:     
+protected:     
     HbDataFormModelItem *createNetworkModeItem();
     HbDataFormModelItem *createOperatorSelectionItem();
     HbDataFormModelItem *createHomeDataUsageItem();
@@ -86,16 +82,17 @@
     void gsmSelection();
     
     HbDialog* createDialog(const QString& heading) const;
-    void addItemToListWidget(
-        HbListWidget* w, const QString& item, const int& data) const;
+    void addItemToListWidget(HbListWidget* w, const QString& item, 
+                            const int& data, const HbIcon& primaryIcon) const;
     
     void showManualSelectiondialog();
     void restoreOperatorSelectionUi();
     QString networkName(PSetNetworkWrapper::NetworkInfo &info);
 
     void connectToNetworkWrapper(PSetNetworkWrapper &wrapper);
-    
     void connectToPhoneNotes(CpPhoneNotes &notes);
+
+    QString primaryIconForNetwork(const PSetNetworkWrapper::NetworkInfo &info);
     
 private:
     
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -20,41 +20,34 @@
 #include "cppluginlogging.h"
 
 /*!
-  CpNetworkPluginView::CpNetworkPluginView
+  Constructor. 
  */
 CpNetworkPluginView::CpNetworkPluginView(QGraphicsItem *parent) :
-    CpBaseSettingView(0, parent),
-    m_networkSettingsForm(0)
+    CpBaseSettingView(NULL, parent),
+    m_networkSettingsForm(NULL)
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     m_networkSettingsForm = new CpNetworkPluginForm();
-    // base class takes ownership of the form
+    // Base class takes ownership of the form
     this->setWidget(m_networkSettingsForm);
-    
-    DPRINT << ": OUT";
     }
 
 /*!
-  CpNetworkPluginView::~CpNetworkPluginView
+  Destructor. 
  */
 CpNetworkPluginView::~CpNetworkPluginView()
 {
-    DPRINT << ": IN";
-    
-    DPRINT << ": OUT";
+    DPRINT;
 }
 
 /*!
-  CpNetworkPluginView::SearchAvailableNetworks
+  Slot called by QtHighway service when network 
+  is lost.    
  */
 void CpNetworkPluginView::SearchAvailableNetworks()
 {
-    DPRINT << ": IN";
-    
+    DPRINT;
     m_networkSettingsForm->searchAvailableNetworks();
-    
-    DPRINT << ": OUT";
 }
     
 // End of File. 
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.h	Tue Jul 06 14:15:47 2010 +0300
@@ -27,17 +27,13 @@
     Q_OBJECT
     
 public:
-    
     explicit CpNetworkPluginView(QGraphicsItem *parent = 0);
-    
     virtual ~CpNetworkPluginView();
     
 public slots: 
-
     void SearchAvailableNetworks();
 
 private:
-    
     CpNetworkPluginForm* m_networkSettingsForm;
 
 };
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/run_auto_tests_qt.bat	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/run_auto_tests_qt.bat	Tue Jul 06 14:15:47 2010 +0300
@@ -157,7 +157,7 @@
 :RUNTESTS
 echo Running tests
 for /f %%a in ('dir /b ut_*') do (
-    call %PATH_TO_DLL%\%%a.exe -dtextshell --
+    call %PATH_TO_DLL%\%%a.exe
     move \epoc32\winscw\c\data\%%a.log %PATH_TO_RESULT%\%%a.log
 )
 goto end
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkplugin/ut_cpnetworkplugin.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkplugin/ut_cpnetworkplugin.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -15,15 +15,14 @@
 #
 #
 
-CONFIG += qtestlib hb mobility
+CONFIG += qtestlib hb
 TEMPLATE = app
 TARGET = 
 DEPENDPATH += . ../../src/
 INCLUDEPATH += .
 INCLUDEPATH +=../../../inc 
 INCLUDEPATH +=../../../cptelephonyutils/inc
-DEFINES += BUILD_NETWORKPLUGIN BUILD_CPTELEPHONYUTILS
-MOBILITY += systeminfo
+DEFINES += BUILD_CPTELEPHONYUTILS
 
 QT -= gui
 QT += testlib
@@ -58,3 +57,4 @@
 SOURCES += ../../../tsrc/mocks/mock_cpbasesettingview.cpp
 SOURCES += ../../../tsrc/mocks/mock_hbview.cpp
 SOURCES += ../../../tsrc/mocks/mock_cpnetworkstatus.cpp
+
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_cpnetworkpluginform.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_cpnetworkpluginform.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -32,9 +32,7 @@
 
 symbian: { 
     #CONFIG += no_icon
-    INCLUDEPATH += /epoc32/include/mw/QtTest \
-        /epoc32/include/platform/mw \
-        /epoc32/include/mw/qt
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
     LIBS += -lmocklib \
         -lsymbianmock \
         -lcpframework 
@@ -57,8 +55,6 @@
            /epoc32/include/platform/mw/psetcalldivertingwrapper.h \
            /epoc32/include/platform/mw/psetnetworkwrapper.h
 
-SOURCES += ../../src/cpnetworkpluginform.cpp 
-
 # mocks needed for testing
 SOURCES += ../../../tsrc/mocks/mock_cpnetworkplugin.cpp \
            ../../../tsrc/mocks/mock_psetwrapper.cpp \
@@ -67,5 +63,8 @@
            ../../../tsrc/mocks/mock_cpphonenotes.cpp \
            ../../../tsrc/mocks/mock_cpphonelocalisation.cpp \
            ../../../tsrc/mocks/mock_hbdialog.cpp \
+           ../../../tsrc/mocks/mock_hbwidget.cpp \
            ../../../tsrc/mocks/mock_cellulardatasettings.cpp
+           
+SOURCES += ../../src/cpnetworkpluginform.cpp 
            
\ No newline at end of file
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -17,9 +17,11 @@
 
 #include "ut_networkpluginform.h"
 #include "qtestmains60ui.h"
+#include "cpitemdatahelper.h"
+#include "psetwrapper.h"
 #define private public
 #include "cpnetworkpluginform.h"
-#include "cpitemdatahelper.h"
+
 
 class CPsetContainer
 {
@@ -28,6 +30,13 @@
     ~CPsetContainer(){};
 };
 
+const QString KIconGsmForbidden("qtg_small_network_off"); 
+const QString KIconGsmNotForbidden("qtg_small_network");
+const QString KIconWcdmaForbidden("qtg_small_wcdma_off"); 
+const QString KIconWcdmaNotForbidden("qtg_small_wcdma");
+const QString KIconGsmAndWcdmaForbidden("qtg_small_pd_wcdma_off"); 
+const QString KIconGsmAndWcdmaNotForbidden("qtg_small_pd_wcdma");
+
 /*!
   UT_CpNetworkPluginForm::UT_CpNetworkPluginForm
  */
@@ -56,6 +65,7 @@
     CPsetContainer tmpPsetContainer;
     m_networkWrapper = new PSetNetworkWrapper(tmpPsetContainer);
     expect("PSetWrapper::networkWrapper").returns(m_networkWrapper);
+    expect("PSetNetworkWrapper::isManualNetworkSelectionSupported").returns(true);
     if(i) {
         m_NetworkSelectionMode = PSetNetworkWrapper::SelectionModeAutomatic;
     } else {
@@ -233,6 +243,66 @@
 }
     
 /*!
+  UT_CpNetworkPluginForm::t_primaryIconForNetwork
+ */
+void UT_CpNetworkPluginForm::t_primaryIconForNetwork()
+{
+    QScopedPointer<PSetWrapper> wrapper(new PSetWrapper()); 
+    expect("PSetWrapper::networkWrapper").returns(wrapper.data()); 
+    
+    QScopedPointer<CpNetworkPluginFormAdapter> 
+        formClassAdapter(new CpNetworkPluginFormAdapter());
+    PSetNetworkWrapper::NetworkInfo currentInfo;
+    
+    // Test: forbidden icon flag ON, mode: GSM, status: forbidden 
+    currentInfo.m_access = PSetNetworkWrapper::AccessTypeGsm; 
+    currentInfo.m_status = PSetNetworkWrapper::StatusForbidden; 
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(true); 
+    QString iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, KIconGsmForbidden); 
+    
+    // Test: forbidden icon flag ON, mode: GSM, status: available
+    currentInfo.m_access = PSetNetworkWrapper::AccessTypeGsm; 
+    currentInfo.m_status = PSetNetworkWrapper::StatusAvailable; 
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(true); 
+    iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, KIconGsmNotForbidden); 
+    
+    // Test: forbidden icon flag ON, mode: WCDMA, status: forbidden 
+    currentInfo.m_access = PSetNetworkWrapper::AccessTypeWcdma; 
+    currentInfo.m_status = PSetNetworkWrapper::StatusForbidden; 
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(true); 
+    iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, KIconWcdmaForbidden); 
+     
+    // Test: forbidden icon flag ON, mode: WCDMA, status: available
+    currentInfo.m_access = PSetNetworkWrapper::AccessTypeWcdma; 
+    currentInfo.m_status = PSetNetworkWrapper::StatusAvailable; 
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(true); 
+    iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, KIconWcdmaNotForbidden); 
+
+    // Test: forbidden icon flag ON, mode: GSM and WCDMA, status: forbidden 
+    currentInfo.m_access = PSetNetworkWrapper::AccessTypeGsmAndWcdma; 
+    currentInfo.m_status = PSetNetworkWrapper::StatusForbidden; 
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(true); 
+    iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, KIconGsmAndWcdmaForbidden); 
+     
+    // Test: forbidden icon flag ON, mode: GSM and WCDMA, status: available
+    currentInfo.m_access = PSetNetworkWrapper::AccessTypeGsmAndWcdma; 
+    currentInfo.m_status = PSetNetworkWrapper::StatusAvailable; 
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(true); 
+    iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, KIconGsmAndWcdmaNotForbidden); 
+    
+    // Test: forbidden icon flag OFF
+    expect("CpSettingsWrapper::forbiddenIconSupported").returns(false);
+    iconName = formClassAdapter->primaryIconForNetwork(currentInfo);
+    QCOMPARE(iconName, QString("")); 
+}
+
+/*!
   UT_CpNetworkPluginForm::cleanup
  */
 void UT_CpNetworkPluginForm::cleanup()
@@ -261,4 +331,5 @@
     mode = m_NetworkSelectionMode;
 }
 
+
 QTEST_MAIN_S60UI(UT_CpNetworkPluginForm)
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.h	Tue Jul 06 14:15:47 2010 +0300
@@ -21,8 +21,25 @@
 #include <QtTest/QtTest>
 #include <mockservice.h>
 #include <psetnetworkwrapper.h>
+#include "cpnetworkpluginform.h"
+#include <QObject>
+   
+class CpNetworkPluginFormAdapter : public CpNetworkPluginForm  
+{
+    Q_OBJECT
+    
+public: 
+    explicit CpNetworkPluginFormAdapter(QGraphicsItem *parent = 0)
+        :CpNetworkPluginForm(parent){}
+    virtual ~CpNetworkPluginFormAdapter(){}
+    
+    QString primaryIconForNetwork(
+            const PSetNetworkWrapper::NetworkInfo &info) {
+        return CpNetworkPluginForm::primaryIconForNetwork(info); 
+    }
+    void hideFocusHighlight(){} 
+}; 
 
-class CpNetworkPluginForm;
 
 class UT_CpNetworkPluginForm : public QObject, MockService
 {
@@ -49,10 +66,12 @@
     void t_handleSearchingNetworks();
     void t_handleRequestingSelectedNetwork();
     void t_handleNetworkChanged();
-
+    void t_primaryIconForNetwork();
+    
     void cleanup();
     
     void t_memleak();
+
 private:
     CpNetworkPluginForm *m_networkPluginForm;
     PSetNetworkWrapper *m_networkWrapper;
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/bwins/cptelephonyutilsu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/bwins/cptelephonyutilsu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -80,4 +80,5 @@
 	?showPasswordQueryDialog@CpPhoneNotes@@QAEXABVQString@@ABVQValidator@@H@Z @ 79 NONAME ; void CpPhoneNotes::showPasswordQueryDialog(class QString const &, class QValidator const &, int)
 	?trUtf8@Tools@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString Tools::trUtf8(char const *, char const *)
 	??0CpSettingsWrapper@@QAE@PAVQObject@@@Z @ 81 NONAME ; CpSettingsWrapper::CpSettingsWrapper(class QObject *)
+	?forbiddenIconSupported@CpSettingsWrapper@@QBE_NXZ @ 82 NONAME ; bool CpSettingsWrapper::forbiddenIconSupported(void) const
 
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/cptelephonyutils.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/cptelephonyutils.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -25,7 +25,7 @@
 # Input
 HEADERS += inc/cpplugincommon.h \
            inc/cpphonenotes.h \
-           inc/cpphonelocalisation.h
+           inc/cpphonelocalisation.h 
            
 SOURCES += src/cpphonenotes.cpp \
            src/cpphonelocalisation.cpp 
@@ -43,8 +43,9 @@
 
 symbian: {
     load(data_caging_paths)
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-    
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
+    INCLUDEPATH +=  ../../../inc
+
     LIBS += -lsssettings    \
             -lphonesettings \
             -lxqsysinfo \
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/eabi/cptelephonyutilsu.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/eabi/cptelephonyutilsu.def	Tue Jul 06 14:15:47 2010 +0300
@@ -78,4 +78,5 @@
 	_ZTV17CpSettingsWrapper @ 77 NONAME
 	_ZTV19CpPhoneLocalisation @ 78 NONAME
 	_ZTV5Tools @ 79 NONAME
+	_ZNK17CpSettingsWrapper22forbiddenIconSupportedEv @ 80 NONAME
 
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpplugincommon.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpplugincommon.h	Tue Jul 06 14:15:47 2010 +0300
@@ -103,6 +103,11 @@
      Return false if ongoing call does not exist.
      */
     bool isOngoingCall() const;
+	
+	/*!
+     Forbidden Icon support
+     */
+    bool forbiddenIconSupported() const;
 
 private:
     /*!
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cppluginlogging.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cppluginlogging.h	Tue Jul 06 14:15:47 2010 +0300
@@ -72,6 +72,7 @@
   */
 #define DPRINT qDebug() << __PRETTY_FUNCTION__
 #define DWARNING qWarning() << __PRETTY_FUNCTION__
+#define DCRITICAL qCritical() << __PRETTY_FUNCTION__
 
 #endif // CPPHONESETTINGSPLUGINSLOGGING_H
 
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpplugincommon.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpplugincommon.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -30,6 +30,8 @@
 #include <NumberGroupingCRKeys.h>
 #include <hbglobal.h>
 #include <CoreApplicationUIsSDKCRKeys.h>
+#include <telephonyvariant.hrh>
+#include <telinternalcrkeys.h>
 #include <ctsydomainpskeys.h>
 #include "cptelephonyutilsdefs.h"
 #include "cpplugincommon.h"
@@ -213,6 +215,12 @@
  {
      return readCenrepValue(KCRUidNumberGrouping.iUid, KNumberGrouping).toBool();
  }
+ 
+ bool CpSettingsWrapper::forbiddenIconSupported() const
+ {
+     int keyValue = readCenrepValue(KCRUidTelVariation.iUid, KTelVariationFlags).toInt();
+     return (KTelephonyLVFlagForbiddenIcon & keyValue);
+ }
 
 QVariant CpSettingsWrapper::readCenrepValue(
     const long int uid, const unsigned long int key) const
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonenotes/ut_cpphonenotes.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonenotes/ut_cpphonenotes.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -152,6 +152,7 @@
 void UT_CpPhoneNotes::t_showProgressNote()
 {
     CpPhoneNotes::instance()->showGlobalProgressNote(m_noteid1, "testshowProgressNote1");
+    QTest::qWait(5000);
     CpPhoneNotes::instance()->showGlobalProgressNote(m_noteid2, "testshowProgressNote2");
     QTest::qWait(5000);
 }
@@ -163,7 +164,7 @@
 {
     CpPhoneNotes::instance()->showGlobalProgressNote(m_noteid1, "testshowGPN");
     QTest::qWait(5000);
-    CpPhoneNotes::instance()->showGlobalProgressNote(m_noteid1,
+    CpPhoneNotes::instance()->showGlobalProgressNote(m_noteid2,
             hbTrId("txt_common_info_requesting"));
     QTest::qWait(5000);
 }
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpplugincommon/ut_cpplugincommon.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpplugincommon/ut_cpplugincommon.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -42,7 +42,9 @@
 HEADERS += ../../inc/cpplugincommon.h \
            /epoc32/include/platform/mw/xqsettingskey.h \
            /epoc32/include/platform/mw/xqsettingsmanager.h \
-           /epoc32/include/platform/mw/xqsysinfo.h
+           /epoc32/include/platform/mw/xqsysinfo.h \
+           ../../../../../inc/telephonyvariant.hrh \
+           ../../../../../inc/telinternalcrkeys.h
            
 SOURCES += ../../src/cpplugincommon.cpp
 
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -27,6 +27,7 @@
 #include <hblistwidget.h>
 #include <hblistwidgetitem.h>
 #include <hblabel.h>
+#include <hbparameterlengthlimiter.h>
 #include <cpitemdatahelper.h>
 #include "cpdivertplugingroup.h"
 #include "cpplugincommon.h"
@@ -58,7 +59,6 @@
        m_DataItemVideoIfNotAvailable(NULL),
        m_activeNoteId(0),
        m_activeProgressNoteId(0),
-       m_divertToVoiceMailBox(false),
        m_helper(helper),
        m_activateDivertPhase(NonePhase),
        m_dialog(NULL)
@@ -135,6 +135,7 @@
     CpSettingFormItemData *page = new CpSettingFormItemData(
                 HbDataFormModelItem::GroupPageItem,
                 hbTrId("txt_phone_setlabel_service_val_voice_divert"));
+    page->setObjectName("voiceCallSettingsGroupItem");
     parent->appendChild(page);
 
     m_DataItemVoiceAllCalls = createDivertItem(
@@ -143,6 +144,7 @@
             hbTrId("txt_phone_setlabel_all_calls"),
             hbTrId("txt_phone_setlabel_all_calls"), false,
             page);
+    m_DataItemVoiceAllCalls->setObjectName("voiceAllCallsDataItem");
 
     m_DataItemVoiceIfBusy = createDivertItem(
             DivertConditionBusy,
@@ -150,6 +152,7 @@
             hbTrId("txt_phone_setlabel_if_busy"),
             hbTrId("txt_phone_setlabel_if_busy"), false,
             page);
+    m_DataItemVoiceIfBusy->setObjectName("voiceIfBusyDataItem"); 
 
     m_DataItemVoiceIfNotAnswered = createDivertItem(
             DivertConditionNoReply,
@@ -157,22 +160,23 @@
             hbTrId("txt_phone_setlabel_if_not_answered"),
             hbTrId("txt_phone_setlabel_if_not_answered"), true,
             page);
-    m_DataItemVoiceIfNotAnswered->setDescription(
-            hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", 0));
-
+    m_DataItemVoiceIfNotAnswered->setObjectName("voiceIfNotAnsweredDataItem");
+    
     m_DataItemVoiceIfOutOfReach = createDivertItem(
             DivertConditionNotReachable,
             ServiceGroupVoice,
             hbTrId("txt_phone_setlabel_if_out_of_reach"),
             hbTrId("txt_phone_setlabel_if_out_of_reach"), false,
             page);
-
+    m_DataItemVoiceIfOutOfReach->setObjectName("voiceIfOutOfReachDataItem");
+    
     m_DataItemVoiceIfNotAvailable = createDivertItem(
             DivertConditionAllConditionalCases,
             ServiceGroupVoice,
             hbTrId("txt_phone_setlabel_if_not_available"),
             hbTrId("txt_phone_setlabel_if_not_available"), true,
             page);
+    m_DataItemVoiceIfNotAvailable->setObjectName("voiceIfNotAvailableDataItem");
 
     DPRINT << ": OUT";
 }
@@ -187,6 +191,7 @@
     CpSettingFormItemData *page = new CpSettingFormItemData(
             HbDataFormModelItem::GroupPageItem,
             hbTrId("txt_phone_setlabel_service_val_video_divert"));
+    page->setObjectName("videoCallSettingsGroupItem"); 
     
     parent->appendChild(page);
     
@@ -196,6 +201,7 @@
             hbTrId("txt_phone_setlabel_all_calls"),
             hbTrId("txt_phone_setlabel_all_calls"), false,
             page);
+    m_DataItemVideoAllCalls->setObjectName("videoAllCallsDataItem");
 
     m_DataItemVideoIfBusy = createDivertItem(
             DivertConditionBusy,
@@ -203,15 +209,15 @@
             hbTrId("txt_phone_setlabel_if_busy"),
             hbTrId("txt_phone_setlabel_if_busy"), false,
             page);
-
+    m_DataItemVideoIfBusy->setObjectName("videoIfBusyDataItem");
+    
     m_DataItemVideoIfNotAnswered = createDivertItem(
             DivertConditionNoReply,
             ServiceGroupData,
             hbTrId("txt_phone_setlabel_if_not_answered"),
             hbTrId("txt_phone_setlabel_if_not_answered"), true,
             page);
-    m_DataItemVideoIfNotAnswered->setDescription(
-            hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", 0));
+    m_DataItemVideoIfNotAnswered->setObjectName("videoIfNotAnsweredDataItem");
     
     m_DataItemVideoIfOutOfReach = createDivertItem(
             DivertConditionNotReachable,
@@ -219,13 +225,15 @@
             hbTrId("txt_phone_setlabel_if_out_of_reach"),
             hbTrId("txt_phone_setlabel_if_out_of_reach"), false,
             page);
-
+    m_DataItemVideoIfOutOfReach->setObjectName("videoIfOutOfReachDataItem");
+    
     m_DataItemVideoIfNotAvailable = createDivertItem(
             DivertConditionAllConditionalCases,
             ServiceGroupData,
             hbTrId("txt_phone_setlabel_if_not_available"),
             hbTrId("txt_phone_setlabel_if_not_available"), true,
             page);
+    m_DataItemVideoIfNotAvailable->setObjectName("videoIfNotAvailableDataItem");
     
     DPRINT << ": OUT";
 }
@@ -311,13 +319,9 @@
     i.item = &item;
     m_divertRequestQueue.enqueue(i);
 
-    if (m_divertRequestQueue.count()==1) {
-       // Process if first item was added, process other later
-        try {
-            processDivertingRequestQueue();
-        } catch(...) {
-            DPRINT << "error!!";
-        }
+    if (m_divertRequestQueue.count() == 1) {
+        // Process if first item was added, process other later
+        processDivertingRequestQueue();
     }
 
     DPRINT << ": OUT";
@@ -391,8 +395,12 @@
             CpSettingFormItemData* itemData = item(ServiceGroupVoice, condition); 
             itemData->setContentWidgetData("text", numberValue);
             if (DivertConditionNoReply == condition) {
-                itemData->setDescription(
-                    hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", timeout));
+                if (timeout > 0) {
+                    itemData->setDescription(
+                            hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", timeout));
+                } else {
+                    itemData->setDescription("");
+                }
             }
             itemData->setContentWidgetData("checkState", itemState);
             itemData->setEnabled(true);
@@ -402,8 +410,12 @@
             CpSettingFormItemData* itemData = item(ServiceGroupData, condition);
             itemData->setContentWidgetData("text", numberValue);
             if (DivertConditionNoReply == condition) {
-                itemData->setDescription(
-                    hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", timeout));
+                if (timeout > 0) {
+                    itemData->setDescription(
+                            hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", timeout));
+                } else {
+                    itemData->setDescription("");
+                }
             }
             itemData->setContentWidgetData("checkState", itemState);
             itemData->setEnabled(true);
@@ -547,7 +559,8 @@
             
             if (!CpPhoneNotes::instance()->noteShowing()) {
                 CpPhoneNotes::instance()->showGlobalProgressNote(
-                        m_activeProgressNoteId, hbTrId("txt_common_info_requesting"));
+                        m_activeProgressNoteId, 
+                        hbTrId("txt_common_info_requesting"));
             }
         }
             break;
@@ -605,30 +618,41 @@
             (DivertConditionUnconditional == aSetting.iCondition) &&
             (DivertingStatusActive != aSetting.iStatus) );
     
-    switch(aSetting.iStatus) {
-        case DivertingStatusActive:
+    switch (aSetting.iStatus) {
+        case DivertingStatusActive: {
             if (aPlural) {
-                CpPhoneNotes::instance()->showNotificationDialog(hbTrId("txt_phone_info_diverts_activated"));
+                CpPhoneNotes::instance()->showNotificationDialog(
+                    hbTrId("txt_phone_info_diverts_activated"));
             } else {
-                CpPhoneNotes::instance()->showNotificationDialog(hbTrId("txt_phone_info_divert_activated"));
+                CpPhoneNotes::instance()->showNotificationDialog(
+                    hbTrId("txt_phone_info_divert_activated"));
             }
-            if (!m_divertToVoiceMailBox) {
+            QString voiceMailBoxNumber;
+            QString videoMailBoxNumber;
+            m_callDivertingWrapper->getVoiceMailBoxNumber(voiceMailBoxNumber, ServiceGroupVoice);
+            m_callDivertingWrapper->getVoiceMailBoxNumber(videoMailBoxNumber, ServiceGroupData);
+            if ((aSetting.iNumber != voiceMailBoxNumber) && (aSetting.iNumber != videoMailBoxNumber)) {
                 // Number, except vmbx number, will be added to defaultnumber list
                 m_callDivertingWrapper->setNewDefaultNumber(aSetting.iNumber);
             }
+        }
             break;
         case DivertingStatusNotRegistered:  
         case DivertingStatusInactive:
             if (aPlural) {
-                CpPhoneNotes::instance()->showNotificationDialog(hbTrId("txt_phone_info_diverts_deactivated"));
+                CpPhoneNotes::instance()->showNotificationDialog(
+                    hbTrId("txt_phone_info_diverts_deactivated"));
             } else {
-                CpPhoneNotes::instance()->showNotificationDialog(hbTrId("txt_phone_info_divert_deactivated"));
+                CpPhoneNotes::instance()->showNotificationDialog(
+                    hbTrId("txt_phone_info_divert_deactivated"));
             }
             break;
         case DivertingStatusNotProvisioned:
         case DivertingStatusUnknown:
         default:
-            CpPhoneNotes::instance()->showNotificationDialog(hbTrId("txt_phone_info_request_not_completed"));
+            CpPhoneNotes::instance()->showNotificationDialog(
+                hbTrId("txt_phone_info_request_not_completed"));
+            break; 
     }
     
     DPRINT << ": OUT";
@@ -645,7 +669,7 @@
     DPRINT << "divertList.Size():" << divertList.size();
     DPRINT << "plural:" << plural;
 
-    foreach(PSCallDivertingStatus* status, divertList) {
+    foreach (PSCallDivertingStatus* status, divertList) {
         DPRINT << status->iCondition;
         DPRINT << status->iNumber;
         DPRINT << status->iServiceGroup;
@@ -678,13 +702,13 @@
             qvariant_cast<PsCallDivertingCondition>(
                     m_divertRequestQueue.head().item->property("condition")));
     }
-    
+        
     // Clear queue
     m_divertRequestQueue.clear();
-    
+        
     // Cancel previous note
     CpPhoneNotes::instance()->cancelNote(m_activeNoteId);
-    
+        
     // Show error note
     CpPhoneNotes::instance()->showGlobalErrorNote(m_activeNoteId, aReason);
     
@@ -698,9 +722,12 @@
         const QString& heading, PsServiceGroup serviceGroup)
 {
     DPRINT << ": IN";
-    
-    m_divertCommand.iNumber = ""; 
-    m_divertToVoiceMailBox = false;
+    if (m_dialog) {
+        m_dialog->deleteLater();
+        m_dialog = NULL;
+    }
+
+    m_divertCommand.iNumber.clear();
     QStringList defNumbers;
     QScopedPointer<HbDialog> dialog(createDialog(heading));
     HbListWidget *list = new HbListWidget(dialog.data());
@@ -721,10 +748,18 @@
     }
     
     if (!vmbxErr) {
-        addItemToListWidget(
-            list, 
-            hbTrId("txt_phone_setlabel_voice_mbx"), 
-            vmbxNumber );
+        if (serviceGroup == ServiceGroupVoice) {
+            addItemToListWidget(
+                list, 
+                hbTrId("txt_phone_setlabel_voice_mbx"), 
+                vmbxNumber );
+                
+        } else {
+            addItemToListWidget(
+                list, 
+                hbTrId("txt_phone_setlabel_video_mbx"), 
+                vmbxNumber );
+        }
     }
 
     // Add "old" divert number to list
@@ -757,12 +792,7 @@
             SLOT(close()));
     
     dialog->open(this, SLOT(voiceNumberListQueryClosed(HbAction *)));
-    if (m_dialog) {
-        m_dialog->deleteLater();
-        m_dialog = NULL;
-    }
     m_dialog = dialog.take();
-    
     DPRINT << ": OUT";
 }
 
@@ -772,7 +802,9 @@
 void CpDivertPluginGroup::voiceNumberListQueryClosed(HbAction* action)
 {
     DPRINT << ": IN";
-    HbListWidget *list = NULL;
+    HbListWidget *list(NULL);
+    m_divertCommand.iNumber.clear();
+    bool processNextPhase(true);
     
     if (m_dialog) {
         bool err = QObject::disconnect(m_dialog->contentWidget(), 
@@ -785,54 +817,50 @@
     }
     
     // Enter if cancel wasn't selected 
-    if (!action) {
-        QString data;
-        QString text;
-        
-        if (list) {
-            // Update the view with selected text
-            data = list->currentItem()->data().toString();
-            text = list->currentItem()->text();
-        }
+    if (!action && list) {
+        // Update the view with selected text
+        QString data = list->currentItem()->data().toString();
+        QString text = list->currentItem()->text();
+
         DPRINT << ": data: " << data; 
         DPRINT << ": text: " << text; 
 
-        if (text == hbTrId("txt_phone_setlabel_voice_mbx")) {
-            m_divertCommand.iNumber = data;
-
+        if (data == KOtherNumber) {
+            DPRINT << ": open popUpNumberEditor";
+            processNextPhase = false;
+            popUpNumberEditor(hbTrId("txt_phone_info_number"));
+        } else if (text == hbTrId("txt_phone_setlabel_voice_mbx")) {
+            DPRINT << ": get voicemailboxnumber";
+            m_callDivertingWrapper->getVoiceMailBoxNumber(
+                m_divertCommand.iNumber, ServiceGroupVoice);
             if (m_divertCommand.iNumber.isEmpty()) {
                 DPRINT << ": voicemailboxnumber query";
-                if (m_divertCommand.iServiceGroup == ServiceGroupVoice) {
-                    m_callDivertingWrapper->queryVoiceMailBoxNumber(
-                            m_divertCommand.iNumber, ServiceGroupVoice);
-                    
-                } else if(m_divertCommand.iServiceGroup == ServiceGroupData) {
-                    m_callDivertingWrapper->queryVoiceMailBoxNumber(
-                            m_divertCommand.iNumber, ServiceGroupData);
-                    
-                } else {
-                    // Skip
-                }
-
+                m_callDivertingWrapper->queryVoiceMailBoxNumber(
+                    m_divertCommand.iNumber, ServiceGroupVoice);
             }
-            
+        } else if (text == hbTrId("txt_phone_setlabel_video_mbx")) {
+            DPRINT << ": get videomailboxnumber";
+            m_callDivertingWrapper->getVoiceMailBoxNumber(
+                m_divertCommand.iNumber, ServiceGroupData);
             if (m_divertCommand.iNumber.isEmpty()) {
-                nextPhaseForActivateDivert(false);
-            } else {
-                nextPhaseForActivateDivert(true);
+                DPRINT << ": videomailboxnumber query";
+                m_callDivertingWrapper->queryVoiceMailBoxNumber(
+                    m_divertCommand.iNumber, ServiceGroupData);
             }
-        } else if (data == KOtherNumber) {
-            DPRINT << ": open popUpNumberEditor";                
-            popUpNumberEditor(hbTrId("txt_phone_info_number"));
-        } else {
+        }  else {
             //TODO if matched contact name not work
             DPRINT << ": else";
             m_divertCommand.iNumber = data;
+        }        
+    }
+    DPRINT << ": processNextPhase: " << processNextPhase; 
+    DPRINT << ": m_divertCommand.iNumber: " << m_divertCommand.iNumber; 
+    if (processNextPhase) {
+        if (m_divertCommand.iNumber.isEmpty()) {
+            nextPhaseForActivateDivert(false);
+        } else {
             nextPhaseForActivateDivert(true);
-        }        
-        
-    } else {
-        nextPhaseForActivateDivert(false);
+        }
     }
     
     DPRINT << ": OUT";
@@ -845,7 +873,11 @@
         const QString& heading)
 {
     DPRINT << ": IN";
-    
+
+    if (m_dialog) {
+        m_dialog->deleteLater();
+        m_dialog = NULL;
+    }
     QScopedPointer<HbDialog> dialog(createDialog(heading));
 
     HbLineEdit *editor = new HbLineEdit(dialog.data());
@@ -862,14 +894,8 @@
             hbTrId("txt_common_button_cancel"), 
             dialog.data());
     dialog->addAction(cancelAction);
-    
     dialog->open(this, SLOT(popUpNumberEditorClosed(HbAction*)));
-    if (m_dialog) {
-        m_dialog->deleteLater();
-        m_dialog = NULL;
-    }
     m_dialog = dialog.take();
-    
     DPRINT << ": OUT";
 }
 
@@ -948,12 +974,19 @@
     QScopedPointer<HbDialog> dialog(createDialog(hbTrId("txt_phone_title_delay")));
     HbListWidget *list = new HbListWidget(dialog.data());
     
-    addItemToListWidget(list, hbTrId("txt_phone_list_5_seconds"), 5 );
-    addItemToListWidget(list, hbTrId("txt_phone_list_10_seconds"), 10);
-    addItemToListWidget(list, hbTrId("txt_phone_list_15_seconds"), 15);
-    addItemToListWidget(list, hbTrId("txt_phone_list_20_seconds"), 20);
-    addItemToListWidget(list, hbTrId("txt_phone_list_25_seconds"), 25);
-    addItemToListWidget(list, hbTrId("txt_phone_list_30_seconds"), 30);
+    HbParameterLengthLimiter pluralLimiter;
+    pluralLimiter = HbParameterLengthLimiter("txt_phone_list_ln_seconds", 5);
+    addItemToListWidget(list, pluralLimiter, 5 );
+    pluralLimiter = HbParameterLengthLimiter("txt_phone_list_ln_seconds", 10);
+    addItemToListWidget(list, pluralLimiter, 10);
+    pluralLimiter = HbParameterLengthLimiter("txt_phone_list_ln_seconds", 15);
+    addItemToListWidget(list, pluralLimiter, 15);
+    pluralLimiter = HbParameterLengthLimiter("txt_phone_list_ln_seconds", 20);
+    addItemToListWidget(list, pluralLimiter, 20);
+    pluralLimiter = HbParameterLengthLimiter("txt_phone_list_ln_seconds", 25);
+    addItemToListWidget(list, pluralLimiter, 25);
+    pluralLimiter = HbParameterLengthLimiter("txt_phone_list_ln_seconds", 30);
+    addItemToListWidget(list, pluralLimiter, 30);
     
     // Connect list item activation signal to close the popup
     QObject::connect(
@@ -1107,9 +1140,9 @@
     QVariant itemState = m_DataItemVoiceAllCalls->contentWidgetData("checkState");
     if ((itemState.isValid()) && 
         (itemState.toInt() == Qt::Checked)) {
-        deActivateDependentDivertOption(m_DataItemVoiceIfBusy);
-        deActivateDependentDivertOption(m_DataItemVoiceIfNotAnswered);
-        deActivateDependentDivertOption(m_DataItemVoiceIfOutOfReach);
+        deactivateDependentDivertOption(m_DataItemVoiceIfBusy);
+        deactivateDependentDivertOption(m_DataItemVoiceIfNotAnswered);
+        deactivateDependentDivertOption(m_DataItemVoiceIfOutOfReach);
     } else {
         // Must query data for diverts depending on all calls divert, because 
         // data may have been lost for registered diverts, which were 
@@ -1123,9 +1156,9 @@
     itemState = m_DataItemVideoAllCalls->contentWidgetData("checkState");
     if ((itemState.isValid()) && 
         (itemState.toInt() == Qt::Checked)) {
-        deActivateDependentDivertOption(m_DataItemVideoIfBusy);
-        deActivateDependentDivertOption(m_DataItemVideoIfNotAnswered);
-        deActivateDependentDivertOption(m_DataItemVideoIfOutOfReach);
+        deactivateDependentDivertOption(m_DataItemVideoIfBusy);
+        deactivateDependentDivertOption(m_DataItemVideoIfNotAnswered);
+        deactivateDependentDivertOption(m_DataItemVideoIfOutOfReach);
     } else {
         // Must query data for diverts depending on all calls divert, because 
         // data may have been lost for registered diverts, which were 
@@ -1142,9 +1175,9 @@
 }
 
 /*!
-  CpDivertPluginGroup::deActivateDependentDivertOption.
+  CpDivertPluginGroup::deactivateDependentDivertOption.
 */
-void CpDivertPluginGroup::deActivateDependentDivertOption(
+void CpDivertPluginGroup::deactivateDependentDivertOption(
         CpDivertItemData* item) const
 {
     DPRINT << ": IN";
@@ -1155,8 +1188,7 @@
         item->setContentWidgetData("text", QString(""));
         
         if (!item->description().isEmpty()) {
-            item->setDescription(
-                hbTrId("txt_phone_setlabel_divert_delay_ln_seconds", 0));
+            item->setDescription("");
         }
     }
     item->setEnabled(false);
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.h	Tue Jul 06 14:15:47 2010 +0300
@@ -231,7 +231,7 @@
      */
     void updateDependentDivertOptions(bool fetchFromNetwork = false);
     void activateDependentDivertOption(CpDivertItemData* item, bool fetchFromNetwork);
-    void deActivateDependentDivertOption(CpDivertItemData* item) const;
+    void deactivateDependentDivertOption(CpDivertItemData* item) const;
     
     /**
      Synchronizes content and status of not available divert option based on
@@ -242,7 +242,7 @@
     void nextPhaseForActivateDivert(bool ok);
     
     bool isDivertSettingsItem(HbDataFormModelItem* modelItem);
-    
+     
 private:   // data
 
     // Setting wrappers 
@@ -268,9 +268,6 @@
     int m_activeNoteId;
     int m_activeProgressNoteId;
 
-    // To prevent adding vmbx number to defaultlist
-    bool m_divertToVoiceMailBox;
-
     /**
      Divert request queue
      */
@@ -282,6 +279,7 @@
     PSCallDivertingCommand m_divertCommand;
     int m_timerId;
     HbDialog *m_dialog;
+
 };
 
 #endif // CPDIVERTPLUGINGROUP_H
--- a/phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -153,6 +153,7 @@
 void UT_CpDivertPlugin::t_changeDivertingStateRequested()
 {
     //except user cancels
+    /*
     appendAction("txt_phone_setlabel_all_calls", selectAction, "Cancel");
     expect("PSetCallDivertingWrapper::getDefaultNumbers");
     m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData("text", "");
@@ -231,7 +232,7 @@
     //expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify());
-    
+    */
     //except user selects other number, inserts number and cancels
     /* BUG in framework (Crash in QGestureManager::getState due to QWeakPointer) */
     /*
@@ -309,23 +310,15 @@
 /*!
   UT_CpDivertPlugin::t_popUpTimerQuery
  */
-/*void UT_CpDivertPlugin::t_popUpTimerQuery()
+void UT_CpDivertPlugin::t_popUpTimerQuery()
 {
-    appendAction("txt_phone_setlabel_if_not_answered", selectItem, "0401234567");
-    appendAction("txt_phone_title_delay", selectAction, "Cancel");
-    expect("PSetCallDivertingWrapper::getDefaultNumbers");
-    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData("text", "");
-    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData(
-        "checkState", Qt::Checked);
-    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->thisItemClicked();
-    waitForQueueEmpty();
-    QVERIFY(verify());
-    
+    const QString delayLnString("txt_phone_list_ln_seconds");
+        
     appendAction("txt_phone_setlabel_if_not_answered", selectItem, "txt_phone_list_enter_number_manually");
     appendAction("txt_phone_info_number", insertText, "12345");
     appendAction("txt_phone_info_number", selectAction, "OK");
-    appendAction("txt_phone_title_delay", selectItem, "txt_phone_list_15_seconds");
-    //except user chooses other number and inserts number and timeout
+    appendAction("txt_phone_title_delay", selectItem, delayLnString);
+    // expect user chooses other number and inserts number and timeout
     expect("PSetCallDivertingWrapper::getDefaultNumbers");    
     expect("SsSettingsWrapper::get");
     expect("PSetCallDivertingWrapper::setCallDiverting");
@@ -340,9 +333,9 @@
     command.iCondition = qvariant_cast<PsCallDivertingCondition>(
             m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->property("condition"));
     command.iServiceGroup = ServiceGroupVoice;
-    expect("CpPhoneNotes::showGlobalNote");
+    expect("CpPhoneNotes::showNotificationDialog");
     m_divertpluginGroup->handleDivertingChanged(command, false);
-//    expect("CpPhoneNotes::cancelNote");
+    expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify());
     
@@ -358,14 +351,14 @@
     command.iCondition = qvariant_cast<PsCallDivertingCondition>(
             m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->property("condition"));
     command.iServiceGroup = ServiceGroupVoice;
-    expect("CpPhoneNotes::showGlobalNote");
+    expect("CpPhoneNotes::showNotificationDialog");
     m_divertpluginGroup->handleDivertingChanged(command, false);
-    //expect("CpPhoneNotes::cancelNote");
+    expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify());
 
 }
-*/
+
 /*!
   UT_CpDivertPlugin::t_handleDivertingChanged
  */
@@ -375,6 +368,7 @@
     
     c.iStatus = DivertingStatusActive;
     c.iServiceGroup = ServiceGroupAllTeleservices;
+    c.iNumber = QString("0401234567890");
     expect("PSetCallDivertingWrapper::setNewDefaultNumber");
     m_divertpluginGroup->handleDivertingChanged(c, true);
     
@@ -382,6 +376,7 @@
     
     c.iServiceGroup = ServiceGroupAllTeleservices;
     c.iCondition = DivertConditionUnconditional;
+    c.iNumber = QString("0401234567890");
     expect("PSetCallDivertingWrapper::setNewDefaultNumber");
     m_divertpluginGroup->handleDivertingChanged(c, false);
     
--- a/phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.h	Tue Jul 06 14:15:47 2010 +0300
@@ -51,7 +51,7 @@
     void t_handleDivertingError();
 
     void t_memleak();
-//    void t_popUpTimerQuery();
+    void t_popUpTimerQuery();
     
 private:
     
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -71,6 +71,22 @@
     return ret;
 }
 
+/*!
+    CpTelephonyPlugin::createSettingView() const
+*/
+CpBaseSettingView *CpTelephonyPlugin::createSettingView(const QVariant &hint) const
+{
+    QVariantHash hash = hint.value<QVariantHash>();
+    
+    if( hash.value("view").toString().compare("divert_view",Qt::CaseInsensitive) == 0){
+        QVariantList params;
+        params << QVariant("cpdivertplugin");
+        return new CpTelephonyPluginView(params);
+    }
+    return 0;
+}
+
+
 Q_EXPORT_PLUGIN2(cptelephonyplugin, CpTelephonyPlugin);
 
 
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.h	Tue Jul 06 14:15:47 2010 +0300
@@ -21,6 +21,7 @@
 #include <QObject>
 #include <QList>
 #include <cpplugininterface.h>
+#include <cplauncherinterface.h>
 #include "cpphonelocalisation.h"
 
 /*!
@@ -29,13 +30,14 @@
  */
 class CpTelephonyPlugin
         : public QObject,
-          public CpPluginInterface
+          public CpPluginInterface,
+          public CpLauncherInterface
 {
     Q_OBJECT
     Q_INTERFACES(CpPluginInterface)
+    Q_INTERFACES(CpLauncherInterface)
     
 public:
- 
     CpTelephonyPlugin();
     ~CpTelephonyPlugin();
     
@@ -46,6 +48,12 @@
     QList<CpSettingFormItemData*> createSettingFormItemData(
             CpItemDataHelper &itemDataHelper) const;
     
+    /*!
+     From CpLauncherInterface.
+     @see CpLauncherInterface.
+     */
+    virtual CpBaseSettingView *createSettingView(const QVariant &hint) const;
+    
 private: 
     
     QScopedPointer<CpPhoneLocalisation> m_localisation; 
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -15,8 +15,7 @@
 *
 */
 
-#include "cptelephonypluginview.h"
-#include "cppluginlogging.h"
+
 #include <QPluginLoader>
 #include <hbdataformmodel.h>
 #include <cpplugininterface.h>
@@ -24,10 +23,24 @@
 #include <cpitemdatahelper.h>
 #include <cppluginutility.h>
 #include <cppluginloader.h>
-
+#include "cptelephonypluginview.h"
+#include "cppluginlogging.h"
 
 /*!
-    CpTelephonyPluginView::CpTelephonyPluginView()
+    \class CpTelephonyPluginView
+    \brief The class CpTelephonyPluginView 
+           loads child setting plugins contained 
+           in "Telephony" view.     
+*/
+
+// Local constants
+const char* PLUGIN_NAME_CALLSPLUGIN = "cpcallsplugin"; 
+const char* PLUGIN_NAME_VMBXPLUGIN = "vmbxcpplugin"; 
+const char* PLUGIN_NAME_DIVERTPLUGIN = "cpdivertplugin"; 
+const char* PLUGIN_NAME_BARRINGPLUGIN = "cpbarringplugin"; 
+
+/*!
+    Constructor. 
 */
 CpTelephonyPluginView::CpTelephonyPluginView() : 
     CpBaseSettingView(0,0),
@@ -43,21 +56,23 @@
         m_helper = initializeItemDataHelper(); 
         QList<CpSettingFormItemData*> items;
         
-        // Load calls plugin
         DPRINT << ": Loading cpcallsplugin";
-        items.append(groupItemFromPlugin("cpcallsplugin"));
-        
-        // Load diverts plugin
+        items.append(groupItemFromPlugin(
+                PLUGIN_NAME_CALLSPLUGIN));
+       // CpSettingFormItemData* expandedItem = items.last();  
+
+        DPRINT << ": Loading vmbxcpplugin";
+        items.append(groupItemFromPlugin(
+                PLUGIN_NAME_VMBXPLUGIN));
+
+
         DPRINT << ": Loading cpdivertsplugin";
-        items.append(groupItemFromPlugin("cpdivertplugin"));
-        
-        // Load call mailboxes plugin
-        DPRINT << ": Loading vmbxcpplugin";
-        items.append(groupItemFromPlugin("vmbxcpplugin"));
+        items.append(groupItemFromPlugin(
+                PLUGIN_NAME_DIVERTPLUGIN));
 
-        // Load barring plugin
         DPRINT << ": Loading cpbarringplugin";
-        items.append(groupItemFromPlugin("cpbarringplugin"));
+        items.append(groupItemFromPlugin(
+                PLUGIN_NAME_BARRINGPLUGIN));
         
         // Insert items to form model
         foreach (CpSettingFormItemData* i, items) {
@@ -65,27 +80,73 @@
         }
         
         form->setModel(model);
+        
+        /*
+        if (expandedItem) {
+            QModelIndex expandedItemIndex = model->indexFromItem(expandedItem);
+            
+            if (expandedItemIndex.isValid()) {
+                form->setExpanded(expandedItemIndex, true);
+            }
+        }
+        */
     }
     
     DPRINT << ": OUT";
 }
 
 /*!
-    CpTelephonyPluginView::~CpTelephonyPluginView()
+    Constructor with param list. 
+*/
+CpTelephonyPluginView::CpTelephonyPluginView(const QVariantList &params) :
+    CpBaseSettingView(0,0),
+    m_helper(NULL)
+{
+    HbDataForm *form = qobject_cast<HbDataForm*>(widget());
+    if (form){
+        HbDataFormModel *model = new HbDataFormModel;
+        form->setHeading(hbTrId("txt_phone_subhead_telephone"));
+        m_helper = initializeItemDataHelper(); 
+        QList<CpSettingFormItemData*> items;
+        TBool expanded(false);
+        CpSettingFormItemData* expandedItem(NULL);
+        foreach (QVariant var, params){
+            items.append(groupItemFromPlugin(var.toString()));
+            if(!expanded){
+                expandedItem = items.last();
+                expanded = true;
+            }
+        }
+        // Insert items to form model
+        foreach (CpSettingFormItemData* i, items) {
+            model->appendDataFormItem(i);
+        }
+        form->setModel(model);
+        if (expandedItem) {
+            QModelIndex expandedItemIndex = model->indexFromItem(expandedItem);
+            
+            if (expandedItemIndex.isValid()) {
+                form->setExpanded(expandedItemIndex, true);
+            }
+        }
+    }
+}
+
+/*!
+    Destructor. 
 */
 CpTelephonyPluginView::~CpTelephonyPluginView()
 {
     DPRINT << ": IN";
-    
     delete m_helper;
-    
     DPRINT << ": OUT";
 }
 
 /*!
-    CpTelephonyPluginView::groupItemFromPlugin()
+    Load group item for given plugin name. 
 */
-QList<CpSettingFormItemData*> CpTelephonyPluginView::groupItemFromPlugin( const QString& plugin )
+QList<CpSettingFormItemData*> CpTelephonyPluginView::groupItemFromPlugin( 
+        const QString& plugin)
 {
     DPRINT << ": IN";
  
@@ -93,11 +154,11 @@
     CpPluginInterface *p(NULL);
     try {
         p = CpPluginLoader::loadCpPluginInterface(plugin);
-        if (p && m_helper){
+        if (p && m_helper) {
             items = p->createSettingFormItemData(*m_helper);
         }
     } catch(...) {
-        DPRINT << "CATCH ERROR";
+        DCRITICAL << ": CATCH ERROR, item creation failed!";
         delete p;
     }
     
@@ -106,7 +167,7 @@
 }
 
 /*!
-    CpTelephonyPluginView::initializeItemDataHelper()
+    Item data helper initialization. 
 */
 CpItemDataHelper* CpTelephonyPluginView::initializeItemDataHelper()
 {
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.h	Tue Jul 06 14:15:47 2010 +0300
@@ -19,34 +19,29 @@
 #define CPTELEPHONYPLUGINVIEW_H_
 
 #include <QObject>
+#include <QVariantList>
 #include <hbdataform.h>
 #include <cpbasesettingview.h>
 
 class HbDataFormModelItem;
 class CpSettingFormItemData;
 
-/*!
-    \class CpTelephonyPluginView
-    \brief The class CpTelephonyPluginView. 
- */
+// Class declaration 
 class CpTelephonyPluginView : public CpBaseSettingView
 {
     Q_OBJECT
 
 public:
     CpTelephonyPluginView();
+    CpTelephonyPluginView(const QVariantList &params);
     ~CpTelephonyPluginView();
 
 private: 
+    CpItemDataHelper* initializeItemDataHelper();
+    QList<CpSettingFormItemData*> groupItemFromPlugin(
+            const QString& plugin);
     
-    CpItemDataHelper* initializeItemDataHelper();
-
-private: 
- 
-    QList<CpSettingFormItemData*> groupItemFromPlugin(const QString& plugin);
-    
-private:   // data
- 
+private: // Data
     CpItemDataHelper *m_helper;
 };
 
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/tsrc/ut_cptelephonypluginview/ut_cptelephonypluginview.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/tsrc/ut_cptelephonypluginview/ut_cptelephonypluginview.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -64,20 +64,21 @@
 void UT_CpTelephonyPluginView::init()
 {
     initialize();
+
     CpPluginInterface *nullPlugin=0;
-    expect("CpPluginLoader::loadCpPluginInterface").
-            with(QString("cpcallsplugin")).returns(nullPlugin);
     DummyPlugin *ret = new DummyPlugin;
-    
-    //ret = new DummyPlugin;
+
     QList<CpSettingFormItemData*> list;
     list.append(new CpSettingFormItemData);
     expect("CpPluginLoader::loadCpPluginInterface").
-            with(QString("cpdivertplugin")).returns(ret); // cpnetworkplugin
+            with(QString("cpcallsplugin")).returns(ret);
     expect("DummyPlugin::createSettingFormItemData").returns(list);
+    expect("CpPluginLoader::loadCpPluginInterface").
+            with(QString("cpdivertplugin")).returns(nullPlugin);
     
     m_callspluginview = new CpTelephonyPluginView;
     QVERIFY( verify() );
+
 }
 
 /*!
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginform.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginform.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1,4 +1,4 @@
-/* 
+/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -59,46 +59,6 @@
     SMC_MOCK_METHOD0( void )
     }
 
-
-// -----------------------------------------------------------------------------
-// CpNetworkPluginForm::showGlobalProgressNote
-// -----------------------------------------------------------------------------
-//
-void CpNetworkPluginForm::showGlobalProgressNote( 
-        int & noteId,
-        const QString & text )
-    {
-    SMC_MOCK_METHOD2( void, int &, noteId, 
-        const QString &, text )
-    }
-
-
-// -----------------------------------------------------------------------------
-// CpNetworkPluginForm::showGlobalNote
-// -----------------------------------------------------------------------------
-//
-void CpNetworkPluginForm::showGlobalNote( 
-        int & ,
-        const QString & ,
-        HbMessageBox::MessageBoxType  )
-    {
-   // SMC_MOCK_METHOD3( void, int &, noteId, 
-   //     const QString &, text, 
-   //     HbMessageBox::MessageBoxType, msgBoxType )
-    }
-
-
-// -----------------------------------------------------------------------------
-// CpNetworkPluginForm::cancelNote
-// -----------------------------------------------------------------------------
-//
-void CpNetworkPluginForm::cancelNote( 
-        int noteId )
-    {
-    SMC_MOCK_METHOD1( void, int, noteId )
-    }
-
-
 // -----------------------------------------------------------------------------
 // CpNetworkPluginForm::cellularDataUseHomeStateChanged
 // -----------------------------------------------------------------------------
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpplugincommon.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpplugincommon.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -1,4 +1,4 @@
-/* 
+/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -55,7 +55,8 @@
 // CpSettingsWrapper::setShowCallDuration
 // -----------------------------------------------------------------------------
 //
-int CpSettingsWrapper::setShowCallDuration( bool value )
+int CpSettingsWrapper::setShowCallDuration( 
+        bool value )
     {
     SMC_MOCK_METHOD1( int, bool, value )
     }
@@ -96,7 +97,8 @@
         userDefined = true;
         i=1;
     }
-    SMC_MOCK_METHOD2( void, QString &, text, bool, userDefined )
+    SMC_MOCK_METHOD2( void, QString &, text,
+        bool &, userDefined )
     }
 
 
@@ -105,9 +107,11 @@
 // -----------------------------------------------------------------------------
 //
 int CpSettingsWrapper::writeSoftRejectText( 
-        const QString & text, bool userDefined )
+        const QString & text,
+        bool userDefined )
     {
-    SMC_MOCK_METHOD2( int, const QString &, text, bool, userDefined )
+    SMC_MOCK_METHOD2( int, const QString &, text, 
+        bool, userDefined )
     }
 
 
@@ -125,28 +129,41 @@
 // CpSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled
 // -----------------------------------------------------------------------------
 //
-bool CpSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled()
-{
+bool CpSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled(  )
+    {
     SMC_MOCK_METHOD0( bool )
-}
+    }
+
 
 // -----------------------------------------------------------------------------
 // CpSettingsWrapper::isPhoneOffline
 // -----------------------------------------------------------------------------
 //
-bool CpSettingsWrapper::isPhoneOffline() const
-{
+bool CpSettingsWrapper::isPhoneOffline(  ) const
+    {
     SMC_MOCK_METHOD0( bool )
-}
+    }
+
 
 // -----------------------------------------------------------------------------
 // CpSettingsWrapper::isOngoingCall
 // -----------------------------------------------------------------------------
 //
-bool CpSettingsWrapper::isOngoingCall() const
-{
+bool CpSettingsWrapper::isOngoingCall(  ) const
+    {
     SMC_MOCK_METHOD0( bool )
-}
+    }
+
+
+// -----------------------------------------------------------------------------
+// CpSettingsWrapper::forbiddenIconSupported
+// -----------------------------------------------------------------------------
+//
+bool CpSettingsWrapper::forbiddenIconSupported(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
 
 // -----------------------------------------------------------------------------
 // Tools::voipSupported
@@ -167,12 +184,17 @@
     SMC_MOCK_METHOD0( bool )
     }
 
+
 // -----------------------------------------------------------------------------
 // Tools::errorCodeTextMapping
 // -----------------------------------------------------------------------------
 //
-bool Tools::errorCodeTextMapping( const int errorcode, QString & errorText )
+bool Tools::errorCodeTextMapping( 
+        const int errorcode,
+        QString & errorText )
     {
-    SMC_MOCK_METHOD2( bool, int, errorcode, QString &, errorText )
+    SMC_MOCK_METHOD2( bool, const int, errorcode, 
+        QString &, errorText )
     }
-	
+
+
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cptelephonypluginview.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cptelephonypluginview.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -15,6 +15,7 @@
  *
  */
 #include <QDebug>
+#include <QVariantList>
 #include "cptelephonypluginview.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -29,6 +30,15 @@
     
     }
 
+// -----------------------------------------------------------------------------
+// CpTelephonyPluginView::CpTelephonyPluginView
+// -----------------------------------------------------------------------------
+//
+CpTelephonyPluginView::CpTelephonyPluginView(const QVariantList &params)
+    :CpBaseSettingView(0, 0)
+    {
+    
+    }    
 
 // -----------------------------------------------------------------------------
 // CpTelephonyPluginView::~CpTelephonyPluginView
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_hbwidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_hbwidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -482,3 +482,13 @@
     }
 
 
+// -----------------------------------------------------------------------------
+// HbWidget::hideFocusHighlight
+// -----------------------------------------------------------------------------
+//
+void HbWidget::hideFocusHighlight()
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+ 
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_psetcalldivertingwrapper.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_psetcalldivertingwrapper.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -26,9 +26,11 @@
 //
 PSetCallDivertingWrapper::PSetCallDivertingWrapper( 
         CPsetContainer & psetContainer,
-        QObject * parent ) : QObject( parent )
+        QObject * parent )
+    //:
+    //QObject( /*psetContainer, parent*/ )
     {
-    Q_UNUSED(psetContainer);
+    
     }
 
 
@@ -106,22 +108,29 @@
     SMC_MOCK_METHOD1( void, QString, aNumber )
     }
 
+
 // -----------------------------------------------------------------------------
 // PSetCallDivertingWrapper::getVoiceMailBoxNumber
 // -----------------------------------------------------------------------------
 //
-int PSetCallDivertingWrapper::getVoiceMailBoxNumber(
-        QString &aNumber, PsService aService)
+int PSetCallDivertingWrapper::getVoiceMailBoxNumber( 
+        QString & aNumber,
+        PsService aService )
     {
-    SMC_MOCK_METHOD2( int, QString & , aNumber, PsService, aService )
+    SMC_MOCK_METHOD2( int, QString &, aNumber, 
+        PsService, aService )
     }
 
+
 // -----------------------------------------------------------------------------
 // PSetCallDivertingWrapper::queryVoiceMailBoxNumber
 // -----------------------------------------------------------------------------
 //
-int PSetCallDivertingWrapper::queryVoiceMailBoxNumber(
-        QString &aNumber, PsService aService)
+int PSetCallDivertingWrapper::queryVoiceMailBoxNumber( 
+        QString & aNumber,
+        PsService aService )
     {
-    SMC_MOCK_METHOD2( int, QString & , aNumber, PsService, aService )
+    SMC_MOCK_METHOD2( int, QString &, aNumber, 
+        PsService, aService )
     }
+
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_psetnetworkwrapper.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_psetnetworkwrapper.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -16,7 +16,7 @@
 */
 #include <QDebug>
 #include <smcmockclassincludes.h>
-#include "psetnetworkwrapper.h"
+#include <psetnetworkwrapper.h>
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -38,7 +38,7 @@
 //
 PSetNetworkWrapper::~PSetNetworkWrapper(  )
     {
-
+    
     }
 
 
@@ -105,3 +105,14 @@
     }
 
 
+// -----------------------------------------------------------------------------
+// PSetNetworkWrapper::isManualNetworkSelectionSupported
+// -----------------------------------------------------------------------------
+//
+bool PSetNetworkWrapper::isManualNetworkSelectionSupported(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+
--- a/phoneuis/bubblemanager2/bubblecore/bubblecore.qrc	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/bubblecore.qrc	Tue Jul 06 14:15:47 2010 +0300
@@ -14,5 +14,7 @@
         <file alias="bubbleparticipantlistitem.widgetml">xml/bubbleparticipantlistitem.widgetml</file>
         <file alias="bubbleheadingwidget.css">xml/bubbleheadingwidget.css</file>
         <file alias="bubble_icon_anim.axml">resources/bubble_icon_anim.axml</file>
+        <file alias="bubbleparticipantlistbuttons.widgetml">xml/bubbleparticipantlistbuttons.widgetml</file>
+        <file alias="bubbleparticipantlistbuttons.css">xml/bubbleparticipantlistbuttons.css</file>
     </qresource>
 </RCC>
--- a/phoneuis/bubblemanager2/bubblecore/bwins/bubblemanager2u.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/bwins/bubblemanager2u.def	Tue Jul 06 14:15:47 2010 +0300
@@ -62,4 +62,5 @@
 	?addRowToConference@BubbleManager@@UAEXH@Z @ 61 NONAME ; void BubbleManager::addRowToConference(int)
 	?setLabel@BubbleManager@@UAEXHABVQString@@W4TextElideMode@Qt@@@Z @ 62 NONAME ; void BubbleManager::setLabel(int, class QString const &, enum Qt::TextElideMode)
 	?releaseImageIfNotUsed@BubbleManager@@AAEXABVQString@@@Z @ 63 NONAME ; void BubbleManager::releaseImageIfNotUsed(class QString const &)
+	?releaseNonCachedViews@BubbleManager@@AAEXXZ @ 64 NONAME ; void BubbleManager::releaseNonCachedViews(void)
 
--- a/phoneuis/bubblemanager2/bubblecore/eabi/bubblemanager2u.def	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/eabi/bubblemanager2u.def	Tue Jul 06 14:15:47 2010 +0300
@@ -106,4 +106,5 @@
 	_ZThn8_N13BubbleManagerD0Ev @ 105 NONAME
 	_ZThn8_N13BubbleManagerD1Ev @ 106 NONAME
 	_ZN13BubbleManager21releaseImageIfNotUsedERK7QString @ 107 NONAME
+	_ZN13BubbleManager21releaseNonCachedViewsEv @ 108 NONAME
 
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblebutton.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblebutton.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -65,7 +65,8 @@
     HbPushButton::updatePrimitives();
 
     HbFrameItem* frame =
-        qgraphicsitem_cast<HbFrameItem*>(HbWidget::primitive("background"));
+        qgraphicsitem_cast<HbFrameItem*>(HbWidget::primitive(
+            QLatin1String("background")));
 
     if (!frame) {
         return;
@@ -76,23 +77,30 @@
 
     if (isDown()) {
         if (buttonType()==GreenButton) {
-            graphicsName = "qtg_fr_btn_green_pressed";
-            iconColor = HbColorScheme::color("qtc_callhandling_answer_pressed");
+            graphicsName = QLatin1String("qtg_fr_btn_green_pressed");
+            iconColor = HbColorScheme::color(
+                QLatin1String("qtc_callhandling_answer_pressed"));
         } else if (buttonType()==RedButton) {
-            graphicsName = "qtg_fr_btn_red_pressed";
-            iconColor = HbColorScheme::color("qtc_callhandling_reject_pressed");
+            graphicsName = QLatin1String("qtg_fr_btn_red_pressed");
+            iconColor = HbColorScheme::color(
+                QLatin1String("qtc_callhandling_reject_pressed"));
         } else {
-            iconColor = HbColorScheme::color("qtc_button_pressed");
+            iconColor = HbColorScheme::color(
+                QLatin1String("qtc_button_pressed"));
         }
     } else {
         if (buttonType()==GreenButton) {
-            graphicsName = "qtg_fr_btn_green_normal";
-            iconColor = HbColorScheme::color("qtc_callhandling_answer_normal");
+            graphicsName =
+                QLatin1String("qtg_fr_btn_green_normal");
+            iconColor = HbColorScheme::color(
+                QLatin1String("qtc_callhandling_answer_normal"));
         } else if (buttonType()==RedButton) {
-            graphicsName = "qtg_fr_btn_red_normal";
-            iconColor = HbColorScheme::color("qtc_callhandling_reject_normal");
+            graphicsName = QLatin1String("qtg_fr_btn_red_normal");
+            iconColor = HbColorScheme::color(
+                QLatin1String("qtc_callhandling_reject_normal"));
         } else {
-            iconColor = HbColorScheme::color("qtc_button_normal");
+            iconColor = HbColorScheme::color(
+                QLatin1String("qtc_button_normal"));
         }
     }
 
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -15,12 +15,12 @@
 *
 */
 
-#include <QtGui>
+#include <QTimer>
+
 #include <hbaction.h>
 #include <hbtextitem.h>
 #include <hblabel.h>
 #include <hblistview.h>
-#include <hbcolorscheme.h>
 
 #include "bubblemanager2.h"
 #include "bubbleconferencehandler.h"
@@ -29,6 +29,7 @@
 #include "bubbleparticipantlistitem.h"
 #include "bubbleparticipantlistmodel.h"
 #include "bubblebutton.h"
+#include "bubbleheadingwidget.h"
 
 static const int BUBBLE_SELECTION_TIMEOUT = 3000;
 
@@ -39,14 +40,9 @@
     QObject* parent )
     : BubbleHandler(widgetManager,view,container,parent)
 {
-    mTimerLabel =
-        qobject_cast<HbLabel*>(widget(BubbleWidgetManager::ConferenceTimer));
-    Q_ASSERT(mTimerLabel);
-    HbDeviceProfile profile;
-    HbFontSpec spec(HbFontSpec::Secondary);
-    spec.setTextHeight(4*HbDeviceProfile::current().unitValue());
-    mTimerLabel->setFontSpec(spec);
-    mTimerLabel->setAlignment(Qt::AlignLeft);
+    mHeading =
+        qobject_cast<BubbleHeadingWidget*>(widget(BubbleWidgetManager::Heading));
+    Q_ASSERT(mHeading);
 
     mButtonCenter =
         qobject_cast<BubbleButton*>(widget(BubbleWidgetManager::CenterButton));
@@ -96,7 +92,7 @@
 
     mSelectionTimer->stop();
     mPrototype->clearActions();
-    mTimerLabel->hide();
+    mHeading->reset();
     mButtonCenter->hide();
     mButtonCenter->setDown(false);
     mButtonCenter->disconnect();
@@ -130,15 +126,7 @@
             !(mHeader->callFlags()&BubbleManagerIF::NoCiphering));
     }
 
-    if (header.timerCost().length()) {
-        QColor color;
-        color = HbColorScheme::color("list_item_title_normal");
-        if (color.isValid()) {
-            mTimerLabel->setTextColor(color);
-        }
-        mTimerLabel->setPlainText(header.timerCost());
-        mTimerLabel->show();
-    }
+    mHeading->readBubbleHeader(header);
 
     setButtons(mHeader->actions());
 
@@ -194,10 +182,7 @@
 
 void BubbleConferenceHandler::updateTimerDisplayNow()
 {
-    Q_ASSERT(mHeader);
-
-    mTimerLabel->setPlainText(mHeader->timerCost());
-    mTimerLabel->update();
+    mHeading->updateTimerDisplayNow();
 }
 
 void BubbleConferenceHandler::handleItemSelected(
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -24,7 +24,7 @@
 class BubbleHeader;
 class HbAction;
 class BubbleButton;
-class HbLabel;
+class BubbleHeadingWidget;
 class BubbleConferenceHeader;
 class HbListWidgetItem;
 class BubbleParticipantListItem;
@@ -67,7 +67,7 @@
 
 protected: //data
     const BubbleConferenceHeader* mHeader;
-    HbLabel* mTimerLabel;
+    BubbleHeadingWidget* mHeading;
     BubbleButton* mButtonCenter;
     BubbleButton* mButtonLeft;
     BubbleButton* mButtonRight;
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -15,7 +15,8 @@
 *
 */
 
-#include <QtGui>
+#include <QGraphicsSceneMouseEvent>
+#include <QPainter>
 #include <hbstyle.h>
 #include <hbframeitem.h>
 #include <hbframedrawer.h>
@@ -24,9 +25,10 @@
 BubbleContainerWidget::BubbleContainerWidget(QGraphicsItem* item)
     : HbWidget(item), mBackground(0)
 {
+    setFlag(QGraphicsItem::ItemHasNoContents, false);
+
     createPrimitives();
     updatePrimitives();
-    Q_ASSERT(mBackground);
 }
 
 BubbleContainerWidget::~BubbleContainerWidget()
@@ -37,7 +39,7 @@
 {
     delete mBackground;
     mBackground = new HbFrameItem(this);
-    style()->setItemName(mBackground, "background");
+    style()->setItemName(mBackground, QLatin1String("background"));
     mBackground->setZValue(-1.0);
     mBackground->setVisible(false); // background in drawn in paint()
 }
@@ -45,29 +47,23 @@
 void BubbleContainerWidget::updatePrimitives()
 {
     mBackground->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-    mBackground->frameDrawer().setFrameGraphicsName("qtg_fr_list_normal");
+    mBackground->frameDrawer().setFrameGraphicsName(
+        QLatin1String("qtg_fr_list_normal"));
 }
 
 void BubbleContainerWidget::mousePressEvent(
     QGraphicsSceneMouseEvent * event)
 {
     if (event->button() != Qt::LeftButton) {
-        event->ignore();
         return;
     }
 
     mPressed = true;
-    event->accept();
 }
 
 void BubbleContainerWidget::mouseMoveEvent(
     QGraphicsSceneMouseEvent *event)
 {
-    if (!(event->buttons() & Qt::LeftButton)) {
-        event->ignore();
-        return;
-    }
-
     if ( !rect().contains(event->pos()) && mPressed ) {
         ungrabMouse();
         mPressed = false;
@@ -77,15 +73,11 @@
 void BubbleContainerWidget::mouseReleaseEvent(
     QGraphicsSceneMouseEvent *event)
 {
-    if (event->button() != Qt::LeftButton) {
-        event->ignore();
-        return;
-    }
+    Q_UNUSED(event)    
 
     if (mPressed) {
         emit clicked();
         mPressed = false;
-        event->accept();
     }
 }
 
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.h	Tue Jul 06 14:15:47 2010 +0300
@@ -33,7 +33,7 @@
 signals:
     void clicked();
 
-private:
+protected:
     void createPrimitives();
     void updatePrimitives();
 
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleeffecthandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleeffecthandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -18,10 +18,10 @@
 #include <QtCore>
 #include "bubbleeffecthandler.h"
 
-const char *BUBBLE_MUTED_APPEAR_FXML = ":/bubble_muted_appear.fxml";
-const char *BUBBLE_MUTED_DISAPPEAR_FXML = ":/bubble_muted_disappear.fxml";
-const char *BUBBLE_APPEAR_EVENT = "appear";
-const char *BUBBLE_DISAPPEAR_EVENT = "disappear";
+const QLatin1String BUBBLE_MUTED_APPEAR_FXML(":/bubble_muted_appear.fxml");
+const QLatin1String BUBBLE_MUTED_DISAPPEAR_FXML(":/bubble_muted_disappear.fxml");
+const QLatin1String BUBBLE_APPEAR_EVENT("appear");
+const QLatin1String BUBBLE_DISAPPEAR_EVENT("disappear");
 
 
 BubbleEffectHandler::BubbleEffectHandler(QObject* parent)
@@ -88,6 +88,12 @@
     }
 }
 
+void BubbleEffectHandler::cancelAllEffects(QGraphicsItem* item)
+{
+    Q_ASSERT(item);
+    HbEffect::cancel(item);
+}
+
 void BubbleEffectHandler::handleEffectFinished(
     const HbEffect::EffectStatus &status)
 {
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleeffecthandler.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleeffecthandler.h	Tue Jul 06 14:15:47 2010 +0300
@@ -42,6 +42,7 @@
     void removeEffect(QGraphicsItem* item, BubbleEffect effect);
 
     void startEffect(BubbleEffect effect);
+    void cancelAllEffects(QGraphicsItem* item);
 
 protected slots:
     void handleEffectFinished(const HbEffect::EffectStatus &status);
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -23,8 +23,6 @@
 #include <hbfontspec.h>
 #include <hbdeviceprofile.h>
 #include <hbstyleloader.h>
-#include <hbiconanimationmanager.h>
-#include <hbiconanimator.h>
 
 #include "bubbleheadingwidget.h"
 #include "bubblemanager2.h"
@@ -32,13 +30,15 @@
 #include "bubbleheader.h"
 
 BubbleHeadingWidget::BubbleHeadingWidget(QGraphicsItem* item)
-    : HbWidget(item), mStatusIcon(0), mNumberTypeIcon(0),
-      mCipheringIcon(0), mText1(0), mText2(0), mText3(0)
+    : HbWidget(item), mIndicator1(0), mIndicator2(0),
+      mText1(0), mText2(0), mText3(0)
 {
     createPrimitives();
 
-    HbStyleLoader::registerFilePath(":/bubbleheadingwidget.css");
-    HbStyleLoader::registerFilePath(":/bubbleheadingwidget.widgetml");
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleheadingwidget.css"));
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleheadingwidget.widgetml"));
 
     // font is update in code, because cli position is changing
     mCliFont = new HbFontSpec(HbFontSpec::Primary);
@@ -47,9 +47,6 @@
     HbDeviceProfile profile;
     mCliFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
     mTextFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
-
-    HbIconAnimationManager *mgr = HbIconAnimationManager::global();
-    mgr->addDefinitionFile(":/bubble_icon_anim.axml");
 }
 
 BubbleHeadingWidget::~BubbleHeadingWidget()
@@ -64,10 +61,8 @@
     mText1->setText(QString());
     mText2->setText(QString());
     mText3->setText(QString());
-    mStatusIcon->hide();
-    mStatusIcon->animator().stopAnimation();
-    mNumberTypeIcon->hide();
-    mCipheringIcon->hide();
+    mIndicator1->hide();
+    mIndicator2->hide();
 }
 
 void BubbleHeadingWidget::readBubbleHeader(const BubbleHeader& header)
@@ -79,36 +74,28 @@
 void BubbleHeadingWidget::createPrimitives()
 {
     mText1 = new HbTextItem(this);
-    style()->setItemName( mText1, "text_line_1" );
+    style()->setItemName( mText1, QLatin1String("text_line_1"));
 
     mText2 = new HbTextItem(this);
-    style()->setItemName( mText2, "text_line_2" );
+    style()->setItemName( mText2, QLatin1String("text_line_2"));
 
     mText3 = new HbTextItem(this);
-    style()->setItemName( mText3, "text_line_3" );
-
-    //mStatusIcon = new BubbleAnimIconItem(BUBBLE_ICON_ANIM_INTERVAL, this);
-    mStatusIcon = new HbIconItem(this);
-    style()->setItemName( mStatusIcon, "status_icon" );
+    style()->setItemName( mText3, QLatin1String("text_line_3"));
 
-    mNumberTypeIcon = new HbIconItem(this);
-    style()->setItemName( mNumberTypeIcon, "number_type_icon" );
+    mIndicator1 = new HbIconItem(this);
+    style()->setItemName( mIndicator1, QLatin1String("indicator_icon_1"));
 
-    mCipheringIcon = new HbIconItem(this);
-    style()->setItemName( mCipheringIcon, "ciphering_icon" );
+    mIndicator2 = new HbIconItem(this);
+    style()->setItemName( mIndicator2, QLatin1String("indicator_icon_2"));
 }
 
 void BubbleHeadingWidget::updatePrimitives()
 {
     if (mHeader!=0) {
-        BubbleUtils::setCallStatusIcon(
-            mHeader->callState(), mHeader->callFlags(), *mStatusIcon);
-
-        BubbleUtils::setNumberTypeIcon(
-            mHeader->callState(), mHeader->callFlags(), *mNumberTypeIcon);
-
-        BubbleUtils::setCipheringIcon(
-            mHeader->callState(), mHeader->callFlags(), *mCipheringIcon);
+        BubbleUtils::setIndicators(mHeader->callState(),
+                                   mHeader->callFlags(),
+                                   *mIndicator1,
+                                   *mIndicator2);
 
         // update text lines
         int cliLine = 0;
@@ -143,26 +130,36 @@
     repolish();
 }
 
-void BubbleHeadingWidget::polishEvent()
+void BubbleHeadingWidget::polish(HbStyleParameters &params)
 {
+    QString layout;
+
     if (lines == 3) {
-        setLayout("three_lines");
+        layout = QLatin1String("three_lines");
         mText1->setVisible(true);
         mText2->setVisible(true);
         mText3->setVisible(true);
     } else if (lines == 2) {
-        setLayout("two_lines");
+        layout = QLatin1String("two_lines");
         mText1->setVisible(true);
         mText2->setVisible(true);
         mText3->setVisible(false);
     } else if (lines == 1) {
-        setLayout("one_line");
+        layout = QLatin1String("one_line");
         mText1->setVisible(true);
         mText2->setVisible(true);
         mText3->setVisible(false);
     }
 
-    HbWidget::polishEvent();
+    if (mIndicator2->isVisible()) {
+        layout.append(QLatin1String("_2"));
+    } else if (mIndicator1->isVisible()) {
+        layout.append(QLatin1String("_1"));
+    }
+
+    setLayout(layout);
+
+    HbWidget::polish(params);
 }
 
 int BubbleHeadingWidget::lineCount() const
@@ -174,7 +171,7 @@
 {
     lines = count;
     if (isVisible()) {
-        repolish();        
+        repolish();
     }
 }
 
@@ -200,18 +197,3 @@
         }
     }
 }
-
-void BubbleHeadingWidget::changeEvent(QEvent *event)
-{
-    if (event->type() == HbEvent::ThemeChanged) {
-        updatePrimitives();
-    }
-
-    HbWidget::changeEvent(event);
-}
-
-void BubbleHeadingWidget::showEvent(QShowEvent *event)
-{
-    Q_UNUSED(event)
-    mStatusIcon->animator().startAnimation();
-}
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.h	Tue Jul 06 14:15:47 2010 +0300
@@ -50,9 +50,7 @@
     void updatePrimitives();
 
 protected:
-    void polishEvent();
-    void changeEvent(QEvent *event);
-    void showEvent(QShowEvent *event);
+    void polish(HbStyleParameters &params);
 
 private:
     int lines;
@@ -61,10 +59,8 @@
     const BubbleHeader* mHeader;
 
     // primitives
-    //BubbleAnimIconItem* mStatusIcon;
-    HbIconItem* mStatusIcon;
-    HbIconItem* mNumberTypeIcon;
-    HbIconItem* mCipheringIcon;
+    HbIconItem* mIndicator1;
+    HbIconItem* mIndicator2;
     HbTextItem* mText1;
     HbTextItem* mText2;
     HbTextItem* mText3;
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleimagemanager_p.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleimagemanager_p.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -35,6 +35,7 @@
 BubbleImageManagerPrivate::BubbleImageManagerPrivate(
     BubbleImageManager* parent)
     : q_ptr(parent),
+      mThumbnailManager(0),
       mInitialized(false)
 {
 }
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -22,9 +22,12 @@
 #include <hbstyle.h>
 #include <hbiconitem.h>
 #include <hbstyleloader.h>
+#include <hbdeviceprofile.h>
 #include "bubbleimagemanager.h"
 #include "bubbleimagewidget.h"
 
+static const qreal BubbbleImageRounding = 1.5; // units
+
 BubbleImageWidget::BubbleImageWidget(
     BubbleImageManager& imageManager,
     QGraphicsItem* parent)
@@ -33,6 +36,8 @@
       mDefaultAvatar(0),
       mKeepSquareShape(0)
 {
+    setFlag(QGraphicsItem::ItemHasNoContents, false);
+
     // create avatar
     mDefaultAvatar = new HbIconItem(this);
     style()->setItemName( mDefaultAvatar, "default_avatar" );
@@ -42,8 +47,10 @@
     connect(&mImageManager, SIGNAL(pixmapReady(QString)),
             this, SLOT(imageLoaded(QString)));
 
-    HbStyleLoader::registerFilePath(":/bubbleimagewidget.css");
-    HbStyleLoader::registerFilePath(":/bubbleimagewidget.widgetml");
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleimagewidget.css"));
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleimagewidget.widgetml"));
 }
 
 BubbleImageWidget::~BubbleImageWidget()
@@ -60,7 +67,7 @@
         mDefaultAvatar->setIcon(HbIcon());
         mImageManager.loadImage(mImageName);
     } else {
-        mDefaultAvatar->setIconName("qtg_large_avatar");
+        mDefaultAvatar->setIconName(QLatin1String("qtg_large_avatar"));
         mDefaultAvatar->setVisible(true);
     }
 }
@@ -87,6 +94,8 @@
         mImageManager.pixmap(mImageName);
 
     if (pixmap) {
+        painter->save();
+
         // up or downscales images to fill image area
         QSize imageSize(pixmap->size());
         QSize sourceSize(rect().size().toSize());
@@ -99,6 +108,13 @@
         // qDebug() << "imageSize:" << imageSize;
         // qDebug() << "sourceRect:" << sourceRect;
         painter->setRenderHint(QPainter::SmoothPixmapTransform);
+        painter->setRenderHint(QPainter::Antialiasing);
+
+        QPainterPath clip;
+        qreal rounding = BubbbleImageRounding *
+                         HbDeviceProfile::profile(this).unitValue();
+        clip.addRoundedRect(rect(), rounding, rounding);
+        painter->setClipPath(clip);
 
 #ifdef __WINS__
         // sourceRect crashes emulator, RC ou1cimx1#320113
@@ -106,7 +122,7 @@
 #else        
         painter->drawPixmap(rect().toRect(),*pixmap,sourceRect);
 #endif        
-        
+        painter->restore();
     }
 }
 
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -146,7 +146,9 @@
     }
 
     if (!mActiveHeaders.count()) {
+        // all calls ended
         mBubbleImageManager->releasePixmaps();
+        releaseNonCachedViews();
     }
 
     // restore mute state
@@ -550,6 +552,7 @@
         } else if (!muted && mMuted) {
             mEffectHandler->startEffect(BubbleMutedDisappear);
         } else {
+            mEffectHandler->cancelAllEffects(mMutedIcon);
             mMutedIcon->setVisible(muted);
         }
     }
@@ -926,3 +929,26 @@
     }
 }
 
+void BubbleManager::releaseNonCachedViews()
+{
+    static const int viewCount = 3;
+    static const int views[viewCount] = {
+        BubbleWidgetManager::TwoCallsView,
+        BubbleWidgetManager::ThreeCallsView,
+        BubbleWidgetManager::ConferenceView
+    };
+
+    for (int i=0; i < viewCount; i++ ) {
+        BubbleWidgetManager::View viewid =
+            (BubbleWidgetManager::View)views[i];
+
+        if (mWidgetManager->isLoaded(viewid)) {
+            QGraphicsWidget* view = mWidgetManager->view(viewid);
+
+            if (view) {
+                removeFromLayout(view);
+                mWidgetManager->releaseView(viewid);
+            }
+        }
+    }
+}
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -16,10 +16,10 @@
 */
 
 #include <QGraphicsLinearLayout>
-#include <hbiconitem.h>
-#include <hbtextitem.h>
+#include <QTimer>
 #include <hbaction.h>
 #include <hbpushbutton.h>
+#include <hbgroupbox.h>
 #include <hbstyleloader.h>
 #include <hbabstractitemview.h>
 #include <hblistviewitem.h>
@@ -28,19 +28,46 @@
 #include "bubblemanagerif.h"
 #include "bubbleutils.h"
 
+// helper class to wrap buttons for group box
+class BubbleParticipantListButtons : public HbWidget
+{
+    Q_OBJECT
+
+public:
+    BubbleParticipantListButtons(QGraphicsItem *parent = 0);
+    ~BubbleParticipantListButtons();
+
+    HbPushButton* mButton1;
+    HbPushButton* mButton2;
+};
+
+BubbleParticipantListButtons::BubbleParticipantListButtons(
+    QGraphicsItem *parent) : HbWidget(parent)
+{
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleparticipantlistbuttons.css"));
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleparticipantlistbuttons.widgetml"));
+
+    mButton1 = new HbPushButton(this);
+    style()->setItemName( mButton1, QLatin1String("button-1"));
+    mButton2 = new HbPushButton(this);
+    style()->setItemName( mButton2, QLatin1String("button-2"));
+}
+
+BubbleParticipantListButtons::~BubbleParticipantListButtons()
+{
+}
+
 BubbleParticipantListItem::BubbleParticipantListItem(
     QGraphicsItem *parent) :
     HbAbstractViewItem(parent),
-    mText(0),
-    mStatusIcon(0),
-    mCipheringIcon(0),
-    mExpandIcon(0),
-    mButton1(0),
-    mButton2(0),
-    mExpanded(false)
+    mGroupBox(0)
 {
-    HbStyleLoader::registerFilePath(":/bubbleparticipantlistitem.css");
-    HbStyleLoader::registerFilePath(":/bubbleparticipantlistitem.widgetml");
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleparticipantlistitem.css"));
+    HbStyleLoader::registerFilePath(
+        QLatin1String(":/bubbleparticipantlistitem.widgetml"));
 }
 
 BubbleParticipantListItem::~BubbleParticipantListItem()
@@ -56,123 +83,66 @@
 {
     HbAbstractViewItem::updateChildItems();
 
-    setFocusPolicy(Qt::ClickFocus); // to enable expanding
+    // create controls
+    if (!mGroupBox) {
+        mGroupBox = new HbGroupBox(this);
+        style()->setItemName( mGroupBox, QLatin1String("group-box" ));
+
+        // create buttons for actions (same for all items)
+        BubbleParticipantListItem* p =
+                static_cast<BubbleParticipantListItem*>(prototype());
 
-    // create primitives
-    if (!mText) {
-        mText = new HbTextItem(this);
-        style()->setItemName( mText, "text" );
-    }
+        if (p->mActions.count()==2) {
+            BubbleParticipantListButtons* content =
+                    new BubbleParticipantListButtons();
 
-    if (!mCipheringIcon) {
-        mCipheringIcon = new HbIconItem(this);
-        style()->setItemName( mCipheringIcon, "ciphering" );
-    }
+            // button 1
+            HbAction* action1 = p->mActions.at(0);
+            content->mButton1->setIcon(action1->icon());
+            connect(content->mButton1,
+                    SIGNAL(clicked()),
+                    action1,
+                    SLOT(trigger()),
+                    Qt::QueuedConnection);
 
-    if (!mStatusIcon) {
-        mStatusIcon = new HbIconItem(this);
-        style()->setItemName( mStatusIcon, "icon" );
-    }
+            // button 2
+            HbAction* action2 = p->mActions.at(1);
+            content->mButton2->setIcon(action2->icon());
+            connect(content->mButton2,
+                    SIGNAL(clicked()),
+                    action2,
+                    SLOT(trigger()),
+                    Qt::QueuedConnection);
+
+            mGroupBox->setHeading(QLatin1String(" "));
+            mGroupBox->setContentWidget(content);
+            mGroupBox->setCollapsed(true);
 
-    if (!mExpandIcon) {
-        mExpandIcon = new HbIconItem(this);
-        style()->setItemName( mExpandIcon, "expand-indi" );
+            // for scrolling to selected item
+            connect(mGroupBox,SIGNAL(toggled(bool)),
+                    this,SLOT(handleItemStateChange(bool)));
 
-        // for expand/collapse controls
-        if (itemView()) {
-            connect( itemView()->selectionModel(),
-                     SIGNAL(currentChanged(QModelIndex,QModelIndex)),
-                     this,
-                     SLOT(currentIndexChanged(QModelIndex,QModelIndex)) );
+            // for expand/collapse controls
+            if (itemView()) {
+                connect( itemView()->selectionModel(),
+                         SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+                         this,
+                         SLOT(currentIndexChanged(QModelIndex,QModelIndex)) );
+            }
+        } else {
+            mGroupBox->setCollapsable(false);
         }
     }
 
-    BubbleParticipantListItem* p =
-            static_cast<BubbleParticipantListItem*>(prototype());
-
-    if (mExpanded && !mButton1) {
-        Q_ASSERT(p->mActions.count()==2);
-        HbAction* action = p->mActions.at(0);
-        mButton1 = new HbPushButton(this);
-        mButton1->setIcon(action->icon());
-        style()->setItemName( mButton1, "button-1" );
-
-        // connect first action
-        connect(mButton1,
-                SIGNAL(clicked()),
-                action,
-                SLOT(trigger()),
-                Qt::QueuedConnection);
-    } else {
-        delete mButton1;
-        mButton1 = 0;
-    }
-
-    if (mExpanded && !mButton2) {
-        Q_ASSERT(p->mActions.count()==2);
-        HbAction* action = p->mActions.at(1);
-        mButton2 = new HbPushButton(this);
-        mButton2->setIcon(action->icon());
-        style()->setItemName( mButton2, "button-2" );
-
-        // connect second action
-        connect(mButton2,
-                SIGNAL(clicked()),
-                action,
-                SLOT(trigger()),
-                Qt::QueuedConnection );
-
-    } else {
-        delete mButton2;
-        mButton2 = 0;
-    }
-
-    if (mText) {
-        mText->setText(modelIndex().data(Qt::DisplayRole).toString());
-    }
-
-    int state = (BubbleManagerIF::PhoneCallState)
-        modelIndex().data(Qt::DecorationRole).toInt();
-
-    if (mStatusIcon) {
-        BubbleUtils::setCallStatusIcon(state,0,*mStatusIcon);
-    }
-
-    if (mCipheringIcon) {
-        int flags = !modelIndex().data(Qt::StatusTipRole).toBool() ?
-                    BubbleManagerIF::NoCiphering : 0;
-
-        BubbleUtils::setCipheringIcon(state,flags,*mCipheringIcon);
-    }
-
-    if (mExpandIcon) {
-        if (mExpanded) {
-            mExpandIcon->setIcon(HbIcon("qtg_small_collapse"));
-        } else {
-            mExpandIcon->setIcon(HbIcon("qtg_small_expand"));
-        }
-    }
-
-    repolish();
+    // update group box title (CLI name)
+    mGroupBox->setHeading(modelIndex().data(Qt::DisplayRole).toString());
 }
 
 void BubbleParticipantListItem::polish(HbStyleParameters& params)
 {
-    if (mExpanded) {
-        setProperty("layoutOption","expanded");
-    } else {
-        setProperty("layoutOption","collapsed");
-    }
-
     HbAbstractViewItem::polish(params);
 }
 
-void BubbleParticipantListItem::setExpanded(bool expanded)
-{
-    mExpanded = expanded;
-    updateChildItems();
-}
-
 void BubbleParticipantListItem::addAction(HbAction* action)
 {
     mActions.append(action);
@@ -181,7 +151,6 @@
 void BubbleParticipantListItem::clearActions()
 {
     mActions.clear();
-    mExpanded = false;
 }
 
 void BubbleParticipantListItem::currentIndexChanged(
@@ -190,17 +159,25 @@
 {
     Q_UNUSED(previous);
 
-    if (modelIndex() == current) {
-        if ( !mExpanded ) {
-            setExpanded(true);
-        }
-    } else if (mExpanded) {
-        setExpanded(false);
+    if ((modelIndex()!=current) && !mGroupBox->isCollapsed()) {
+        // change state asynchronously
+        QTimer::singleShot(100,this,SLOT(setCollapsed()));
     }
 }
 
-int BubbleParticipantListItem::type() const
+void BubbleParticipantListItem::setCollapsed()
 {
-    return HbListViewItem::Type;
+    mGroupBox->setCollapsed(true);
 }
 
+void BubbleParticipantListItem::handleItemStateChange(bool collapsed)
+{
+    if (!collapsed) {
+        itemView()->scrollTo(
+            modelIndex(),
+            HbAbstractItemView::EnsureVisible);
+    }
+}
+
+#include "bubbleparticipantlistitem.moc"
+
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.h	Tue Jul 06 14:15:47 2010 +0300
@@ -21,11 +21,8 @@
 #include <hbabstractviewitem.h>
 
 class QGraphicsItem;
-class HbPushButton;
+class HbGroupBox;
 class HbAction;
-class HbIconItem;
-class HbFrameItem;
-class HbTextItem;
 
 class BubbleParticipantListItem : public HbAbstractViewItem
 {
@@ -39,29 +36,23 @@
     HbAbstractViewItem* createItem();
 
     void updateChildItems();
-    void setExpanded(bool expanded);
     void addAction(HbAction* action);
     void clearActions();
 
 private:
     void polish(HbStyleParameters& params);
 
-    int type() const;
-
 private slots:
     void currentIndexChanged(const QModelIndex &current,
                              const QModelIndex &previous);
 
+    void setCollapsed();
+
+    void handleItemStateChange(bool collapsed);
+
 private:
-    HbTextItem* mText;
-    HbIconItem* mStatusIcon;
-    HbIconItem* mCipheringIcon;
-    HbIconItem* mExpandIcon;
-    HbPushButton* mButton1;
-    HbPushButton* mButton2;
+    HbGroupBox*      mGroupBox;
     QList<HbAction*> mActions;
-
-    bool mExpanded;
 };
 
 #endif // BUBBLEPARTICIPANTLISTITEM_H
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -90,7 +90,6 @@
     }
 
     case BubbleManager::OnHold:
-    case BubbleManager::Disconnected:
     {
         if ( header.secondaryCli().length() ) {
             setText(textLine1, header.cli(), header.cliClipDirection());
@@ -106,6 +105,31 @@
         break;
     }
 
+    case BubbleManager::Disconnected:
+    {
+        if ( header.timerCost().length() ) {
+            setText(textLine1, header.cli(), header.cliClipDirection());
+            setText(textLine2, header.text(), header.textClipDirection());
+            setText(textLine3, header.timerCost(), Qt::ElideRight);
+            cliLineNumber = 1;
+            timerLineNumber = 3;
+        } else {
+            if ( header.secondaryCli().length() ) {
+                setText(textLine1, header.cli(), header.cliClipDirection());
+                setText(textLine2, header.secondaryCli(),
+                        header.secondaryCliClipDirection());
+                setText(textLine3, header.text(), header.textClipDirection());
+                cliLineNumber = 1;
+            } else {
+                setText(textLine1, header.cli(), header.cliClipDirection());
+                setText(textLine2, header.text(), header.textClipDirection());
+                cliLineNumber = 1;
+            }
+        }
+        break;
+    }
+
+
     default:
         // do nothing
         break;
@@ -198,95 +222,37 @@
     button.updatePrimitives();
 }
 
-void BubbleUtils::setCallStatusIcon(
+void BubbleUtils::setIndicators(
     int callState,
     int callFlags,
-    HbIconItem& icon)
+    HbIconItem& indicator1,
+    HbIconItem& indicator2 )
 {
-    bool showIcon = true;
+    bool divertIndicator = (( callState == BubbleManagerIF::Incoming ) ||
+                            ( callState == BubbleManagerIF::Waiting )) &&
+                           (callFlags & BubbleManagerIF::Diverted);
+
+    bool cipheringIndicator = (callFlags & BubbleManagerIF::NoCiphering);
 
-    switch(callState) {
-    case BubbleManagerIF::Incoming:
-    case BubbleManagerIF::Alerting:
-    case BubbleManagerIF::Waiting:
-        // from bubble_icon_anim.axml
-        if ( callFlags & BubbleManagerIF::VoIPCall ) {
-            icon.setIconName("voip_call_waiting_anim");
-        } else if ( callFlags & BubbleManagerIF::Video ) {
-            icon.setIconName("video_call_waiting_anim");
-        } else {
-            icon.setIconName("voice_call_waiting_anim");
-        }
-        break;
-    case BubbleManagerIF::Outgoing:
-    case BubbleManagerIF::Active:
-        if ( callFlags & BubbleManagerIF::VoIPCall ) {
-            icon.setIconName("qtg_large_voip_call_active");
-        } else if ( callFlags & BubbleManagerIF::Video ) {
-            icon.setIconName("qtg_large_video_call_active");
-        } else {
-            icon.setIconName("qtg_large_active_call");
-        }
-        break;
-    case BubbleManagerIF::OnHold:
-        if ( callFlags & BubbleManagerIF::VoIPCall ) {
-            icon.setIconName("qtg_large_voip_call_waiting");
-        } else if ( callFlags & BubbleManagerIF::Video ) {
-            icon.setIconName("qtg_large_video_call_waiting");
-        } else {
-            icon.setIconName("qtg_large_waiting_call");
-        }
-        break;
-    case BubbleManagerIF::Disconnected:
-    case BubbleManagerIF::AlertToDisconnected:
-        if ( callFlags & BubbleManagerIF::VoIPCall ) {
-            icon.setIconName("qtg_large_end_call");
-        } else if ( callFlags & BubbleManagerIF::Video ) {
-            icon.setIconName("qtg_large_end_call");
-        } else {
-            icon.setIconName("qtg_large_end_call");
-        }
-        break;
-    default:
-        icon.setIcon(HbIcon());
-        showIcon = false;
-        break;
-    }
-
-    if (showIcon) {
-        icon.show();
+    if (divertIndicator && cipheringIndicator) {
+        indicator1.setIcon(HbIcon(QLatin1String("qtg_mono_ciphering_off")));
+        indicator1.show();
+        indicator2.setIcon(HbIcon(QLatin1String("qtg_mono_call_diverted")));
+        indicator2.show();
+    } else if (cipheringIndicator) {
+        indicator1.setIcon(HbIcon(QLatin1String("qtg_mono_ciphering_off")));
+        indicator1.show();
+        indicator2.setIcon(HbIcon());
+        indicator2.hide();
+    } else if (divertIndicator) {
+        indicator1.setIcon(HbIcon(QLatin1String("qtg_mono_call_diverted")));
+        indicator1.show();
+        indicator2.setIcon(HbIcon());
+        indicator2.hide();
+    } else {
+        indicator1.setIcon(HbIcon());
+        indicator1.hide();
+        indicator2.setIcon(HbIcon());
+        indicator2.hide();
     }
 }
-
-void BubbleUtils::setNumberTypeIcon(
-    int callState,
-    int callFlags,
-    HbIconItem& icon)
-{
-    if ( (( callState == BubbleManagerIF::Incoming ) ||
-          ( callState == BubbleManagerIF::Waiting )) &&
-         (callFlags & BubbleManagerIF::Diverted) ) {
-        icon.setIcon( HbIcon("qtg_mono_call_diverted") );
-        icon.show();
-    } else {
-        icon.setIcon( HbIcon() );
-        icon.hide();
-    }
-}
-
-void BubbleUtils::setCipheringIcon(
-    int callState,
-    int callFlags,
-    HbIconItem& icon)
-{
-    Q_UNUSED(callState)
-
-    if (callFlags & BubbleManagerIF::NoCiphering) {
-        icon.setIcon( HbIcon("qtg_mono_ciphering_off") );
-        icon.show();
-    } else {
-        icon.setIcon( HbIcon() );
-        icon.hide();
-    }
-}
-
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.h	Tue Jul 06 14:15:47 2010 +0300
@@ -53,20 +53,11 @@
         BubbleButton& button,
         const HbAction& action);
 
-    static void setCallStatusIcon(
+    static void setIndicators(
         int callState,
         int callFlags,
-        HbIconItem& icon);
-
-    static void setNumberTypeIcon(
-        int callState,
-        int callFlags,
-        HbIconItem& icon);
-
-    static void setCipheringIcon(
-        int callState,
-        int callFlags,
-        HbIconItem& icon);
+        HbIconItem& indicator1,
+        HbIconItem& indicator2);
 
 private:
     static void setText(
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -50,29 +50,33 @@
       mOrientation(Qt::Vertical)
 {
     // .docml mappings
-    mFileNames.insert(SingleCallView,":/xml/bubble_layout_1.docml");
-    mFileNames.insert(TwoCallsView,  ":/xml/bubble_layout_2.docml");
-    mFileNames.insert(ThreeCallsView,":/xml/bubble_layout_3.docml");
-    mFileNames.insert(ConferenceView,":/xml/bubble_layout_4.docml");
-    mFileNames.insert(MutedOverlay,  ":/xml/bubble_layout_5.docml");
+    mFileNames.insert(SingleCallView,
+                      QLatin1String(":/xml/bubble_layout_1.docml"));
+    mFileNames.insert(TwoCallsView,
+                      QLatin1String(":/xml/bubble_layout_2.docml"));
+    mFileNames.insert(ThreeCallsView,
+                      QLatin1String(":/xml/bubble_layout_3.docml"));
+    mFileNames.insert(ConferenceView,
+                      QLatin1String(":/xml/bubble_layout_4.docml"));
+    mFileNames.insert(MutedOverlay,
+                      QLatin1String(":/xml/bubble_layout_5.docml"));
 
-    mOrientationName.insert(Qt::Vertical,   "portrait");
-    mOrientationName.insert(Qt::Horizontal, "landscape");
+    mOrientationName.insert(Qt::Vertical, QLatin1String("portrait"));
+    mOrientationName.insert(Qt::Horizontal, QLatin1String("landscape"));
 
-    mWidgetPrefix.insert(ExpandedBubble, "eb:");
-    mWidgetPrefix.insert(CollapsedBubble,    "cb:");
-    mWidgetPrefix.insert(CollapsedBubble2,    "cb2:");
-    mContainerName.insert(ExpandedBubble, "expandedBubble");
-    mContainerName.insert(CollapsedBubble,   "collapsedBubble");
-    mContainerName.insert(CollapsedBubble2,   "collapsedBubble2");
-    mWidgetName.insert(Heading,        "bubbleHeading");
-    mWidgetName.insert(Image,          "callImage");
-    mWidgetName.insert(LeftButton,     "leftButton");
-    mWidgetName.insert(CenterButton,   "centerButton");
-    mWidgetName.insert(RightButton,    "rightButton");
-    mWidgetName.insert(ConferenceTimer,"callTimer");
-    mWidgetName.insert(ParticipantList,"participantList");
-    mWidgetName.insert(MutedIcon,      "mutedIcon");
+    mWidgetPrefix.insert(ExpandedBubble, QLatin1String("eb:"));
+    mWidgetPrefix.insert(CollapsedBubble, QLatin1String("cb:"));
+    mWidgetPrefix.insert(CollapsedBubble2, QLatin1String("cb2:"));
+    mContainerName.insert(ExpandedBubble, QLatin1String("expandedBubble"));
+    mContainerName.insert(CollapsedBubble, QLatin1String("collapsedBubble"));
+    mContainerName.insert(CollapsedBubble2, QLatin1String("collapsedBubble2"));
+    mWidgetName.insert(Heading, QLatin1String("bubbleHeading"));
+    mWidgetName.insert(Image, QLatin1String("callImage"));
+    mWidgetName.insert(LeftButton, QLatin1String("leftButton"));
+    mWidgetName.insert(CenterButton, QLatin1String("centerButton"));
+    mWidgetName.insert(RightButton, QLatin1String("rightButton"));
+    mWidgetName.insert(ParticipantList, QLatin1String("participantList"));
+    mWidgetName.insert(MutedIcon, QLatin1String("mutedIcon"));
 }
 
 BubbleWidgetManager::~BubbleWidgetManager()
@@ -99,9 +103,39 @@
     }
 }
 
+bool BubbleWidgetManager::isLoaded(View view)
+{
+    if (mDocumentContent.contains(view)) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
 void BubbleWidgetManager::releaseView(View view)
 {
     Q_UNUSED(view)
+
+    // release loaders
+    BubbleDocumentLoader* loader = mDocumentLoaders.value(view,0);
+    delete loader;
+    mDocumentLoaders.remove(view);
+
+    // release handler
+    QList<BubbleHandler*>* handlers = mDocumentHandlers.value(view,0);
+    if (handlers) {
+        qDeleteAll(*handlers);
+        delete handlers;
+        mDocumentHandlers.remove(view);
+    }
+
+    // release document objects
+    QObjectList objectList = mDocumentObjects.value(view);
+    foreach(QObject* object, objectList) {
+        QMetaObject::invokeMethod(object, "deleteLater", Qt::QueuedConnection);
+    }
+    mDocumentObjects.remove(view);
+    mDocumentContent.remove(view);
 }
 
 QGraphicsWidget* BubbleWidgetManager::loadDocument(
@@ -112,12 +146,13 @@
         new BubbleDocumentLoader(mImageManager);
     bool ok;
 
-    loader->load(mFileNames[view],&ok);
+    QObjectList objectList = loader->load(mFileNames[view],&ok);
     Q_ASSERT(ok);
     loader->load(mFileNames[view],mOrientationName[orientation],&ok);
     Q_ASSERT(ok);
 
     mDocumentLoaders.insert(view,loader);
+    mDocumentObjects.insert(view,objectList);
 
     QGraphicsWidget* widget =
         mDocumentLoaders[view]->findWidget(BUBBLE_DOCUMENT_CONTENT);
@@ -146,7 +181,8 @@
     w = qobject_cast<HbWidget*>(widget);
     if (w) {
         HbFrameItem* item =
-            new HbFrameItem("qtg_fr_popup_trans",HbFrameDrawer::NinePieces);
+            new HbFrameItem(QLatin1String("qtg_fr_popup_trans"),
+                            HbFrameDrawer::NinePieces);
         w->setBackgroundItem(item); // takes ownership
     }
 }
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.h	Tue Jul 06 14:15:47 2010 +0300
@@ -55,7 +55,6 @@
         LeftButton,
         CenterButton,
         RightButton,
-        ConferenceTimer,
         ParticipantList,
         ParticipantListItem,
         ParticipantListButton,
@@ -70,6 +69,8 @@
 
     QGraphicsWidget* view(View view);
 
+    bool isLoaded(View view);
+
     void releaseView(View view);
 
     QGraphicsWidget* container(View view,
@@ -97,6 +98,7 @@
     BubbleImageManager& mImageManager;
     Qt::Orientation mOrientation;
     QMap<int,BubbleDocumentLoader*>  mDocumentLoaders;
+    QMap<int,QObjectList>            mDocumentObjects;
     QMap<int,QList<BubbleHandler*>*> mDocumentHandlers;
     QMap<int,QGraphicsWidget*>       mDocumentContent;
 
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_1.docml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_1.docml	Tue Jul 06 14:15:47 2010 +0300
@@ -3,31 +3,27 @@
     <widget name="content" type="HbWidget">
         <widget name="expandedBubble" type="BubbleContainerWidget">
             <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
-                <sizehint height="13.0un" type="PREFERRED"/>
                 <integer name="lines" value="3"/>
             </widget>
             <widget name="eb:callImage" type="BubbleImageWidget">
+                <bool name="keepSquareShape" value="TRUE"/>
             </widget>
             <widget name="eb:centerButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="28.0un" type="PREFERRED"/>
+                <sizehint width="24.5un" type="PREFERRED"/>
             </widget>
             <widget name="eb:leftButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="28.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
             <widget name="eb:rightButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="28.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
         </widget>
     </widget>
 
 <section name="portrait">
-    <widget name="eb:callImage" type="BubbleImageWidget">
-         <bool name="keepSquareShape" value="FALSE"/>
-    </widget>
-
     <layout type="anchor" widget="content">
         <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
         <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
@@ -36,33 +32,29 @@
     </layout>
 
     <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="3.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="1.5un"/>
+        
+        <anchoritem src="eb:callImage" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="1.5un"/>
+        
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        
         <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
     </layout>
 </section>
 
 <section name="landscape">
 
-    <widget name="eb:callImage" type="BubbleImageWidget">
-        <bool name="keepSquareShape" value="TRUE"/>
-    </widget>
-
     <layout type="anchor" widget="content">
         <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
         <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
@@ -71,23 +63,23 @@
     </layout>
 
     <layout type="anchor" widget="expandedBubble">                        
-        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-var(hb-param-margin-gene-top)"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
-        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-var(hb-param-margin-gene-top)"/>
         
         <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="eb:bubbleHeading" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
         <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="eb:bubbleHeading" dstEdge="LEFT"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
-        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:leftButton" dstEdge="RIGHT" spacing="-2.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:leftButton" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-middle-horizontal)"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>        
     </layout>
 </section>
 
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_2.docml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_2.docml	Tue Jul 06 14:15:47 2010 +0300
@@ -7,22 +7,22 @@
         </widget>        
         <widget name="expandedBubble" type="BubbleContainerWidget">
             <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
-                <sizehint height="14.0un" type="PREFERRED"/>
                 <integer name="lines" value="3"/>
             </widget>
             <widget name="eb:callImage" type="BubbleImageWidget">
+                <bool name="keepSquareShape" value="TRUE"/>
             </widget>
             <widget name="eb:centerButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="28.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
             <widget name="eb:leftButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="28.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
             <widget name="eb:rightButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="28.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
         </widget>
         
@@ -30,12 +30,8 @@
 
 <section name="portrait">
 
-    <widget name="eb:callImage" type="BubbleImageWidget">
-        <bool name="keepSquareShape" value="FALSE"/>
-    </widget>
-		
     <widget name="collapsedBubble" type="BubbleContainerWidget">
-        <sizehint height="11.0un" type="FIXED"/>
+        <sizehint height="11.5un" type="FIXED"/>
     </widget>		
     
     <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
@@ -53,42 +49,34 @@
     </layout>
 
     <layout type="anchor" widget="collapsedBubble">
-        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>        
-        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>
 
     <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-10.75un"/>
-        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="10.75un"/>
-        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="3.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="1.5un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="1.5un"/>
+        <anchoritem src="eb:callImage" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
         <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
     </layout>
 </section>
 
 <section name="landscape">
 		
-    <widget name="eb:callImage" type="BubbleImageWidget">
-        <bool name="keepSquareShape" value="TRUE"/>
-     </widget>
-		
     <widget name="collapsedBubble" type="BubbleContainerWidget">
-        <sizehint height="9.0un" type="FIXED"/>
-        <real name="z" value="-1.0"/>
+        <sizehint height="8.5un" type="FIXED"/>
     </widget>		
         
     <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
@@ -106,30 +94,30 @@
     </layout>
 
     <layout type="anchor" widget="collapsedBubble">
-        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
-        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>
     
-    <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    <layout type="anchor" widget="expandedBubble">        
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
         
-        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>        
         
         <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="eb:bubbleHeading" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
-        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="eb:bubbleHeading" dstEdge="LEFT" spacing="-8.5un"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="eb:bubbleHeading" dstEdge="LEFT"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
-        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:leftButton" dstEdge="RIGHT" spacing="-2.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:leftButton" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-middle-horizontal)"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
     </layout>    
     
 </section>
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_3.docml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_3.docml	Tue Jul 06 14:15:47 2010 +0300
@@ -15,30 +15,27 @@
             <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
             </widget>
             <widget name="eb:callImage" type="BubbleImageWidget">
+                <bool name="keepSquareShape" value="TRUE"/>
             </widget>
             <widget name="eb:centerButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="20.0un" type="PREFERRED"/>
+                <sizehint width="24.5un" type="PREFERRED"/>
             </widget>
             <widget name="eb:leftButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="20.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
             <widget name="eb:rightButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
-                <sizehint width="20.0un" type="PREFERRED"/>                
+                <sizehint width="24.5un" type="PREFERRED"/>                
             </widget>
         </widget>
     </widget>
 
 <section name="portrait">
 
-    <widget name="eb:callImage" type="BubbleImageWidget">
-        <bool name="keepSquareShape" value="FALSE"/>
-    </widget>
-
     <widget name="collapsedBubble2" type="BubbleContainerWidget">
-        <sizehint height="11.0un" type="FIXED"/>
+        <sizehint height="11.5un" type="FIXED"/>
     </widget>
     
     <widget name="cb2:bubbleHeading" type="BubbleHeadingWidget">
@@ -46,7 +43,7 @@
     </widget>
     
     <widget name="collapsedBubble" type="BubbleContainerWidget">
-        <sizehint height="11.0un" type="FIXED"/>
+        <sizehint height="11.5un" type="FIXED"/>
     </widget>
     
     <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
@@ -54,15 +51,13 @@
     </widget>    
 
     <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
-        <sizehint height="13.0un" type="PREFERRED"/>
         <integer name="lines" value="3"/>
     </widget>
     
     <widget name="eb:centerButton" type="BubbleButton">
-        <sizehint height="9.0un" type="FIXED"/>
-        <sizehint width="20.0un" type="PREFERRED"/>
+        <sizehint width="24.5un" type="PREFERRED"/>
     </widget>    
-
+    
     <layout type="anchor" widget="content">
         <anchoritem src="collapsedBubble2" srcEdge="TOP" dst="" dstEdge="TOP"/>        
         <anchoritem src="collapsedBubble2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
@@ -77,48 +72,41 @@
     </layout>
 
     <layout type="anchor" widget="collapsedBubble2">
-        <anchoritem src="cb2:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>        
-        <anchoritem src="cb2:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="cb2:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="cb2:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
+        <anchoritem src="cb2:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>
 
     <layout type="anchor" widget="collapsedBubble">
-        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>        
-        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>
 
     <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-14.75un"/>
-        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="14.75un"/>
-        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="3.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="1.5un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="1.5un"/>
+        <anchoritem src="eb:callImage" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
         <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
     </layout>
 </section>
 
 <section name="landscape">
 
-    <widget name="eb:callImage" type="BubbleImageWidget">
-        <bool name="keepSquareShape" value="TRUE"/>
-     </widget>
-        
     <widget name="collapsedBubble2" type="BubbleContainerWidget">
-        <sizehint height="9.0un" type="FIXED"/>
+        <sizehint height="8.5un" type="FIXED"/>
     </widget>
     
     <widget name="cb2:bubbleHeading" type="BubbleHeadingWidget">
@@ -127,7 +115,7 @@
     
 
     <widget name="collapsedBubble" type="BubbleContainerWidget">
-        <sizehint height="9.0un" type="FIXED"/>
+        <sizehint height="8.5un" type="FIXED"/>
     </widget>
     
     <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
@@ -135,15 +123,13 @@
     </widget>        
 
     <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
-        <sizehint height="13.0un" type="PREFERRED"/>
         <integer name="lines" value="3"/>
     </widget>
-
+    
     <widget name="eb:centerButton" type="BubbleButton">
-        <sizehint height="9.0un" type="FIXED"/>
-        <sizehint width="20.0un" type="FIXED"/>
+        <sizehint width="22.0un" type="FIXED"/>
     </widget>    
-    
+
     <layout type="anchor" widget="content">
         <anchoritem src="collapsedBubble2" srcEdge="TOP" dst="" dstEdge="TOP"/>        
         <anchoritem src="collapsedBubble2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
@@ -161,35 +147,35 @@
 
     <layout type="anchor" widget="collapsedBubble2">
         <anchoritem src="cb2:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
-        <anchoritem src="cb2:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="cb2:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="cb2:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>
 
     <layout type="anchor" widget="collapsedBubble">
         <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
-        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>    
 
     <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
-    
-        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="eb:centerButton" dstEdge="LEFT" spacing="2.0un"/>
-        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>        
+        
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="eb:centerButton" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-var(hb-param-margin-gene-left)"/>         
         
-        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
-        <anchoritem src="eb:leftButton" srcEdge="CENTERH" dst="eb:centerButton" dstEdge="CENTERH" spacing="2.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="CENTERH" dst="eb:centerButton" dstEdge="CENTERH" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>
         
-        <anchoritem src="eb:rightButton" srcEdge="CENTERH" dst="eb:centerButton" dstEdge="CENTERH" spacing="2.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
+        <anchoritem src="eb:rightButton" srcEdge="CENTERH" dst="eb:centerButton" dstEdge="CENTERH" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="var(hb-param-margin-gene-bottom)"/>        
     </layout>    
     
 </section>
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_4.docml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_4.docml	Tue Jul 06 14:15:47 2010 +0300
@@ -4,18 +4,23 @@
         <widget name="expandedBubble" type="BubbleContainerWidget">
             <widget name="eb:participantList" type="HbListView">
             </widget>
-            <widget name="eb:callTimer" type="HbLabel">
-                <string name="text" value="00:01"/>
-                <sizehint height="4.0un" width="22.0un" type="FIXED"/>
+            <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="2"/>
             </widget>            
+            <widget name="eb:cipheringIcon" type="HbLabel">
+                <sizehint height="var(hb-param-graphic-size-secondary)" width="var(hb-param-graphic-size-secondary)" type="FIXED"/>
+            </widget>                        
             <widget name="eb:centerButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="24.5un" type="PREFERRED"/>
             </widget>
             <widget name="eb:leftButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="24.5un" type="PREFERRED"/>
             </widget>
             <widget name="eb:rightButton" type="BubbleButton">
                 <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="24.5un" type="PREFERRED"/>
             </widget>
         </widget>
     </widget>
@@ -28,24 +33,27 @@
         <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
     </layout>
     
-    <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:participantList" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-        <anchoritem src="eb:participantList" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-        <anchoritem src="eb:participantList" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="eb:participantList" srcEdge="BOTTOM" dst="eb:callTimer" dstEdge="TOP" spacing="2.0un"/>
-        <anchoritem src="eb:callTimer" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
-        <anchoritem src="eb:callTimer" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP" spacing="3.0un"/>        
-        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
-        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
-        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+    <layout type="anchor" widget="expandedBubble">        
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>               
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:participantList" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+        
+        <anchoritem src="eb:participantList" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:participantList" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:participantList" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+        
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-expr(var(hb-param-margin-gene-middle-horizontal)/2)"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        
         <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
-        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
-        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
-    </layout>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+   </layout>
 </section>
 
 <section name="landscape">
@@ -57,8 +65,10 @@
     </layout>
 
     <layout type="anchor" widget="expandedBubble">
-        <anchoritem src="eb:callTimer" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-        <anchoritem src="eb:callTimer" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-var(hb-param-margin-gene-left)"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+        
         <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-13.0un"/>
         <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="13.0un"/>
         <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_5.docml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_5.docml	Tue Jul 06 14:15:47 2010 +0300
@@ -27,8 +27,8 @@
 
 <section name="landscape">
     <layout type="anchor" widget="content">
-        <anchoritem src="mutedIcon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
-        <anchoritem src="mutedIcon" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="21.0un"/>        
+        <anchoritem src="mutedIcon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+        <anchoritem src="mutedIcon" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="20.5un"/>        
     </layout>
 </section>
 
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.css	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.css	Tue Jul 06 14:15:47 2010 +0300
@@ -5,76 +5,111 @@
     layout: three_lines_layout;
 }
 
+BubbleHeadingWidget[layoutOption="three_lines_1"]
+{
+    layout: three_lines_layout_1;
+}
+
+BubbleHeadingWidget[layoutOption="three_lines_2"]
+{
+    layout: three_lines_layout_2;
+}
+
 BubbleHeadingWidget[layoutOption="two_lines"]
 {
     layout: two_lines_layout;
 }
 
+BubbleHeadingWidget[layoutOption="two_lines_1"]
+{
+    layout: two_lines_layout_1;
+}
+
+BubbleHeadingWidget[layoutOption="two_lines_2"]
+{
+    layout: two_lines_layout_2;
+}
+
+
 BubbleHeadingWidget[layoutOption="one_line"]
 {
     layout: one_line_layout;
 }
 
+BubbleHeadingWidget[layoutOption="one_line_1"]
+{
+    layout: one_line_layout_1;
+}
+
+BubbleHeadingWidget[layoutOption="one_line_2"]
+{
+    layout: one_line_layout_2;
+}
+
 BubbleHeadingWidget:text_line_1
 {
     text-height: var(hb-param-text-height-primary);
-    left: -var(hb-param-margin-gene-middle-horizontal);
     color: var(qtc_list_item_title_normal);
     text-line-count-min:1;
     text-line-count-max:1;    
 }
 
-BubbleHeadingWidget:text_line_2[layoutOption!="one_line"]
+BubbleHeadingWidget:text_line_2
 {
     text-height: var(hb-param-text-height-primary);
-    pref-width: -1;
-    left: -var(hb-param-margin-gene-middle-horizontal);
-    top: -var(hb-param-margin-gene-middle-vertical);
     text-align: left;
     color: var(qtc_list_item_title_normal);
     text-line-count-min:1;
     text-line-count-max:1;
-    size-policy-horizontal: expanding;
+    pref-width: -1;
+    top: -var(hb-param-margin-gene-middle-vertical);
+    text-align: left;
+    size-policy-horizontal: expanding;    
 }
 
 BubbleHeadingWidget:text_line_2[layoutOption="one_line"]
 {
-    text-height: var(hb-param-text-height-primary);
     pref-width: 35un; /* not in spec yet, fixed value needed for localisation */
     left: -var(hb-param-margin-gene-middle-horizontal);
     text-align: right;
-    color: var(qtc_list_item_title_normal);
-    text-line-count-min:1;
-    text-line-count-max:1;
+    size-policy-horizontal: fixed;    
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption="one_line_1"]
+{
+    pref-width: 35un;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-align: right;
+    size-policy-horizontal: fixed;    
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption="one_line_2"]
+{
+    pref-width: 35un;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-align: right;
     size-policy-horizontal: fixed;    
 }
 
 BubbleHeadingWidget:text_line_3
 {
     text-height: var(hb-param-text-height-primary);
-    left: -var(hb-param-margin-gene-middle-horizontal);
     top: -var(hb-param-margin-gene-middle-vertical);
     color: var(qtc_list_item_title_normal);
     text-line-count-min:1;
     text-line-count-max:1;
 }
 
-BubbleHeadingWidget:status_icon
-{
-    fixed-width:   var(hb-param-graphic-size-primary-large);
-    fixed-height:  var(hb-param-graphic-size-primary-large);
-}
-
-BubbleHeadingWidget:number_type_icon
+BubbleHeadingWidget:indicator_icon_1
 {
     fixed-height: var(hb-param-graphic-size-secondary);
     fixed-width:  var(hb-param-graphic-size-secondary);
     color: var(qtc_list_item_title_normal);
 }
 
-BubbleHeadingWidget:ciphering_icon
+BubbleHeadingWidget:indicator_icon_2
 {
-    fixed-height: 2.5un;
-    fixed-width:  2.5un;
+    fixed-height: var(hb-param-graphic-size-secondary);
+    fixed-width:  var(hb-param-graphic-size-secondary);
     color: var(qtc_list_item_title_normal);
 }
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.widgetml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.widgetml	Tue Jul 06 14:15:47 2010 +0300
@@ -1,63 +1,136 @@
 <hbwidget version="0.1" type="be">  
   <layout name="three_lines_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-    
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
     
     <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
-    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    
+    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>
+  
+  <layout name="three_lines_layout_1" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    
+    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
+  
+  <layout name="three_lines_layout_2" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="indicator_icon_2" dstEdge="LEFT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="indicator_icon_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_2" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>    
+    
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     
     <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
-    <meshitem src="text_line_3" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-  </layout>
+    <meshitem src="text_line_3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
 
   <layout name="two_lines_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
     
-    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>
+  
+  <layout name="two_lines_layout_1" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
-  </layout>
+    <meshitem src="text_line_2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
+  
+  <layout name="two_lines_layout_2" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="indicator_icon_2" dstEdge="LEFT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="indicator_icon_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_2" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
 
   <layout name="one_line_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-    
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="0.75un"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
     
     <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
     <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
   </layout>
   
+  <layout name="one_line_layout_1" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT"  spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>        
+  </layout>  
+  
+  <layout name="one_line_layout_2" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT"  spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="indicator_icon_2" dstEdge="LEFT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>        
+    
+    <meshitem src="indicator_icon_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_2" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+  </layout>  
+  
 </hbwidget>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistbuttons.css	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,12 @@
+
+BubbleParticipantListButtons{
+    layout:default;
+}
+
+BubbleParticipantListButtons::button-1 {
+    fixed-height: 7.5un;
+}
+
+BubbleParticipantListButtons::button-2 {
+    fixed-height: 7.5un;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistbuttons.widgetml	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,30 @@
+<hbwidget version="0.1" type="bl">
+
+  <layout name="default" type="mesh">
+
+    <meshitem src="button-1" srcEdge="TOP" dst="" dstEdge="TOP"/>    
+    <meshitem src="button-1" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-var(hb-param-margin-gene-left)"/>
+    <meshitem src="button-1" srcEdge="RIGHT" dst="button-2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="button-1" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    
+    <meshitem src="button-2" srcEdge="TOP" dst="" dstEdge="TOP"/>    
+    <meshitem src="button-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="var(hb-param-margin-gene-right)"/>
+    <meshitem src="button-2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>    
+    
+  </layout>
+  
+</hbwidget>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.css	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.css	Tue Jul 06 14:15:47 2010 +0300
@@ -1,44 +1,4 @@
 
-BubbleParticipantListItem[layoutOption="collapsed"] {
-    layout:collapsed;
-}
-
-BubbleParticipantListItem[layoutOption="expanded"] {
-    layout:expanded;
-}
-
-BubbleParticipantListItem::icon {
-    fixed-width: var(hb-param-graphic-size-primary-medium);
-    fixed-height: var(hb-param-graphic-size-primary-medium);
-}
-
-BubbleParticipantListItem::ciphering {
-    fixed-width: 2.0un;
-    fixed-height: 2.0un;
-    left: (hb-param-margin-gene-middle-horizontal);
-    top: (hb-param-margin-gene-middle-vertical);
-    color: var(qtc_list_item_title_normal);   
+BubbleParticipantListItem{
+    layout:default;
 }
-
-BubbleParticipantListItem::expand-indi {
-    fixed-width: var(hb-param-graphic-size-primary-small);
-    fixed-height: var(hb-param-graphic-size-primary-small);
-    right: var(hb-param-margin-gene-middle-horizontal);
-}
-
-BubbleParticipantListItem::text
-{
-    text-height: var(hb-param-text-height-primary);
-	  font-variant: primary;
-	  color: var(qtc_list_item_title_normal);
-	  left: var(hb-param-margin-gene-middle-horizontal);
-	  right: var(hb-param-margin-gene-middle-horizontal);
-}
-
-BubbleParticipantListItem::button-1 {
-    fixed-height: 9.0un;
-}
-
-BubbleParticipantListItem::button-2 {
-    fixed-height: 9.0un;
-}
--- a/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.widgetml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.widgetml	Tue Jul 06 14:15:47 2010 +0300
@@ -1,50 +1,14 @@
 <hbwidget version="0.1" type="bl">
 
-  <layout name="collapsed" type="mesh">
-    
-    <meshitem src="icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    <meshitem src="icon" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="1.0un" spacer="spacer1"/>
-    <meshitem src="icon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="1.0un" spacer="spacer2"/>
+  <layout name="default" type="mesh">
     
-    <meshitem src="ciphering" srcEdge="LEFT" dst="icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering" srcEdge="TOP" dst="icon" dstEdge="TOP"/>
-
-    <meshitem src="text" srcEdge="LEFT" dst="icon" dstEdge="RIGHT"/>
-    <meshitem src="text" srcEdge="RIGHT" dst="expand-indi" dstEdge="LEFT"/>
-    <meshitem src="text" srcEdge="CENTERV" dst="icon" dstEdge="CENTERV"/>
+    <meshitem src="group-box" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="group-box" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="group-box" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    <meshitem src="group-box" srcEdge="TOP" dst="" dstEdge="TOP"/>
     
-    <meshitem src="expand-indi" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="expand-indi" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-
   </layout>
   
-  <layout name="expanded" type="mesh">
-    
-    <meshitem src="icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="icon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
-    <meshitem src="icon" srcEdge="BOTTOM" dst="button-1" dstEdge="TOP" spacing="1.0un"/>
-    
-    <meshitem src="ciphering" srcEdge="LEFT" dst="icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering" srcEdge="TOP" dst="icon" dstEdge="TOP"/>
-
-    <meshitem src="text" srcEdge="LEFT" dst="icon" dstEdge="RIGHT"/>
-    <meshitem src="text" srcEdge="RIGHT" dst="expand-indi" dstEdge="LEFT"/>
-    <meshitem src="text" srcEdge="CENTERV" dst="icon" dstEdge="CENTERV"/>
-    
-    <meshitem src="expand-indi" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="expand-indi" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
-    
-    <meshitem src="button-1" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
-    <meshitem src="button-1" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-    <meshitem src="button-1" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
-    
-    <meshitem src="button-2" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
-    <meshitem src="button-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-    <meshitem src="button-2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
-    
-  </layout>  
-
 </hbwidget>
 
 
--- a/phoneuis/bubblemanager2/inc/bubblemanager2.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/inc/bubblemanager2.h	Tue Jul 06 14:15:47 2010 +0300
@@ -344,6 +344,7 @@
     void findNextDrawableHeader(int& index) const;
     void polishEvent();
     void releaseImageIfNotUsed(const QString& imageFileName);
+    void releaseNonCachedViews();
 
 private slots:
     void showExpanded( int bubbleId );
--- a/phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -317,7 +317,7 @@
             if (mCallTimer->isChecked()) {
                 bubbleManager().setCallTime( mConfBubbleId, "0:00" );
             }
-            bubbleManager().addAction(mConfBubbleId, mHold);
+            bubbleManager().addAction(mConfBubbleId, mMute);
             bubbleManager().addAction(mConfBubbleId, mEndConference);
             bubbleManager().clearParticipantListActions();
             bubbleManager().addParticipantListAction(mPrivate);
@@ -455,10 +455,8 @@
         if ( mContactName->isChecked() ) {
             bubbleManager().setCli(bubble, "Gloria Andersson", Qt::ElideRight);
             bubbleManager().setSecondaryCli( bubble, "+35850123456789" );
-            mPhoneNumber.clear();
         } else {
-            mPhoneNumber.append("+35850123456789");
-            bubbleManager().setCli(bubble, mPhoneNumber, Qt::ElideRight);
+            bubbleManager().setCli(bubble, "+35850123456789", Qt::ElideRight);
         }
 
         setCallObject(bubble, ":resources/contactpic.jpg");
@@ -479,14 +477,13 @@
                 bubbleManager().setCli(bubble, "John Doe", Qt::ElideRight);
                 bubbleManager().setSecondaryCli(bubble, "+35840987654321");
             }
-            mPhoneNumber.clear();
         } else {
             if (callCount()==2) {
-                mPhoneNumber.append("+35850232323232");
+                bubbleManager().setCli(bubble, "+35850232323232", Qt::ElideRight);
             } else {
-                mPhoneNumber.append("+35840987654321");
+                bubbleManager().setCli(bubble, "+35840987654321", Qt::ElideRight);
             }
-            bubbleManager().setCli(bubble, mPhoneNumber, Qt::ElideRight);
+
         }
         setCallObject(bubble, ":resources/contactpic3.png");
         bubbleManager().setNumberType(bubble, BubbleManager::Mobile);
@@ -507,10 +504,8 @@
             if ( mContactName->isChecked() ) {
                 bubbleManager().setCli( bubble, "Bart Simpson", Qt::ElideRight );
                 bubbleManager().setSecondaryCli( bubble, "+35890987654321" );
-                mPhoneNumber.clear();
             } else {
-                mPhoneNumber.append("+35890987654321");
-                bubbleManager().setCli( bubble, mPhoneNumber, Qt::ElideRight );
+                bubbleManager().setCli( bubble, "+35890987654321", Qt::ElideRight );
             }
             setCallObject(bubble, ":resources/contactpic2.jpg");
             bubbleManager().setLabel( bubble, "Calling", Qt::ElideRight );
@@ -520,16 +515,6 @@
 
     case BubbleManager::Alerting:
         {
-        if ( mPhoneNumber.length() ) {
-            QString cli("Call %1");
-            QString index;
-            index.setNum(bubble+1);
-            cli = cli.arg(index);
-            bubbleManager().setCli( bubble, cli, Qt::ElideRight );
-            bubbleManager().setSecondaryCli( bubble, mPhoneNumber );
-            mPhoneNumber.clear();
-        }
-
         if ( mEmergencyCall->isChecked() ) {
             bubbleManager().setCli( bubble, "Emergency call", Qt::ElideRight );
         }
@@ -538,16 +523,6 @@
 
     case BubbleManager::Active:
         {
-        if ( mPhoneNumber.length() && bubble!=mConfBubbleId ) {
-            QString cli("Call %1");
-            QString index;
-            index.setNum(bubble+1);
-            cli = cli.arg(index);
-            bubbleManager().setCli( bubble, cli, Qt::ElideRight );
-            bubbleManager().setSecondaryCli( bubble, mPhoneNumber );
-            mPhoneNumber.clear();
-        }
-
         if ( mCallTimer->isChecked() ) {
             bubbleManager().setCallTime( bubble, "0:00" );
         }
@@ -585,27 +560,8 @@
 void BubbleTestView::setBubbleActions(int bubble, BubbleManagerIF::PhoneCallState state )
 {
     if (bubble==mConfBubbleId) {
-        // check, if all call are in conference
-        bool swapButton = false;
-        QListIterator<TestCall> calls(mCalls);
-        while(calls.hasNext()) {
-            TestCall call = calls.next();
-            if (!call.isConf && !call.isInConf) {
-                swapButton = true;
-            }
-        }
-
         bubbleManager().clearActions(bubble);
-
-        if (swapButton) {
-            bubbleManager().addAction(bubble, mSwap);
-        } else {
-            if (state == BubbleManager::OnHold)
-                bubbleManager().addAction(bubble, mUnhold);
-            else
-                bubbleManager().addAction(bubble, mHold);
-        }
-
+        bubbleManager().addAction(bubble, mMute);
         bubbleManager().addAction(bubble, mEndConference);
         return;
     }
@@ -627,31 +583,27 @@
     case BubbleManager::Outgoing:
     case BubbleManager::Alerting: // flow through
         {
+        bubbleManager().addAction( bubble, mMute );
         bubbleManager().addAction( bubble, mEndCall );
         break;
         }
     case BubbleManager::OnHold:
         {
-        bubbleManager().addAction( bubble, mUnhold );
+        if (mMuted) {
+            bubbleManager().addAction( bubble, mUnmute );
+        } else {
+            bubbleManager().addAction( bubble, mMute );
+        }
         bubbleManager().addAction( bubble, mEndCall );
         }
         break;
     default: // Active call
         {
-        HbAction* action;
-
-        if (!mEmergencyCall->isChecked()) {
-            int i;
-            if ( (mCalls.count()>1 && !callIndexByState(BubbleManagerIF::Waiting,i))
-                  || (mCalls.count()> 1 && mProvideJoin) ) {
-                action = mJoin;
-            } else {
-                action = mHold;
-            }
-
-            bubbleManager().addAction( bubble, action );
+        if (mMuted) {
+            bubbleManager().addAction( bubble, mUnmute );
+        } else {
+            bubbleManager().addAction( bubble, mMute );
         }
-                    
         bubbleManager().addAction( bubble, mEndCall );
         break;
         }
@@ -744,7 +696,17 @@
 void BubbleTestView::setMuted()
 {
     mMuted = !mMuted;
-    updateToolBarActions();
+    int bubble = bubbleManager().expandedBubble();
+    QListIterator<TestCall> calls(mCalls);
+    while (calls.hasNext()) {
+        TestCall call = calls.next();
+        if (call.bubbleId==bubble) {
+            bubbleManager().startChanges();
+            setBubbleActions(bubble, (BubbleManagerIF::PhoneCallState)call.callState);
+            bubbleManager().endChanges();
+        }
+    }
+
     bubbleManager().setPhoneMuted( mMuted );
     setFocus(); // hack because toolbar steals the focus
 }
@@ -776,13 +738,17 @@
         mCalls.removeAt(i);
         mConfBubbleId = -1;
         callIndexByBubbleId(selection,i);
-        int held = (i==0) ? 1 : 0;
+        int held = (i==0) ? 1 : 0; // ??
         setBubbleActions(selection,BubbleManagerIF::Active);
         setBubbleData(selection,BubbleManagerIF::Active);
         setBubbleActions(held,BubbleManagerIF::OnHold);
         setBubbleData(held,BubbleManagerIF::OnHold);
-        mCalls[0].isInConf = false;
-        mCalls[1].isInConf = false;
+        mCalls[i].isInConf = false;
+        mCalls[i].callState = BubbleManagerIF::Active;
+        int callId;
+        callIndexByBubbleId(held, callId);
+        mCalls[callId].callState = BubbleManagerIF::OnHold;
+        mCalls[callId].isInConf = false;
         setExpandActions();
     }
     bubbleManager().endChanges();
@@ -849,6 +815,7 @@
 
     // not connected to anywhere
     mActivateLoudspeaker = new HbAction(HbIcon("qtg_mono_speaker"), "", this);
+    connect( mActivateLoudspeaker, SIGNAL(triggered()), this, SLOT(createIncomingCall()), Qt::QueuedConnection );
     mActivateHandset = new HbAction(HbIcon("qtg_mono_mobile"), "", this);
     mSendMessage = new HbAction(HbIcon("qtg_mono_send"), "", this);
     mSilence = new HbAction(HbIcon("qtg_mono_speaker_off"), "", this);
@@ -898,54 +865,61 @@
         toolBar()->addAction(mSendMessage);
         toolBar()->addAction(mSilence);
     } else {
+        toolBar()->addAction(mActivateLoudspeaker);
+
+        if (callCount()==1) {
+            toolBar()->addAction(mHold);
+        } else {
+            toolBar()->addAction(mSwap);            
+        }
+
+        if (callCount()==1) {
+            toolBar()->addAction(mOpenContacts);
+        } else {
+            toolBar()->addAction(mJoin);
+        }
+
         toolBar()->addAction(mOpenDialer);
-        if (!mMuted) {
-            toolBar()->addAction(mMute);
-        } else if (mMuted) {
-            toolBar()->addAction(mUnmute);
-        }
-        toolBar()->addAction(mActivateLoudspeaker);
-        toolBar()->addAction(mOpenContacts);
     }
 }
 
 void BubbleTestView::createBubbleActions()
 {
-    mAnswer = new HbAction( HbIcon("qtg_mono_call"),"Answer", this);
+    mAnswer = new HbAction( HbIcon("qtg_mono_call"),QString(), this);
     mAnswer->setSoftKeyRole(QAction::PositiveSoftKey);
     connect( mAnswer, SIGNAL( triggered() ), this, SLOT( answerCall() ) );
 
-    mReject= new HbAction( HbIcon("qtg_mono_reject_call"),"Reject", this);
+    mReject= new HbAction( HbIcon("qtg_mono_reject_call"),QString(), this);
     mReject->setSoftKeyRole(QAction::NegativeSoftKey);
     connect( mReject, SIGNAL( triggered() ), this, SLOT( rejectCall() ) );
 
-    mHold = new HbAction( HbIcon("qtg_mono_hold_call"),"Hold", this);
+    mHold = new HbAction( HbIcon("qtg_mono_hold_call"),QString(), this);
     connect( mHold, SIGNAL( triggered() ), this, SLOT( toggleHold() ) );
 
-    mUnhold = new HbAction( HbIcon("qtg_mono_call"),"Activate", this);
+    mUnhold = new HbAction( HbIcon("qtg_mono_call"),QString(), this);
     connect( mUnhold, SIGNAL( triggered() ), this, SLOT( toggleHold() ) );
 
-    mSwap = new HbAction( HbIcon("qtg_mono_hold_call"),"Swap", this);
+    mSwap = new HbAction( HbIcon("qtg_mono_hold_call"),QString(), this);
     connect( mSwap, SIGNAL( triggered() ), this, SLOT( toggleHold() ) );
 
-    mEndCall = new HbAction(HbIcon("qtg_mono_end_call"),"End call", this);
+    mEndCall = new HbAction(HbIcon("qtg_mono_end_call"),QString(), this);
     mEndCall->setSoftKeyRole(QAction::NegativeSoftKey);
     connect( mEndCall, SIGNAL( triggered() ), this, SLOT( endCall() ) );
 
-    mEndConference = new HbAction(HbIcon("qtg_mono_end_all_call"),"End conference", this);
+    mEndConference = new HbAction(HbIcon("qtg_mono_end_call"),QString(), this);
     mEndConference->setSoftKeyRole(QAction::NegativeSoftKey);
     connect( mEndConference, SIGNAL( triggered() ), this, SLOT( endConferenceCall() ) );
 
-    mJoin = new HbAction(HbIcon("qtg_mono_join_call"),"Join", this);
+    mJoin = new HbAction(HbIcon("qtg_mono_join_call"),QString(), this);
     connect( mJoin, SIGNAL( triggered() ), this, SLOT(joinToConference()) );
 
-    mPrivate = new HbAction(HbIcon("qtg_mono_private_call"),"Private", this);
+    mPrivate = new HbAction(HbIcon("qtg_mono_private_call"),QString(), this);
     connect( mPrivate, SIGNAL( triggered() ), this, SLOT(handlePrivate()) );
 
-    mDrop = new HbAction(HbIcon("qtg_mono_drop_call"),"Drop", this);
+    mDrop = new HbAction(HbIcon("qtg_mono_drop_call"),QString(), this);
     connect( mDrop, SIGNAL( triggered() ), this, SLOT(handleDrop()) );
 
-    mReplace = new HbAction(HbIcon("qtg_mono_replace_call"),"Replace", this);
+    mReplace = new HbAction(HbIcon("qtg_mono_replace_call"),QString(), this);
     connect( mReplace, SIGNAL( triggered() ), this, SLOT(replaceActiveCall()) );
 
     mUpdateUiControls = new HbAction(QString(), this);
@@ -1026,13 +1000,13 @@
     callIndexByBubbleId(mConfBubbleId, i);
     BubbleManagerIF::PhoneCallState confState =
         (BubbleManagerIF::PhoneCallState)mCalls[i].callState;
-    qDebug() << "toggleConferenceHoldDelayed state:" << confState;
+    // qDebug() << "toggleConferenceHoldDelayed state:" << confState;
 
     QListIterator<TestCall> calls(mCalls);
     int j=0;
     while(calls.hasNext()) {
         TestCall call = calls.next();
-        qDebug() << "toggleConferenceHoldDelayed callState:" << call.callState;
+        // qDebug() << "toggleConferenceHoldDelayed callState:" << call.callState;
         if (call.isInConf && call.callState!=confState) {
             bubbleManager().startChanges();
             setBubbleData(call.bubbleId, confState);
--- a/phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.h	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.h	Tue Jul 06 14:15:47 2010 +0300
@@ -137,7 +137,6 @@
 
     HbAction         *mConnectTester;
     QMap<QString, int> mTestBubbleIds;
-    QString mPhoneNumber;
     int mConfBubbleId;
     bool mProvideJoin;
 };
--- a/phoneuis/bubblemanager2/tsrc/unit/mt_bubblemanager2/mt_bubblemanager2.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/mt_bubblemanager2/mt_bubblemanager2.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -410,7 +410,7 @@
     mouseClickWidgetAction("eb:leftButton",&action8);
     mouseClickWidgetAction("eb:rightButton",&action5);
 
-    // try to click conference list
+    // click conference list
     QTest::mouseClick(mainWindow->viewport(),Qt::LeftButton,0,QPoint(100,100));
     QTest::qWait( 2*WAIT_TIME );
 
--- a/phoneuis/bubblemanager2/tsrc/unit/runall.cmd	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/runall.cmd	Tue Jul 06 14:15:47 2010 +0300
@@ -25,6 +25,7 @@
 call runtest.cmd ut_bubbleheadingwidget
 call runtest.cmd ut_bubbleimagewidget
 call runtest.cmd ut_bubbleparticipantlistitem
+call runtest.cmd ut_bubblebutton
 rem call runtest.cmd mt_bubblemanager2
 )
 
@@ -38,6 +39,7 @@
 call runtest_w32.cmd ut_bubbleheadingwidget
 call runtest_w32.cmd ut_bubbleimagewidget
 call runtest_w32.cmd ut_bubbleparticipantlistitem
+call runtest_w32.cmd ut_bubblebutton
 rem call runtest_w32.cmd mt_bubblemanager2
 )
 
--- a/phoneuis/bubblemanager2/tsrc/unit/unit.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/unit.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -26,4 +26,5 @@
 SUBDIRS += ut_bubbleimagewidget
 SUBDIRS += ut_bubbleparticipantlistitem
 SUBDIRS += ut_bubbleeffecthandler
+SUBDIRS += ut_bubblebutton
 SUBDIRS += mt_bubblemanager2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/resources/qtg_mono_call.svg	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,6 @@
+<?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 baseProfile="tiny" height="30" viewBox="0 0 30 30" width="30" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect fill="none" height="30" width="30"/>
+<path d="M28.58,7.523l-7.359,4.248c-0.364,0.152-0.771,0.057-0.953-0.256l-1.277-2.142c-0.002,0.002-0.006,0.007-0.007,0.008-0.001-0.001,0-0.003-0.001-0.004-1.119,0.582-3.617,2.223-5.187,3.79-1.632,1.635-3.149,3.394-4.417,5.576,0,0-0.006,0.008-0.008,0.01,0.009,0.002,0.018,0.002,0.027,0.003l2.725,1.743c0.344,0.222,0.412,0.706,0.158,1.078l-4.794,7.05c-0.254,0.37-0.736,0.491-1.081,0.268,0,0-0.298-0.194-1.021-0.83h-0.003c-0.394-0.347-0.411-0.476-0.785-0.925-0.319-0.385-0.573-0.765-0.783-1.114-0.001-0.001-0.004,0-0.005-0.002-0.043-0.071-0.081-0.139-0.119-0.207-0.005-0.009-0.01-0.018-0.015-0.024-0.391-0.698-0.56-1.211-0.56-1.211-0.178-0.688-0.252-3.057,0.563-5.205,0.52-1.364,3.24-5.672,6.42-8.854,3.181-3.182,8.125-6.349,10.3-7.005,2.176-0.656,3.903-0.556,4.417-0.374,0,0,1.326,0.434,2.53,1.536,0.401,0.367,0.439,0.382,0.751,0.765,0.002,0.003,0,0.006,0.002,0.008-0.002-0.002-0.002-0.004-0.004-0.005,0.615,0.757,0.818,1.062,0.818,1.062,0.19,0.327,0.04,0.787-0.34,1.006z"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/ut_bubblebutton.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,158 @@
+/*!
+* 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 <hbwidget.h>
+#include <hbframeitem.h>
+#include <hbframedrawer.h>
+#include <hbcolorscheme.h>
+#include <hbiconitem.h>
+
+#include "bubbletest.h"
+#include "bubblebutton.h"
+
+class TestBubbleButton : public BubbleButton
+{
+public:
+    TestBubbleButton() {};
+    ~TestBubbleButton() {};
+
+    bool testSceneEvent(QEvent *event) { return BubbleButton::sceneEvent(event); };
+};
+
+class ut_BubbleButton : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void initTestCase();
+    void cleanupTestCase();
+
+    void testButtonType();
+    void testUpdatePrimitives();
+    void testSceneEvent();
+
+private:
+    TestBubbleButton *mButton;
+};
+
+void ut_BubbleButton::initTestCase()
+{
+    mButton = new TestBubbleButton();
+    mButton->setIcon(HbIcon(":/resources/qtg_mono_call.svg"));
+}
+
+void ut_BubbleButton::cleanupTestCase()
+{
+    delete mButton;
+}
+
+void ut_BubbleButton::testButtonType()
+{
+    QVERIFY(mButton->buttonType()==BubbleButton::DefaultButton);
+    mButton->setButtonType(BubbleButton::GreenButton);
+    QVERIFY(mButton->buttonType()==BubbleButton::GreenButton);
+    mButton->setButtonType(BubbleButton::RedButton);
+    QVERIFY(mButton->buttonType()==BubbleButton::RedButton);
+}
+
+void ut_BubbleButton::testUpdatePrimitives()
+{
+    // function button
+    HbFrameItem* frame =
+        qgraphicsitem_cast<HbFrameItem*>(
+            static_cast<HbWidget*>(mButton)->primitive("background"));
+    QVERIFY(frame);
+
+    HbIconItem* icon =
+        qgraphicsitem_cast<HbIconItem*>(
+            static_cast<HbWidget*>(mButton)->primitive("icon"));
+    QVERIFY(icon);
+
+    QColor iconColor;
+
+    mButton->setVisible(false);
+    mButton->setButtonType(BubbleButton::DefaultButton);
+    mButton->setVisible(true);
+
+    QVERIFY(frame->frameDrawer().frameGraphicsName()!="qtg_fr_btn_green_normal");
+    QVERIFY(frame->frameDrawer().frameGraphicsName()!="qtg_fr_btn_green_normal");
+    iconColor = HbColorScheme::color("qtc_button_normal");
+    QVERIFY(icon->color()==iconColor);
+    mButton->setDown(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()!="qtg_fr_btn_green_pressed");
+    QVERIFY(frame->frameDrawer().frameGraphicsName()!="qtg_fr_btn_green_pressed");
+    iconColor = HbColorScheme::color("qtc_button_pressed");
+    QVERIFY(icon->color()==iconColor);
+
+
+    mButton->setDown(false);
+    mButton->setVisible(false);
+    mButton->setButtonType(BubbleButton::RedButton);
+    mButton->setVisible(true);
+
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_btn_red_normal");
+    iconColor = HbColorScheme::color("qtc_callhandling_reject_normal");
+    QVERIFY(icon->color()==iconColor);
+    mButton->setDown(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_btn_red_pressed");
+    iconColor = HbColorScheme::color("qtc_callhandling_reject_pressed");
+    QVERIFY(icon->color()==iconColor);
+
+    mButton->setDown(false);
+    mButton->setVisible(false);
+    mButton->setButtonType(BubbleButton::GreenButton);
+    mButton->setVisible(true);
+
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_normal");
+    iconColor = HbColorScheme::color("qtc_callhandling_answer_normal");
+    QVERIFY(icon->color()==iconColor);
+    mButton->setDown(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_pressed");
+    iconColor = HbColorScheme::color("qtc_callhandling_answer_pressed");
+    QVERIFY(icon->color()==iconColor);
+}
+
+void ut_BubbleButton::testSceneEvent()
+{
+    QEvent event(QEvent::UngrabMouse);
+    QSignalSpy spy( mButton, SIGNAL( clicked()) );
+    QSignalSpy spy2( mButton, SIGNAL( released()) );
+    mButton->setVisible(false);
+    mButton->setDown(false);
+    mButton->testSceneEvent(&event);
+    QVERIFY(spy.count()==0);
+    QVERIFY(spy2.count()==0);
+
+    QEvent eventNone(QEvent::None);
+    mButton->testSceneEvent(&eventNone);
+    QVERIFY(spy.count()==0);
+    QVERIFY(spy2.count()==0);
+
+    mButton->setVisible(true);
+    mButton->setDown(true);
+    mButton->testSceneEvent(&event);
+    QVERIFY(spy.count()==1);
+    QVERIFY(spy2.count()==1);
+    QVERIFY(mButton->isDown()==false);
+}
+
+BUBBLE_TEST_MAIN(ut_BubbleButton)
+#include "ut_bubblebutton.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/ut_bubblebutton.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,36 @@
+#
+# 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 += . ../../../bubblecore/src
+INCLUDEPATH += . ../../../bubblecore/src ../../../inc ../shared
+CONFIG += hb qtestlib
+
+symbian {
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+} else:win32 {
+    DESTDIR = ./
+}
+
+RESOURCES += ut_bubblebutton.qrc
+
+HEADERS += ../../../bubblecore/src/bubblebutton.h
+
+SOURCES += ut_bubblebutton.cpp \
+           ../../../bubblecore/src/bubblebutton.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblebutton/ut_bubblebutton.qrc	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,5 @@
+<RCC>
+    <qresource prefix="/" >
+        <file>resources/qtg_mono_call.svg</file>
+    </qresource>
+</RCC>
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -24,10 +24,21 @@
 #include <hbmainwindow.h>
 #include <hbinstance.h>
 #include <hbstyle.h>
+#include <hbframeitem.h>
 
 #include "bubbletest.h"
 #include "bubblecontainerwidget.h"
 
+class TestBubbleContainerWidget : public BubbleContainerWidget
+{
+public:
+    TestBubbleContainerWidget() {};
+    ~TestBubbleContainerWidget() {};
+
+    void testMouseMove(QGraphicsSceneMouseEvent *event)
+         { BubbleContainerWidget::mouseMoveEvent(event); };
+};
+
 class ut_BubbleContainerWidget : public QObject
 {
     Q_OBJECT
@@ -41,17 +52,22 @@
     void testMouseMove();
 
 private:
-    BubbleContainerWidget* mContainer;
+    TestBubbleContainerWidget* mContainer;
     HbMainWindow* mMainWindow;
-    int mStyleBaseId;
 };
 
 void ut_BubbleContainerWidget::initTestCase()
 {
     mMainWindow = new HbMainWindow();
-    mContainer = new BubbleContainerWidget();
+    mContainer = new TestBubbleContainerWidget();
     mMainWindow->addView(mContainer);
     mMainWindow->show();
+
+    HbFrameItem* frame =
+        qgraphicsitem_cast<HbFrameItem*>(
+            static_cast<HbWidget*>(mContainer)->primitive("background"));
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_list_normal");
+    QVERIFY(frame->isVisible()==false);
 }
 
 void ut_BubbleContainerWidget::cleanupTestCase()
@@ -90,11 +106,36 @@
     QPointF clickPos = mContainer->scenePos() +
                        mContainer->rect().center();
     QPoint windowPos = mMainWindow->mapFromScene( clickPos );
-    QPoint windowPos2 = windowPos+QPoint(10,10);
+
+    // move within
+    QTest::mousePress( mMainWindow->viewport(), Qt::LeftButton, 0, windowPos, 100 );
 
     // QTest::mouseMove() doesn't work
-    QTest::mouseMove( mMainWindow->viewport(), windowPos2 );
-    QCOMPARE( spy.count(), 0 );
+    QGraphicsSceneMouseEvent moveEvent(QEvent::MouseMove);
+    moveEvent.setButtons(Qt::LeftButton);
+    moveEvent.setPos(windowPos-QPointF(1,1));
+    mContainer->testMouseMove(&moveEvent);
+
+    QTest::mouseRelease( mMainWindow->viewport(), Qt::LeftButton, 0, windowPos, 100 );
+    QCOMPARE( spy.count(), 1 );
+
+
+    // move out
+    QTest::mousePress( mMainWindow->viewport(), Qt::LeftButton, 0, windowPos, 100 );
+    moveEvent.setPos(QPointF(-10,-10));
+    mContainer->testMouseMove(&moveEvent);
+
+    QTest::mouseRelease( mMainWindow->viewport(), Qt::LeftButton, 0, windowPos, 100 );
+    QCOMPARE( spy.count(), 1 );
+
+    // move in
+    QTest::mousePress( mMainWindow->viewport(), Qt::LeftButton, 0, QPoint(1,1), 100 );
+    moveEvent.setPos(QPointF(windowPos));
+    mContainer->testMouseMove(&moveEvent);
+
+    QTest::mouseRelease( mMainWindow->viewport(), Qt::LeftButton, 0, windowPos, 100 );
+    QCOMPARE( spy.count(), 1 );
+
 }
 
 BUBBLE_TEST_MAIN(ut_BubbleContainerWidget)
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleeffecthandler/ut_bubbleeffecthandler.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleeffecthandler/ut_bubbleeffecthandler.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -64,6 +64,7 @@
 
     void testMuteAppearEffect();
     void testMuteDisappearEffect();
+    void testCancelAllEffects();
 
 private:
     HbMainWindow* mWindow;
@@ -118,5 +119,22 @@
     mEffectHandler->removeEffect(mContainer->mLabel,BubbleMutedDisappear);
 }
 
+void ut_BubbleEffectHandler::testCancelAllEffects()
+{
+    QVERIFY(mContainer->mLabel->isVisible()==false);
+    QTest::qWait(500);
+
+    mContainer->mLabel->setPlainText("Appearing");
+
+    mEffectHandler->addEffect(mContainer->mLabel,BubbleMutedAppear);
+    mEffectHandler->startEffect(BubbleMutedAppear);
+    QTest::qWait(100);
+    QVERIFY(HbEffect::effectRunning(mContainer->mLabel));
+    mEffectHandler->cancelAllEffects(mContainer->mLabel);
+    QVERIFY(!HbEffect::effectRunning(mContainer->mLabel));
+
+    mEffectHandler->removeEffect(mContainer->mLabel,BubbleMutedAppear);
+}
+
 BUBBLE_TEST_MAIN(ut_BubbleEffectHandler)
 #include "ut_bubbleeffecthandler.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.css	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.css	Tue Jul 06 14:15:47 2010 +0300
@@ -5,66 +5,111 @@
     layout: three_lines_layout;
 }
 
+BubbleHeadingWidget[layoutOption="three_lines_1"]
+{
+    layout: three_lines_layout_1;
+}
+
+BubbleHeadingWidget[layoutOption="three_lines_2"]
+{
+    layout: three_lines_layout_2;
+}
+
 BubbleHeadingWidget[layoutOption="two_lines"]
 {
     layout: two_lines_layout;
 }
 
+BubbleHeadingWidget[layoutOption="two_lines_1"]
+{
+    layout: two_lines_layout_1;
+}
+
+BubbleHeadingWidget[layoutOption="two_lines_2"]
+{
+    layout: two_lines_layout_2;
+}
+
+
 BubbleHeadingWidget[layoutOption="one_line"]
 {
     layout: one_line_layout;
 }
 
-BubbleHeadingWidget:text_line_1
+BubbleHeadingWidget[layoutOption="one_line_1"]
 {
-    preferred-height: var(hb-param-text-height-primary);
-    left: -var(hb-param-margin-gene-middle-horizontal);
-    color: var(qtc_list_item_title_normal);
+    layout: one_line_layout_1;
+}
+
+BubbleHeadingWidget[layoutOption="one_line_2"]
+{
+    layout: one_line_layout_2;
 }
 
-BubbleHeadingWidget:text_line_2[layoutOption!="one_line"]
+BubbleHeadingWidget:text_line_1
 {
-    preferred-height: var(hb-param-text-height-primary);
-    preferred-width: -1;
-    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-height: var(hb-param-text-height-primary);
+    color: var(qtc_list_item_title_normal);
+    text-line-count-min:1;
+    text-line-count-max:1;    
+}
+
+BubbleHeadingWidget:text_line_2
+{
+    text-height: var(hb-param-text-height-primary);
+    text-align: left;
+    color: var(qtc_list_item_title_normal);
+    text-line-count-min:1;
+    text-line-count-max:1;
+    pref-width: -1;
     top: -var(hb-param-margin-gene-middle-vertical);
     text-align: left;
-    color: var(qtc_list_item_title_normal);
+    size-policy-horizontal: expanding;    
 }
 
 BubbleHeadingWidget:text_line_2[layoutOption="one_line"]
 {
-    preferred-height: var(hb-param-text-height-primary);
-    preferred-width: 30un;
+    pref-width: 35un; /* not in spec yet, fixed value needed for localisation */
     left: -var(hb-param-margin-gene-middle-horizontal);
     text-align: right;
-    color: var(qtc_list_item_title_normal);
+    size-policy-horizontal: fixed;    
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption="one_line_1"]
+{
+    pref-width: 35un;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-align: right;
+    size-policy-horizontal: fixed;    
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption="one_line_2"]
+{
+    pref-width: 35un;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-align: right;
+    size-policy-horizontal: fixed;    
 }
 
 BubbleHeadingWidget:text_line_3
 {
-    preferred-height: var(hb-param-text-height-primary);
-    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-height: var(hb-param-text-height-primary);
     top: -var(hb-param-margin-gene-middle-vertical);
     color: var(qtc_list_item_title_normal);
+    text-line-count-min:1;
+    text-line-count-max:1;
 }
 
-BubbleHeadingWidget:status_icon
-{
-    fixed-width:   var(hb-param-graphic-size-primary-large);
-    fixed-height:  var(hb-param-graphic-size-primary-large);
-}
-
-BubbleHeadingWidget:number_type_icon
+BubbleHeadingWidget:indicator_icon_1
 {
     fixed-height: var(hb-param-graphic-size-secondary);
     fixed-width:  var(hb-param-graphic-size-secondary);
     color: var(qtc_list_item_title_normal);
 }
 
-BubbleHeadingWidget:ciphering_icon
+BubbleHeadingWidget:indicator_icon_2
 {
-    fixed-height: 2.5un;
-    fixed-width:  2.5un;
+    fixed-height: var(hb-param-graphic-size-secondary);
+    fixed-width:  var(hb-param-graphic-size-secondary);
     color: var(qtc_list_item_title_normal);
 }
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.widgetml	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.widgetml	Tue Jul 06 14:15:47 2010 +0300
@@ -1,63 +1,136 @@
 <hbwidget version="0.1" type="be">  
   <layout name="three_lines_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-    
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
     
     <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
-    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    
+    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>
+  
+  <layout name="three_lines_layout_1" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    
+    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
+  
+  <layout name="three_lines_layout_2" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="indicator_icon_2" dstEdge="LEFT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="indicator_icon_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_2" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>    
+    
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     
     <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
-    <meshitem src="text_line_3" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-  </layout>
+    <meshitem src="text_line_3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
 
   <layout name="two_lines_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
     
-    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>
+  
+  <layout name="two_lines_layout_1" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
     <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
-  </layout>
+    <meshitem src="text_line_2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
+  
+  <layout name="two_lines_layout_2" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="indicator_icon_2" dstEdge="LEFT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="indicator_icon_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_2" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>  
 
   <layout name="one_line_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-    
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
     <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
     
     <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
     <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
   </layout>
   
+  <layout name="one_line_layout_1" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT"  spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>        
+  </layout>  
+  
+  <layout name="one_line_layout_2" type="mesh">
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT" spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="indicator_icon_1" dstEdge="LEFT"  spacing="var(hb-param-margin-gene-middle-horizontal)"/>
+    
+    <meshitem src="indicator_icon_1" srcEdge="RIGHT" dst="indicator_icon_2" dstEdge="LEFT"/>
+    <meshitem src="indicator_icon_1" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>        
+    
+    <meshitem src="indicator_icon_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="indicator_icon_2" srcEdge="CENTERV" dst="text_line_1" dstEdge="CENTERV"/>
+    
+  </layout>  
+  
 </hbwidget>
 
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -24,6 +24,8 @@
 #include <hbmainwindow.h>
 #include <hbinstance.h>
 #include <hbstyle.h>
+#include <hbtextitem.h>
+#include <hbiconitem.h>
 
 #include "bubbletest.h"
 #include "bubbleheadingwidget.h"
@@ -46,7 +48,14 @@
 private:
     BubbleHeadingWidget* mHeading;
     HbMainWindow* mMainWindow;
-    int mStyleBaseId;
+
+    HbTextItem* mText1;
+    HbTextItem* mText2;
+    HbTextItem* mText3;
+
+    HbIconItem* mIndi1;
+    HbIconItem* mIndi2;
+
 };
 
 void ut_BubbleHeadingWidget::initTestCase()
@@ -55,6 +64,23 @@
     mHeading = new BubbleHeadingWidget();
     mMainWindow->addView(mHeading);
     mMainWindow->show();
+
+    mText1 = qgraphicsitem_cast<HbTextItem*>(
+                 static_cast<HbWidget*>(mHeading)->primitive("text_line_1"));
+    QVERIFY(mText1);
+    mText2 = qgraphicsitem_cast<HbTextItem*>(
+                 static_cast<HbWidget*>(mHeading)->primitive("text_line_2"));
+    QVERIFY(mText2);
+    mText3 = qgraphicsitem_cast<HbTextItem*>(
+                 static_cast<HbWidget*>(mHeading)->primitive("text_line_3"));
+    QVERIFY(mText3);
+
+    mIndi1 = qgraphicsitem_cast<HbIconItem*>(
+                static_cast<HbWidget*>(mHeading)->primitive("indicator_icon_1"));
+    QVERIFY(mIndi1);
+    mIndi2 = qgraphicsitem_cast<HbIconItem*>(
+                static_cast<HbWidget*>(mHeading)->primitive("indicator_icon_2"));
+    QVERIFY(mIndi2);
 }
 
 void ut_BubbleHeadingWidget::cleanupTestCase()
@@ -70,6 +96,49 @@
 
 void ut_BubbleHeadingWidget::testThreeLinedHeading()
 {
+    mHeading->setLineCount(3);
+
+    BubbleHeader header;
+    header.setCli("John Doe",Qt::ElideRight);
+    header.setSecondaryCli("12345",Qt::ElideLeft);
+    header.setText("",Qt::ElideRight);
+    header.setTimerCost("0:00");
+    header.setCallState(BubbleManagerIF::Active);
+    header.setCallFlag(BubbleManagerIF::NoCiphering);
+    QVERIFY(mHeading->lineCount()==3);
+    mHeading->readBubbleHeader(header);
+    mHeading->show();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="three_lines_1");
+
+    QVERIFY(mText1->text()=="John Doe");
+    QVERIFY(mText2->text()=="12345");
+    QVERIFY(mText2->alignment()&Qt::AlignLeft);
+    QVERIFY(mText3->text()=="0:00");
+
+    header.setTimerCost("0:01");
+    mHeading->updateTimerDisplayNow();
+    QVERIFY(mText3->text()=="0:01");
+
+    header.setCallState(BubbleManagerIF::Incoming);
+    header.setCallFlag(BubbleManagerIF::NoCiphering);
+    header.setCallFlag(BubbleManagerIF::Diverted);
+    mHeading->readBubbleHeader(header);
+    mHeading->show();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="three_lines_2");
+
+    header.setCallFlags(BubbleManagerIF::Normal);
+    mHeading->readBubbleHeader(header);
+    mHeading->show();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="three_lines");
+}
+
+void ut_BubbleHeadingWidget::testTwoLinedHeading()
+{
+    mHeading->setLineCount(2);
+
     BubbleHeader header;
     header.setCli("John Doe",Qt::ElideRight);
     header.setSecondaryCli("12345",Qt::ElideLeft);
@@ -77,34 +146,41 @@
     header.setTimerCost("0:00");
     header.setCallState(BubbleManagerIF::Active);
     header.setCallFlag(BubbleManagerIF::NoCiphering);
-    mHeading->setLineCount(3);
-    Q_ASSERT(mHeading->lineCount()==3);
+    QVERIFY(mHeading->lineCount()==2);
     mHeading->readBubbleHeader(header);
     mHeading->show();
-    QTest::qWait(1000);
-    mHeading->updateTimerDisplayNow();
-}
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="two_lines_1");
+
+    QVERIFY(mText1->text()=="John Doe");
+    QVERIFY(mText2->text()=="0:00");
+    QVERIFY(mText2->alignment()&Qt::AlignLeft);
+    QVERIFY(!mText3->isVisible());
 
-void ut_BubbleHeadingWidget::testTwoLinedHeading()
-{
-    BubbleHeader header;
-    header.setCli("John Doe",Qt::ElideRight);
-    header.setSecondaryCli("12345",Qt::ElideLeft);
-    header.setText("",Qt::ElideRight);
-    header.setTimerCost("0:00");
-    header.setCallState(BubbleManagerIF::Outgoing);
+    header.setTimerCost("0:01");
+    mHeading->updateTimerDisplayNow();
+    QVERIFY(mText2->text()=="0:01");
+
+    header.setCallState(BubbleManagerIF::Incoming);
     header.setCallFlag(BubbleManagerIF::NoCiphering);
-
-    mHeading->setLineCount(2);
-    Q_ASSERT(mHeading->lineCount()==2);
+    header.setCallFlag(BubbleManagerIF::Diverted);
     mHeading->readBubbleHeader(header);
     mHeading->show();
-    QTest::qWait(100);
-    mHeading->updateTimerDisplayNow();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="two_lines_2");
+
+    header.setCallFlags(BubbleManagerIF::Normal);
+    mHeading->readBubbleHeader(header);
+    mHeading->show();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="two_lines");
+
 }
 
 void ut_BubbleHeadingWidget::testOneLinedHeading()
 {
+    mHeading->setLineCount(1);
+
     BubbleHeader header;
     header.setCli("John Doe",Qt::ElideRight);
     header.setSecondaryCli("12345",Qt::ElideLeft);
@@ -112,14 +188,37 @@
     header.setTimerCost("0:00");
     header.setCallState(BubbleManagerIF::Active);
     header.setCallFlag(BubbleManagerIF::NoCiphering);
-
-    mHeading->setLineCount(1);
-    Q_ASSERT(mHeading->lineCount()==1);
-    header.setCallState(BubbleManagerIF::OnHold);
+    QVERIFY(mHeading->lineCount()==1);
     mHeading->readBubbleHeader(header);
     mHeading->show();
-    QTest::qWait(100);
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="one_line_1");
+    QVERIFY(mText1->text()=="John Doe");
+    QVERIFY(mText2->text()=="0:00");
+    QVERIFY(mText2->alignment()&Qt::AlignRight);
+    QVERIFY(!mText3->isVisible());
+
+    header.setTimerCost("0:01");
     mHeading->updateTimerDisplayNow();
+    QVERIFY(mText2->text()=="0:01");
+
+    header.setCallState(BubbleManagerIF::Incoming);
+    header.setCallFlag(BubbleManagerIF::NoCiphering);
+    header.setCallFlag(BubbleManagerIF::Diverted);
+    mHeading->hide();
+    mHeading->readBubbleHeader(header);
+    mHeading->show();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="one_line_2");
+    QVERIFY(mText2->alignment()&Qt::AlignRight);
+
+    header.setCallFlags(BubbleManagerIF::Normal);
+    mHeading->hide();
+    mHeading->readBubbleHeader(header);
+    mHeading->show();
+    QTest::qWait(200);
+    QVERIFY(mHeading->layout()=="one_line");
+    QVERIFY(mText2->alignment()&Qt::AlignRight);
 }
 
 BUBBLE_TEST_MAIN(ut_BubbleHeadingWidget)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/mock_bubbleimagemanager.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -0,0 +1,55 @@
+/*!
+* 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 <QImage>
+#include <QPixmap>
+#include "bubbleimagemanager.h"
+
+QPixmap* _pixmap;
+
+BubbleImageManager::BubbleImageManager(QObject* parent)
+    : QObject(parent), d_ptr(0)
+{
+    _pixmap = new QPixmap;
+}
+
+BubbleImageManager::~BubbleImageManager()
+{
+    delete _pixmap;
+}
+
+const QPixmap* BubbleImageManager::pixmap(
+    const QString& imageFileName)
+{
+    return _pixmap;
+}
+
+void BubbleImageManager::loadImage(const QString& imageFileName)
+{
+    QImage image(imageFileName);
+    _pixmap->fromImage(image);
+
+    emit pixmapReady(imageFileName);
+}
+
+void BubbleImageManager::unloadImage(const QString& imageFileName)
+{
+}
+
+void BubbleImageManager::releasePixmaps()
+{
+}
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -24,6 +24,7 @@
 #include <hbmainwindow.h>
 #include <hbinstance.h>
 #include <hbstyle.h>
+#include <hbiconitem.h>
 
 #include "bubbletest.h"
 #include "bubbleimagewidget.h"
@@ -37,12 +38,12 @@
     void initTestCase();
     void cleanupTestCase();
 
-    void testPixmap();
-    void testWidePixmap();
-    void testDefaultAvatar();
+    void testSetImage();
 
     void testSetKeepSquareShape();
 
+    void testSizeHint();
+
 private:
     QString fileNameWithPath(const QString& fileName);    
 
@@ -50,17 +51,9 @@
     BubbleImageWidget* mImage;
     HbMainWindow* mMainWindow;
     BubbleImageManager* mImageManager;
+    HbIconItem* mAvatar;
 };
 
-QString ut_BubbleImageWidget::fileNameWithPath(const QString& fileName)
-{
-#ifdef __WINS__
-    return "c:/data/images/" + fileName;
-#else
-    return ":/data/" + fileName;
-#endif
-}
-
 void ut_BubbleImageWidget::initTestCase()
 {
     mMainWindow = new HbMainWindow();
@@ -68,6 +61,12 @@
     mImage = new BubbleImageWidget(*mImageManager);
     mMainWindow->addView(mImage);
     mMainWindow->show();
+
+    mAvatar = qgraphicsitem_cast<HbIconItem*>(
+            static_cast<HbWidget*>(mImage)->primitive("default_avatar"));
+    QVERIFY(mAvatar);
+    QVERIFY(mAvatar->alignment()==Qt::AlignCenter);
+    QVERIFY(mAvatar->aspectRatioMode()==Qt::KeepAspectRatioByExpanding);
 }
 
 void ut_BubbleImageWidget::cleanupTestCase()
@@ -76,32 +75,22 @@
     delete mImageManager;
 }
 
-void ut_BubbleImageWidget::testPixmap()
-{    
-    mImage->hide();
-    mImage->setImage(fileNameWithPath("pixmap.png"));
-    mImage->show();
-    // set same image again
-    QTest::qWait(500);
-    // there is now way to verify using public API
-}
-
-void ut_BubbleImageWidget::testWidePixmap()
+void ut_BubbleImageWidget::testSetImage()
 {
-    mImage->hide();
-    mImage->setImage(fileNameWithPath("pixmap_wide.png"));
-    mImage->show();
-    QTest::qWait(500);
-    // there is now way to verify using public API
-}
+    mImage->setImage("");
+    QVERIFY(mAvatar->iconName()=="qtg_large_avatar");
+    QVERIFY(mAvatar->isVisible());
 
-void ut_BubbleImageWidget::testDefaultAvatar()
-{
-    mImage->hide();
-    mImage->setImage("");
+    QSignalSpy spy( mImageManager, SIGNAL(pixmapReady(QString)));
+    mImage->setImage(":/data/pixmap.png");
+    QVERIFY(mAvatar->isNull());
+    QVERIFY(!mAvatar->isVisible());
+    QVERIFY(spy.count()==1);
+    QList<QVariant> arguments = spy.takeFirst();
+    QVERIFY(arguments.at(0).toString()==":/data/pixmap.png");
+
     mImage->show();
-    QTest::qWait(500);
-    // there is now way to verify using public API
+    QTest::qWait(100);
 }
 
 void ut_BubbleImageWidget::testSetKeepSquareShape()
@@ -116,5 +105,12 @@
     QVERIFY(mImage->sizePolicy().horizontalPolicy()==QSizePolicy::Expanding);
 }
 
+void ut_BubbleImageWidget::testSizeHint()
+{
+    mImage->setKeepSquareShape(true);
+    QSizeF hint = mImage->preferredSize();
+    // ..
+}
+
 BUBBLE_TEST_MAIN(ut_BubbleImageWidget)
 #include "ut_bubbleimagewidget.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.pro	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.pro	Tue Jul 06 14:15:47 2010 +0300
@@ -25,31 +25,17 @@
     INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = ALL -TCB
-
-
-    BLD_INF_RULES.prj_exports += \
-        "./data/pixmap.png  /epoc32/winscw/c/data/images/pixmap.png"
-    BLD_INF_RULES.prj_exports += \
-        "./data/pixmap_wide.png  /epoc32/winscw/c/data/images/pixmap_wide.png"
-
 } else:win32 {
     DESTDIR = ./
 }
 
 #
 HEADERS += ../../../bubblecore/src/bubbleimagewidget.h \
-           ../../../bubblecore/src/bubbleimagemanager.h \
-           ../../../bubblecore/src/bubbleimagemanager_p.h
-SOURCES += ut_bubbleimagewidget.cpp \
-           ../../../bubblecore/src/bubbleimagewidget.cpp \
-           ../../../bubblecore/src/bubbleimagemanager.cpp
+           ../../../bubblecore/src/bubbleimagemanager.h
 
-symbian {
-    SOURCES += ../../../bubblecore/src/bubbleimagemanager_p.cpp
-    LIBS += -lthumbnailmanagerqt
-} else:win32 {
-    SOURCES += ../../../bubblecore/src/bubbleimagemanager_p_stub.cpp
-}
+SOURCES += ut_bubbleimagewidget.cpp \
+           mock_bubbleimagemanager.cpp \
+           ../../../bubblecore/src/bubbleimagewidget.cpp \
 
 RESOURCES += ut_bubbleimagewidget.qrc
 
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -75,7 +75,6 @@
     mItem->addAction(&act1);
     mItem->addAction(&act2);
     mItem->updateChildItems();
-    mItem->setExpanded(true);
     mItem->updateChildItems();
 }
 
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp	Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp	Tue Jul 06 14:15:47 2010 +0300
@@ -56,13 +56,7 @@
 
     void test_setButtonStyleForAction();
 
-    void test_voiceCallStatusIcon();
-    void test_videoCallStatusIcon();
-    void test_voipCallStatusIcon();
-
-    void test_numberTypeIcon();
-
-    void test_cipheringIcon();
+    void test_setIndicators();
 
 private:
 };
@@ -214,7 +208,8 @@
     QVERIFY( text1.elideMode() == Qt::ElideRight );
     QVERIFY( text2.text() == "discon" );
     QVERIFY( text2.elideMode() == Qt::ElideRight );
-    QVERIFY( text3.text() == "" );
+    QVERIFY( text3.text() == "00:00" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
     
     // add secondary cli
     header.setSecondaryCli( "12345", Qt::ElideLeft );
@@ -222,6 +217,29 @@
         
     QVERIFY( text1.text() == "john" );
     QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "discon" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "00:00" );
+    QVERIFY( text3.elideMode() == Qt::ElideRight );
+
+    // without call timer
+    text3.setText(QString());
+    header.setTimerCost(QString());
+    header.setSecondaryCli(QString(), Qt::ElideNone);
+
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "discon" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
+
+    // add secondary cli
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
+
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
     QVERIFY( text2.text() == "12345" );
     QVERIFY( text2.elideMode() == Qt::ElideLeft );
     QVERIFY( text3.text() == "discon" );
@@ -551,182 +569,51 @@
     QVERIFY(button.buttonType()==BubbleButton::RedButton);
 }
 
-void ut_BubbleUtils::test_voiceCallStatusIcon()
+void ut_BubbleUtils::test_setIndicators()
 {
-    HbIconItem icon;
-    icon.hide();
-
-    // test different voice call states
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="voice_call_waiting_anim");
-    QVERIFY(icon.isVisible()==true);
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Waiting, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="voice_call_waiting_anim");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Alerting, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="voice_call_waiting_anim");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Active, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="qtg_large_active_call");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Outgoing, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="qtg_large_active_call");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::OnHold, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="qtg_large_waiting_call");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Disconnected, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="qtg_large_end_call");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::AlertToDisconnected, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="qtg_large_end_call");
+    HbIconItem icon1;
+    icon1.hide();
+    HbIconItem icon2;
+    icon2.hide();
 
-    icon.hide();
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::None, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="");
-    QVERIFY(icon.isVisible()==false);
-}
-
-void ut_BubbleUtils::test_videoCallStatusIcon()
-{
-    HbIconItem icon;
-    icon.hide();
-
-    // test different voice call states
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="video_call_waiting_anim");
-    QVERIFY(icon.isVisible()==true);
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Waiting, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="video_call_waiting_anim");
+    BubbleUtils::setIndicators(
+        BubbleManagerIF::Incoming, BubbleManagerIF::NoCiphering, icon1, icon2);
+    QVERIFY(icon1.iconName()=="qtg_mono_ciphering_off");
+    QVERIFY(icon1.isVisible()==true);
+    QVERIFY(icon2.iconName()=="");
+    QVERIFY(icon2.isVisible()==false);
 
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Alerting, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="video_call_waiting_anim");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Active, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="qtg_large_video_call_active");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Outgoing, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="qtg_large_video_call_active");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::OnHold, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="qtg_large_video_call_waiting");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Disconnected, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="qtg_large_end_call");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::AlertToDisconnected, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="qtg_large_end_call");
+    BubbleUtils::setIndicators(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Diverted, icon1, icon2);
+    QVERIFY(icon1.iconName()=="qtg_mono_call_diverted");
+    QVERIFY(icon1.isVisible()==true);
+    QVERIFY(icon2.iconName()=="");
+    QVERIFY(icon2.isVisible()==false);
 
-    icon.hide();
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::None, BubbleManagerIF::Video, icon);
-    QVERIFY(icon.iconName()=="");
-    QVERIFY(icon.isVisible()==false);
-}
-
-void ut_BubbleUtils::test_voipCallStatusIcon()
-{
-    HbIconItem icon;
-    icon.hide();
-
-    // test different voice call states
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="voip_call_waiting_anim");
-    QVERIFY(icon.isVisible()==true);
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Waiting, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="voip_call_waiting_anim");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Alerting, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="voip_call_waiting_anim");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Active, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="qtg_large_voip_call_active");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Outgoing, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="qtg_large_voip_call_active");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::OnHold, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="qtg_large_voip_call_waiting");
-
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::Disconnected, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="qtg_large_end_call");
+    BubbleUtils::setIndicators(
+        BubbleManagerIF::Active, BubbleManagerIF::Diverted, icon1, icon2);
+    QVERIFY(icon1.iconName()=="");
+    QVERIFY(icon1.isVisible()==false);
+    QVERIFY(icon2.iconName()=="");
+    QVERIFY(icon2.isVisible()==false);
 
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::AlertToDisconnected, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="qtg_large_end_call");
-
-    icon.hide();
-    BubbleUtils::setCallStatusIcon(
-        BubbleManagerIF::None, BubbleManagerIF::VoIPCall, icon);
-    QVERIFY(icon.iconName()=="");
-    QVERIFY(icon.isVisible()==false);
-}
-
-void ut_BubbleUtils::test_numberTypeIcon()
-{
-    HbIconItem icon;
-    icon.hide();
-
-    BubbleUtils::setNumberTypeIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::Diverted, icon);
-    QVERIFY(icon.iconName()=="qtg_mono_call_diverted");
-    QVERIFY(icon.isVisible()==true);
+    int flags = 0;
+    flags |= BubbleManagerIF::NoCiphering;
+    flags |= BubbleManagerIF::Diverted;
+    BubbleUtils::setIndicators(
+        BubbleManagerIF::Incoming, flags, icon1, icon2);
+    QVERIFY(icon1.iconName()=="qtg_mono_ciphering_off");
+    QVERIFY(icon1.isVisible()==true);
+    QVERIFY(icon2.iconName()=="qtg_mono_call_diverted");
+    QVERIFY(icon2.isVisible()==true);
 
-    BubbleUtils::setNumberTypeIcon(
-        BubbleManagerIF::Waiting, BubbleManagerIF::Diverted, icon);
-    QVERIFY(icon.iconName()=="qtg_mono_call_diverted");
-    QVERIFY(icon.isVisible()==true);
 
-    BubbleUtils::setNumberTypeIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="");
-    QVERIFY(icon.isVisible()==false);
-}
-
-void ut_BubbleUtils::test_cipheringIcon()
-{
-    HbIconItem icon;
-    icon.hide();
-
-    BubbleUtils::setCipheringIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::NoCiphering, icon);
-    QVERIFY(icon.iconName()=="qtg_mono_ciphering_off");
-    QVERIFY(icon.isVisible()==true);
-
-    BubbleUtils::setCipheringIcon(
-        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon);
-    QVERIFY(icon.iconName()=="");
-    QVERIFY(icon.isVisible()==false);
+    BubbleUtils::setIndicators(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon1, icon2);
+    QVERIFY(icon1.iconName()=="");
+    QVERIFY(icon1.isVisible()==false);
+    QVERIFY(icon2.iconName()=="");
+    QVERIFY(icon2.isVisible()==false);
 }
 
 BUBBLE_TEST_MAIN(ut_BubbleUtils)