201025_01
authorhgs
Thu, 24 Jun 2010 12:37:54 +0300
changeset 44 329d304c1aa1
parent 42 d17dc5398051
child 45 e466b0bdc5ac
201025_01
appinstall.pro
appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest/sistest.pkg
appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest/sistest_winscw.pkg
appinstall_plat/appmngr2runtimeapi/tsrc/group/appmngr2runtimeapitest.pkg
appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp
appinstaller/AppinstUi/Plugin/CommonUI/Src/CUICertificateDetailsDialog.cpp
appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDetailsDialog.cpp
appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDialogs.cpp
appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDriveUtils.cpp
appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIProgressDialog.cpp
appinstaller/AppinstUi/group/SWInstCommonUI.mmp
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp
appinstaller/AppinstUi/sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.pro
appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrorhandler.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrors.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginerrorhandler.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/sisxsilentinstallindicatorplugin.pro
iaupdate/IAD/api/iaupdateapi.pro
iaupdate/IAD/backgroundchecker/group/bld.inf
iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp
iaupdate/IAD/backgroundchecker/inc/iaupdatebgfirsttimehandler.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebginternalfilehandler.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebgrefreshtimer.h
iaupdate/IAD/backgroundchecker/inc/iaupdatebgsoftnotification.h
iaupdate/IAD/backgroundchecker/src/iaupdatebgfirsttimehandler.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebginternalfilehandler.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp
iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp
iaupdate/IAD/bgcindicatorplugin/inc/bgcindicator.h
iaupdate/IAD/bgcindicatorplugin/inc/bgcindicatorplugin.h
iaupdate/IAD/bgcindicatorplugin/resources/message.svg
iaupdate/IAD/bgcindicatorplugin/rom/bgcindicatorplugin.iby
iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp
iaupdate/IAD/engine/controller/inc/iaupdatenodeimpl.h
iaupdate/IAD/engine/controller/src/iaupdateinstalloperation.cpp
iaupdate/IAD/engine/controller/src/iaupdateloader.cpp
iaupdate/IAD/engine/controller/src/iaupdatenodeimpl.cpp
iaupdate/IAD/engine/controller/src/iaupdateutils.cpp
iaupdate/IAD/engine/group/iaupdateengine.mmp
iaupdate/IAD/engine/inc/iaupdatenode.h
iaupdate/IAD/engine/inc/iaupdateutils.h
iaupdate/IAD/firmwareupdate/inc/iaupdatefwfotamodel.h
iaupdate/IAD/firmwareupdate/inc/iaupdatefwsynchandler.h
iaupdate/IAD/firmwareupdate/src/iaupdatefwfotamodel.cpp
iaupdate/IAD/firmwareupdate/src/iaupdatefwsynchandler.cpp
iaupdate/IAD/firmwareupdate/src/iaupdatefwupdatehandler.cpp
iaupdate/IAD/ui/iaupdate.pro
iaupdate/IAD/ui/iaupdate_mainview.docml
iaupdate/IAD/ui/inc/iaupdatedeputils.h
iaupdate/IAD/ui/inc/iaupdateengine.h
iaupdate/IAD/ui/inc/iaupdatefirsttimedatefile.h
iaupdate/IAD/ui/inc/iaupdatefirsttimeinfo.h
iaupdate/IAD/ui/inc/iaupdatemainview.h
iaupdate/IAD/ui/inc/iaupdatenodefilter.h
iaupdate/IAD/ui/inc/iaupdateuicontroller.h
iaupdate/IAD/ui/inc/iaupdateuicontrollerobserver.h
iaupdate/IAD/ui/src/iaupdateapplication.cpp
iaupdate/IAD/ui/src/iaupdatedeputils.cpp
iaupdate/IAD/ui/src/iaupdatedialogutil.cpp
iaupdate/IAD/ui/src/iaupdateengine.cpp
iaupdate/IAD/ui/src/iaupdatefirsttimedatefile.cpp
iaupdate/IAD/ui/src/iaupdatefirsttimeinfo.cpp
iaupdate/IAD/ui/src/iaupdatemainview.cpp
iaupdate/IAD/ui/src/iaupdatenodefilter.cpp
iaupdate/IAD/ui/src/iaupdateresultsdialog.cpp
iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp
iaupdate/IAD/ui/src/iaupdateuicontroller.cpp
iaupdate/IAD/updater/group/iaupdater.mmp
iaupdate/IAD/updater/inc/iaupdaterdialog.h
iaupdate/IAD/updater/inc/iaupdatersilentlauncher.h
iaupdate/IAD/updater/sis/Rd.cer
iaupdate/IAD/updater/sis/Rd.pem
iaupdate/IAD/updater/src/iaupdaterdialog.cpp
iaupdate/IAD/updater/src/iaupdatermngr.cpp
iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp
iaupdate/rom/iaupdate_stub.pkg
iaupdate/rom/iaupdater_stub.pkg
installationservices/swcomponentregistry/test/tscrdatalayer/scripts/data/nondb.db
installationservices/swi/bwins/plan_legacyU.def
installationservices/swi/bwins/plan_legacyu.def
installationservices/swi/bwins/sisregistryclient_v2U.def
installationservices/swi/bwins/sisregistryclient_v2_legacyU.def
installationservices/swi/bwins/uissclientU.DEF
installationservices/swi/eabi/plan_legacyU.def
installationservices/swi/eabi/plan_legacyu.def
installationservices/swi/eabi/sisregistryclient_v2U.def
installationservices/swi/eabi/sisregistryclient_v2_legacyU.def
installationservices/swi/inc/progressbar.h
installationservices/swi/inc/sisregistrywritablesession.h
installationservices/swi/inc/swi/sisuihandler.h
installationservices/swi/source/backuprestore/backupsession.cpp
installationservices/swi/source/sisregistry/client/sisregistrywritablesession.cpp
installationservices/swi/source/sisregistry/common/sisregistryclientserver.h
installationservices/swi/source/sisregistry/server/scrhelperutil.cpp
installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp
installationservices/swi/source/sisregistry/server/sisregistryserversession.h
installationservices/swi/source/swis/server/installationplanner.cpp
installationservices/swi/source/swis/server/installationprocessor.cpp
installationservices/swi/source/swis/server/restoreprocessor.cpp
installationservices/swi/source/swis/server/siscontentprovider.cpp
installationservices/swi/source/swis/server/uninstallationprocessor.cpp
installationservices/swi/source/uiss/client/sisuihandler.cpp
installationservices/swi/test/hw_hidden/Bld.inf
installationservices/swi/test/hw_hidden/bld.inf
installationservices/swi/test/swicaptests/registrycaptest.cpp
installationservices/swi/test/swicaptests/scripts/swicaptests.ini
installationservices/swi/test/swicaptests/scripts/swicaptests.script
installationservices/swi/test/testexes/interpretsis_testcase/01/icon24.BMP
installationservices/swi/test/testexes/interpretsis_testcase/01/icon24.bmp
installationservices/swi/test/testexes/interpretsis_testcase/03/icon24.BMP
installationservices/swi/test/testexes/interpretsis_testcase/03/icon24.bmp
installationservices/swi/test/testexes/interpretsis_testcase/04/icon24.BMP
installationservices/swi/test/testexes/interpretsis_testcase/04/icon24.bmp
installationservices/swi/test/testexes/interpretsis_testcase/24/icon24.BMP
installationservices/swi/test/testexes/interpretsis_testcase/24/icon24.bmp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_AppUi.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_AppView.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_Application.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_Document.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_Main.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_application.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_appui.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_appview.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_document.cpp
installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_main.cpp
installationservices/swi/test/testexes/testappinuse/Bld.inf
installationservices/swi/test/testexes/testappinuse/bld.inf
installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_loc.RSS
installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_loc.rss
installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_reg.RSS
installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_reg.rss
installationservices/swi/test/tsisfile/data/signedsis/Howto generate certificate chains.txt
installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/How to create root certficate.txt
installationservices/swi/test/tsisfile/data/signedsis/sucert/How to create root certficate.txt
installationservices/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/How to create root certficate.txt
installationservices/swiconfig/swi/swierrors.ra
installationservices/swiconfig/swi/swipolicy.ini
installationservices/swidevicetools/source/swiconsole/src/ciohandler.cpp
installationservices/swidevicetools/source/swiconsole/src/cpreferencehandler.cpp
installationservices/swidevicetools/source/swiconsole/src/cpreferences.cpp
installationservices/swinstallationfw/inc/sifnotification.h
installationservices/swinstallationfw/source/sifcommon.cpp
installationservices/swinstallationfw/test/tusif/scripts/data/Corrupt_reg.rsc
installationservices/swinstallationfw/test/tusif/scripts/data/corrupt_reg.rsc
installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotest_CorruptRsc.pkg
installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotest_corruptrsc.pkg
installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotestmultiapp_OneAppWithNonApparcRsc.pkg
installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotestmultiapp_oneappwithnonapparcrsc.pkg
installationservices/swinstallationfw/test/tusif/source/icon3M.BMP
installationservices/swinstallationfw/test/tusif/source/icon3m.bmp
installationservices/switestfw/test/autotesting/apr_bld.inf
installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt
ncdengine/debuglogger/group/catalogslogger.mmp
ncdengine/engine/engine.pri
ncdengine/engine/engine.pro
ncdengine/engine/group/bld.inf
ncdengine/engine/group/catalogsdebug.mmp
ncdengine/engine/group/catalogsengine.mmp
ncdengine/engine/group/catalogsproxy.mmp
ncdengine/engine/group/catalogsserver.mmp
ncdengine/engine/group/catalogsundertaker.mmp
ncdengine/engine/group/ncddevicemgmt.mmp
ncdengine/engine/group/ncdutils.mmp
ncdengine/engine/transport/inc/catalogshttpdownload.h
ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h
ncdengine/engine/transport/src/catalogshttpdownload.cpp
ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp
ncdengine/inc/ncdnodeinstall.h
ncdengine/ncdengine.pro
ncdengine/provider/client/inc/ncdnodeinstallproxy.h
ncdengine/provider/client/inc/ncdoperationmanagerproxy.h
ncdengine/provider/client/inc/ncdsilentinstalloperationproxy.h
ncdengine/provider/client/src/ncdnodeinstallproxy.cpp
ncdengine/provider/client/src/ncdoperationmanagerproxy.cpp
ncdengine/provider/client/src/ncdsilentinstalloperationproxy.cpp
ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h
ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h
ncdengine/provider/deviceinteraction/inc/ncdsilentinstallactiveobserver.h
ncdengine/provider/deviceinteraction/inc/ncdwidgetregistrydata.h
ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp
ncdengine/provider/deviceinteraction/src/ncdinstallationserviceimpl.cpp
ncdengine/provider/deviceinteraction/src/ncdsilentinstallactiveobserver.cpp
package_definition.xml
package_map.xml
secureswitools/makekeys/group/bld.inf
secureswitools/makekeys/group/makekeys.mmp
secureswitools/makekeys/src/MAKEKEYS.CPP
secureswitools/makekeys/src/MAKEKEYS.H
secureswitools/swianalysistoolkit/group/bld.inf
secureswitools/swianalysistoolkit/group/dumpchainvaliditytool.mmp
secureswitools/swianalysistoolkit/group/dumpinstallfilestatustool.mmp
secureswitools/swianalysistoolkit/group/dumpswicertstoretool.mmp
secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/common/certificatechain.cpp
secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/dumpinstallfilestatustool.cpp
secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/options.cpp
secureswitools/swianalysistoolkit/source/common/streamreader.cpp
secureswitools/swianalysistoolkit/source/dumpswicertstoretool/pfsdump.cpp
secureswitools/swianalysistoolkit/source/dumpswicertstoretool/swicertstoremetadata.cpp
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/allvalidchain.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/corrupteddat.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/corruptedsis.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/devcert2.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/mandatory.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/missing_mandatory.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/onechain.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/selfsigned.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/somevalidchain.out
secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/unsigned.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/allcapabilities.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/allmandatory.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both1.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both2.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/capdisplay_doption.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/capdisplay_yoption.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/corrupted.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/nomandatory.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/somecapabilities.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/suflagsupport.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/unicodecertificatename.out
secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/writable.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/1000000d.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80000003.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80000010.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80212345.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81000008.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/8100000b.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81111107.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111f8.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111fb.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111fc.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115000.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115011.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115013.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81231235.out
secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/a0000206.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/corrupteddat.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/corruptedsis.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/devcerts.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_missingcaps.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_nomissingcaps.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_usercaps1.out
secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/unsignedsis.out
secureswitools/swisistools/test/tdumpsis/package/exetest.out
secureswitools/swisistools/test/tinterpretsisinteg/data/Hello_sis.sis
secureswitools/swisistools/test/tinterpretsisinteg/data/hello_sis.sis
secureswitools/swisistools/test/tinterpretsisinteg/data/regfiles/tstapp.CPP
secureswitools/swisistools/test/tinterpretsisinteg/data/regfiles/tstapp.cpp
secureswitools/swisistools/test/tinterpretsisinteg/testdatac003/haltest.pkg.bak
secureswitools/swisistools/test/tinterpretsisinteg/testdataf006/privatefolderdef.pkg
secureswitools/swisistools/test/tinterpretsisinteg/testdatainc124436/inc124436.pkg
secureswitools/swisistools/test/tsignsis/data/emptylinescertandkey.out
--- a/appinstall.pro	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstall.pro	Thu Jun 24 12:37:54 2010 +0300
@@ -17,5 +17,6 @@
 TEMPLATE = subdirs
 
 SUBDIRS += appinstaller/appinstaller.pro \
-           iaupdate/iaupdate.pro
+           iaupdate/iaupdate.pro \
+           ncdengine/ncdengine.pro
 
--- a/appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest/sistest.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest/sistest.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,33 +1,33 @@
-;
-; 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:  Installation package file for sistest
-;
-
-
-; UID is the exe's UID
-#{"sistest"},(0xE4F8641B),1,0,0
-
-; S60 platform dependencies for S60 3.0 and 5.0
-[0x101F7961],0,0,0,{"Series60ProductID"}
-[0x1028315F],0,0,0,{"Series60ProductID"}
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Files
-"\epoc32\release\armv5\urel\sistest.exe" - "c:\sys\bin\sistest.exe"
-
+;
+; 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:  Installation package file for sistest
+;
+
+
+; UID is the exe's UID
+#{"sistest"},(0xE4F8641B),1,0,0
+
+; S60 platform dependencies for S60 3.0 and 5.0
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Files
+"\epoc32\release\armv5\urel\sistest.exe" - "c:\sys\bin\sistest.exe"
+
--- a/appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest/sistest_winscw.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest/sistest_winscw.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,33 +1,33 @@
-;
-; 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:  Installation package file for sistest for WINSCW emulator
-;
-
-
-; UID is the exe's UID
-#{"sistest"},(0xE4F8641B),1,0,0
-
-; S60 platform dependencies for S60 3.0 and 5.0
-[0x101F7961],0,0,0,{"Series60ProductID"}
-[0x1028315F],0,0,0,{"Series60ProductID"}
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Files
-"\epoc32\release\winscw\udeb\sistest.exe" - "c:\sys\bin\sistest.exe"
-
+;
+; 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:  Installation package file for sistest for WINSCW emulator
+;
+
+
+; UID is the exe's UID
+#{"sistest"},(0xE4F8641B),1,0,0
+
+; S60 platform dependencies for S60 3.0 and 5.0
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Files
+"\epoc32\release\winscw\udeb\sistest.exe" - "c:\sys\bin\sistest.exe"
+
--- a/appinstall_plat/appmngr2runtimeapi/tsrc/group/appmngr2runtimeapitest.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstall_plat/appmngr2runtimeapi/tsrc/group/appmngr2runtimeapitest.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,40 +1,40 @@
-;
-; Copyright (c) 2008-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:  Package file for AppMngr2 Runtime API STIF test
-;
-
-
-; Languages
-&EN
-
-; Standard SIS file header
-#{"AppMngr2 Runtime API STIF Test Module"},(0x101FB3E3),1,1,0,TYPE=SA
-
-; Dependencies to S60 3.0 and 5.0 releases
-[0x101F7961],0,0,0,{"Series60ProductID"}
-[0x1028315F],0,0,0,{"Series60ProductID"}
-
-; Unique Vendor name
-:"Nokia"
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Install files
-"\epoc32\release\armv5\urel\appmngr2runtimeapitest.dll"-"c:\sys\bin\appmngr2runtimeapitest.dll"
-"..\conf\ui_appmngr2runtimeapitest.cfg"-"c:\testframework\ui_appmngr2runtimeapitest.cfg"
-"..\init\TestFramework.ini"-"c:\testframework\TestFramework.ini"
-"..\data\mmc\sistest.sisx"-"e:\testing\data\sistest.sisx"
-"..\data\mmc\widgettest.wgz"-"e:\testing\data\widgettest.wgz"
-
+;
+; Copyright (c) 2008-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:  Package file for AppMngr2 Runtime API STIF test
+;
+
+
+; Languages
+&EN
+
+; Standard SIS file header
+#{"AppMngr2 Runtime API STIF Test Module"},(0x101FB3E3),1,1,0,TYPE=SA
+
+; Dependencies to S60 3.0 and 5.0 releases
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Install files
+"\epoc32\release\armv5\urel\appmngr2runtimeapitest.dll"-"c:\sys\bin\appmngr2runtimeapitest.dll"
+"..\conf\ui_appmngr2runtimeapitest.cfg"-"c:\testframework\ui_appmngr2runtimeapitest.cfg"
+"..\init\TestFramework.ini"-"c:\testframework\TestFramework.ini"
+"..\data\mmc\sistest.sisx"-"e:\testing\data\sistest.sisx"
+"..\data\mmc\widgettest.wgz"-"e:\testing\data\widgettest.wgz"
+
--- a/appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -398,8 +398,7 @@
                 }                            
             } // for loop
         
-        FLOG_1( _L("Daemon: appInfoArray.Count = %d"), appInfoArray.Count() ); 
-        
+        FLOG_1( _L("Daemon: appInfoArray.Count = %d"), appInfoArray.Count() );         
         // Check do we have updated some application info.
         if ( appInfoArray.Count() )
             {             
@@ -476,20 +475,6 @@
         // Check if component or part of it is in the media.
         if ( isInTargetDrive )
             {
-            FLOG( _L("Daemon: Set component status to SCR") );
-            // Update component flag to SCR. 
-            if ( aChangeType == EMediaInserted )
-                {  
-                FLOG( _L("Daemon: Set component present = TRUE") );                                  
-                TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, ETrue ) );                                                                            
-                }
-            else if ( aChangeType==EMediaRemoved )
-                {
-                FLOG( _L("Daemon: Set component present = FALSE") );                              
-                TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, EFalse ) );                                                                               
-                }            
-            FLOG_1( _L("Daemon: SetIsComponentPresentL TRAP err = %d"), err );
-            
             // We need to update applications status to AppArc when
             // there is some media change. AppArc needs application
             // UID (not package UID) so we need to get all app. UIDs
@@ -499,16 +484,16 @@
             FLOG( _L("Daemon: Get applications UIDs from SCR") );
             RArray<TUid> appUidArray;
             CleanupClosePushL( appUidArray );
-                        
+             
             TRAP( err, aScrServer.GetAppUidsForComponentL( aComponentId, appUidArray ) );
             FLOG_1( _L("Daemon: GetAppUidsForComponentL TRAP err = %d"), err );                        
             FLOG_1( _L("Daemon: UID array count = %d"), appUidArray.Count() );
-           
+            
             for (TInt index = 0; index < appUidArray.Count(); index++)
                 {
                 FLOG_1( _L("Daemon: Add app UID = 0x%x"), 
-                        appUidArray[index].iUid );                
-            
+                 appUidArray[index].iUid );                
+                
                 TApaAppUpdateInfo appInfo;
                 appInfo.iAppUid = appUidArray[index]; 
                 
@@ -525,7 +510,23 @@
                 
                 aAppInfoArray.Append( appInfo );   
                 }                           
-            CleanupStack::PopAndDestroy(&appUidArray);                                  
+            CleanupStack::PopAndDestroy(&appUidArray);
+// Set do not work, it will leave.
+/*            
+            FLOG( _L("Daemon: Set component status to SCR") );
+            // Update component flag to SCR. 
+            if ( aChangeType == EMediaInserted )
+                {  
+                FLOG( _L("Daemon: Set component present = TRUE") );                                  
+                TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, ETrue ) );                                                                            
+                }
+            else if ( aChangeType==EMediaRemoved )
+                {
+                FLOG( _L("Daemon: Set component present = FALSE") );                              
+                TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, EFalse ) );                                                                               
+                }            
+            FLOG_1( _L("Daemon: SetIsComponentPresentL TRAP err = %d"), err );
+*/                                                          
             }   // if isInTargetDrive        
         }   // if err
     
--- a/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUICertificateDetailsDialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUICertificateDetailsDialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -18,10 +18,10 @@
 
 
 // INCLUDE FILES
-#include <aknmessagequerydialog.h>
-#include <StringLoader.h>
+//#include <aknmessagequerydialog.h>
+//#include <StringLoader.h>
 #include <SWInstCommonUI.rsg>
-#include <AknUtils.h>
+//#include <AknUtils.h>
 #include <hash.h>                  
 
 #include "CUICertificateDetailsDialog.h"
@@ -88,6 +88,7 @@
                                                TInt aHeaderResourceId,
                                                const TDesC& aValue )
     {
+    /*
     HBufC* headerString = StringLoader::LoadLC( aHeaderResourceId );
     HBufC* newMessage;
     
@@ -119,7 +120,8 @@
     CleanupStack::PopAndDestroy( aMessage );  
   
     aMessage = newMessage;    
-    CleanupStack::PushL( aMessage );  
+    CleanupStack::PushL( aMessage );
+    */  
     }
 
 // -----------------------------------------------------------------------------
@@ -130,6 +132,7 @@
 //
 void CCUICertificateDetailsDialog::ExecuteLD( const CCUICertificateInfo& aCertInfo )
     {
+    /*
     CleanupStack::PushL( this );
     
     // Valid from
@@ -184,6 +187,7 @@
     dlg->RunLD();
 
     CleanupStack::PopAndDestroy( 7 );  // message, fingerprint_md, fingerprint, serial, validTo, validFrom
+    */
     }
 
 // -----------------------------------------------------------------------------
@@ -194,6 +198,7 @@
 //
 HBufC* CCUICertificateDetailsDialog::DateToStringLC( const TDateTime& aDate )
     {
+    /*
     // Create date descriptors.
     // We use Avkon date format string to format the date into correct format.
     HBufC* dateFormatString = StringLoader::LoadLC( R_QTN_DATE_USUAL_WITH_ZERO );
@@ -208,7 +213,9 @@
     TPtr ptr = tmp->Des();
     AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr ); 
 
-    return tmp;    
+    return tmp;   
+    */
+    return NULL;
     }
 
 // -----------------------------------------------------------------------------
--- a/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDetailsDialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDetailsDialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -18,15 +18,15 @@
 
 
 // INCLUDE FILES
-#include <aknmessagequerydialog.h>
-#include <aknlistquerydialog.h> // remove
-#include <StringLoader.h>
+//#include <aknmessagequerydialog.h>
+//#include <aknlistquerydialog.h> // remove
+//#include <StringLoader.h>
 #include <bautils.h>
 #include <eikenv.h>
 #include <data_caging_path_literals.hrh>
 #include <SWInstCommonUI.rsg>
 #include <pathinfo.h>
-#include <avkon.rsg>
+//#include <avkon.rsg>
 #include <DRMHelper.h>
 
 #include "CUIDetailsDialog.h"
@@ -49,7 +49,7 @@
 // -----------------------------------------------------------------------------
 //
 CCUIDetailsDialog::CCUIDetailsDialog()
-    : iCbaResourceId( R_AVKON_SOFTKEYS_OK_EMPTY )
+//    : iCbaResourceId( R_AVKON_SOFTKEYS_OK_EMPTY )
     {
     }
 
@@ -233,7 +233,7 @@
 TInt CCUIDetailsDialog::ShowDialogL( MCUIInfoIterator& aIterator )
     {
     TInt result( 0 );
-
+/*
     CleanupStack::PushL( this );
 
     PopulateArrayL( aIterator );
@@ -279,7 +279,7 @@
     
     result = dlg->RunLD();
     CleanupStack::PopAndDestroy( 2 ); // message, this
-
+*/
     return result;    
     }
 
@@ -344,6 +344,7 @@
 //
 HBufC* CCUIDetailsDialog::GetMessageDescriptorLC()
     {
+    /*
     TInt size( 0 ); 
     TInt index( 0 );
 
@@ -380,8 +381,10 @@
     CleanupStack::Pop( message );
     CleanupStack::PopAndDestroy( 2, type );
     CleanupStack::PushL( message );    
-
-    return message;    
+   
+    return message;
+    */
+    return NULL;
     }
 
 // -----------------------------------------------------------------------------
@@ -392,6 +395,7 @@
 //
 void CCUIDetailsDialog::AddCertificatesLC( HBufC*& aMessage )
     {
+    /*
     HBufC* certHeading = StringLoader::LoadLC( R_SWCOMMON_DETAIL_CERTIFICATES );
     HBufC* certificateLink = LoadLinkLC( R_SWCOMMON_DETAIL_VALUE_VIEW_CERT );
     HBufC* newString = HBufC::NewL( certHeading->Length() + 
@@ -411,6 +415,7 @@
   
     aMessage = newString;
     CleanupStack::PushL( aMessage ); 
+    */
     }
 
 // -----------------------------------------------------------------------------
@@ -421,6 +426,7 @@
 //
 void CCUIDetailsDialog::AddDrmLC( HBufC*& aMessage )
     {
+    /*
     HBufC* drmHeading = StringLoader::LoadLC( R_SWCOMMON_DETAIL_DRM );
     HBufC* drmLink = LoadLinkLC( R_SWCOMMON_DETAIL_VALUE_VIEW_DRM );
     HBufC* newString = HBufC::NewL( drmHeading->Length() + 
@@ -440,6 +446,7 @@
   
     aMessage = newString;
     CleanupStack::PushL( aMessage ); 
+    */
     }
 
 // -----------------------------------------------------------------------------
@@ -478,6 +485,7 @@
 //
 void CCUIDetailsDialog::DoShowCertificatesL()
     {
+    /*
     if ( iCommonCertificates.Count() > 1 )
         {
         CDesCArrayFlat *itemArray = new( ELeave ) CDesCArrayFlat( 2 );
@@ -520,7 +528,8 @@
             CCUICertificateDetailsDialog::NewL();
                 
         certDlg->ExecuteLD( *( iCommonCertificates[0] ) );    
-        }    
+        }  
+    */      
     }
 
 // -----------------------------------------------------------------------------
@@ -544,6 +553,7 @@
 //
 HBufC* CCUIDetailsDialog::LoadLinkLC( TInt aResourceId )
     {
+    /*
     HBufC* link = StringLoader::LoadLC( aResourceId );
     HBufC* tmp = link->ReAllocL( link->Length() + KLinkTagOpen().Length() + KLinkTagClose().Length() );
     
@@ -554,7 +564,9 @@
     link->Des().Insert(0, KLinkTagOpen);
     link->Des().Append( KLinkTagClose );   
 
-    return link;    
+    return link;   
+    */ 
+    return NULL;
     }
 
 //  End of File  
--- a/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDialogs.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDialogs.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -21,12 +21,12 @@
 #include <bautils.h>
 #include <eikenv.h>
 #include <StringLoader.h>
-#include <AknQueryDialog.h>
+//#include <AknQueryDialog.h> 
 #include <eikprogi.h>
-#include <aknnotewrappers.h>
+//#include <aknnotewrappers.h>
 #include <data_caging_path_literals.hrh>
 #include <SWInstCommonUI.rsg>
-#include <aknmessagequerydialog.h>
+//#include <aknmessagequerydialog.h>
 #include <hlplch.h>
 //#include <csxhelp/am.hlp.hrh>
 #include <coehelp.h>
@@ -35,7 +35,7 @@
 #ifdef RD_MULTIPLE_DRIVE
 #include <driveinfo.h>
 #endif //RD_MULTIPLE_DRIVE
-#include <akninputblock.h>
+//#include <akninputblock.h>
  
 #include "CUIDialogs.h"
 #include "CUIDriveUtils.h"
@@ -80,8 +80,8 @@
     fileName.Append( KCUIResourceFileName );
     iResourceFileOffset = CUIUtils::LoadResourceFileL( fileName, iCoeEnv );    
 
-    iAbsorber = CAknInputBlock::NewLC();
-    CleanupStack::Pop( iAbsorber );
+//    iAbsorber = CAknInputBlock::NewLC();
+//    CleanupStack::Pop( iAbsorber );
     
     FeatureManager::InitializeLibL(); 
     }
@@ -112,7 +112,7 @@
         iCoeEnv->DeleteResourceFile( iResourceFileOffset );
         }
 
-    delete iAbsorber;
+//    delete iAbsorber;
 
     FeatureManager::UnInitializeLib();
     }
@@ -285,7 +285,7 @@
                                                     TInt aSoftkeyResourceId ) const
     {
     TBool response( EFalse );
-
+/*
     CAknQueryDialog* note = 
         CAknQueryDialog::NewL( CAknQueryDialog::EConfirmationTone );
 
@@ -297,7 +297,7 @@
         {
         response = ETrue;
         }   
-
+*/
     return response;    
     }
 
@@ -312,9 +312,10 @@
     const RArray<TDriveUnit>& aDriveUnits,
     const RArray<TInt64>& aDriveSpaces,
     TInt& aSelectionResult )
-    {   
+    {  
+    
     TInt result( KErrNone );
-
+/*
     // Sanity check
     if ( aSize <= 0 )
         {
@@ -439,7 +440,7 @@
         }    
     
     CleanupStack::PopAndDestroy( driveUtils );
-
+*/
     return result;
     }
 
@@ -450,9 +451,10 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C TBool CCUIDialogs::ShowSecurityWarningDialogL()
-    {   
+    { 
+    
     TBool result( EFalse );
-    
+    /*
     // Load resources
     HBufC* text = StringLoader::LoadLC( R_SWCOMMON_SECURITY_WARNING );
     HBufC* linkText = NULL;
@@ -490,7 +492,7 @@
         }    
     
     CleanupStack::PopAndDestroy( 3, text ); // message, linkText, text
-
+     */
     return result;    
     }
  
@@ -515,8 +517,10 @@
 //
 EXPORT_C void CCUIDialogs::ShowErrorNoteL( const TDesC& aErrorText ) const
     {
+    /*
     CAknErrorNote* note = new (ELeave) CAknErrorNote( ETrue );
     note->ExecuteLD( aErrorText );
+    */
     }
 
 // -----------------------------------------------------------------------------
@@ -597,6 +601,7 @@
                                         TInt& aIndexOfAppToBeStarted ) const
            
     {
+    /*
     aIndexOfAppToBeStarted = KErrNotFound;
     
     // Prepare for showing the installation complete query
@@ -675,7 +680,9 @@
     	aIndexOfAppToBeStarted = KErrNotFound;	
     	}    
 
-    return appIsStarted;	
+    return appIsStarted;
+    */
+    return EFalse;
     }   
     
 // -----------------------------------------------------------------------------
@@ -689,6 +696,7 @@
                                 const MDesCArray& aApplicationArray,
                                 TInt aSoftkeyResourceId ) const
 	{
+    /*
     HBufC* appList = HBufC::NewLC( 0 ); 
     TInt count = aApplicationArray.MdcaCount();   
     for ( TInt i = 0; i < count; i++ )
@@ -731,6 +739,8 @@
         }
     CleanupStack::PopAndDestroy( message );
     return response; 
+    */
+    return EFalse;
 	}                                
                                      
 
--- a/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDriveUtils.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIDriveUtils.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -22,13 +22,13 @@
 #include <pathinfo.h>
 #include <data_caging_path_literals.hrh>
 #include <SWInstCommonUI.rsg>
-#include <AknCommonDialogs.h>
-#include <CAknMemorySelectionDialog.h>
+//#include <AknCommonDialogs.h> // Removed since CR 548
+//#include <CAknMemorySelectionDialog.h> // Removed since CR 548
 #ifdef RD_MULTIPLE_DRIVE 
-#include <CAknMemorySelectionDialogMultiDrive.h>
-#include <AknCommonDialogsDynMem.h>
+//#include <CAknMemorySelectionDialogMultiDrive.h> // Removed since CR 548
+//#include <AknCommonDialogsDynMem.h> // Removed since CR 548
 #else
-#include <CAknMemorySelectionDialog.h>
+//#include <CAknMemorySelectionDialog.h> // Removed since CR 548
 #endif //RD_MULTIPLE_DRIVE
 
 #include "CUIDriveUtils.h"
@@ -119,9 +119,12 @@
 // -----------------------------------------------------------------------------
 //
 TBool CCUIDriveUtils::ShowSelectionDialogL( TInt& aSelectedDrive )
-    {       
+    {  
+
     TBool result( EFalse );
     
+    // Removed since CR 548   
+/*    
     aSelectedDrive = 0;    
 
 #ifdef RD_MULTIPLE_DRIVE           
@@ -230,7 +233,7 @@
 
 #endif  //RD_MULTIPLE_DRIVE  
     CleanupStack::PopAndDestroy( 2 ); // header, memoryDialog
- 
+*/ 
     return result;    
     }    
 
--- a/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIProgressDialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/Plugin/CommonUI/Src/CUIProgressDialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -40,11 +40,13 @@
 // Destructor
 CCUIProgressDialog::~CCUIProgressDialog()
     {
+    
     if (iSelfPtr) 
         {
         *iSelfPtr = NULL;
         iSelfPtr = NULL;
         }
+    
     }
 
 // ---------------------------------------------------------------------------
--- a/appinstaller/AppinstUi/group/SWInstCommonUI.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/group/SWInstCommonUI.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -67,7 +67,7 @@
 LIBRARY         eikdlg.lib 
 LIBRARY         eikctl.lib
 LIBRARY         platformenv.lib
-LIBRARY         commondialogs.lib
+//LIBRARY         commondialogs.lib  // Removed since CR 548
 LIBRARY         efsrv.lib
 LIBRARY         X509CertNameParser.lib
 LIBRARY         x509.lib
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Thu Jun 24 12:37:54 2010 +0300
@@ -53,9 +53,6 @@
     void closeDeviceDialog(bool byClient);
     HbDialog *deviceDialogWidget() const;
 
-protected:  // from HbDialog
-    void closeEvent(QCloseEvent *event);
-
 signals:
     void deviceDialogClosed();
     void deviceDialogData(const QVariantMap &data);
@@ -92,7 +89,6 @@
     SifUiDialogContentWidget *mContent;
     int mInstallError;
     QVariantMap mResultMap;
-    HbAction *mIgnoreCloseAction;
     HbAction *mPrimaryAction;
     HbAction *mSecondaryAction;
     HbIndicator *mIndicator;
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcontentwidget.h	Thu Jun 24 12:37:54 2010 +0300
@@ -54,6 +54,7 @@
     void removeDetails();
     void addDetails(const QStringList &detailList);
     void addDetail(const QString &detailText);
+    void createAppName(const QString &appName);
     void updateAppIcon(const QVariantMap &parameters);
     void updateAppSize(const QVariantMap &parameters);
     bool updateMemorySelection(const QVariantMap &parameters);
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -44,9 +44,8 @@
 SifUiDialog::SifUiDialog(const QVariantMap &parameters) : HbDialog(),
     mCommonTranslator(0), mSifUITranslator(0), mLastDialogError(KErrNone),
     mShowEventReceived(false), mDialogType(SifUiUnspecifiedDialog),
-    mTitle(0), mContent(0), mResultMap(),
-    mIgnoreCloseAction(0), mPrimaryAction(0), mSecondaryAction(0),
-    mIndicator(0), mSubscriber(0)
+    mTitle(0), mContent(0), mResultMap(), mPrimaryAction(0),
+    mSecondaryAction(0), mIndicator(0), mSubscriber(0)
 {
     mCommonTranslator = new HbTranslator(KTranslationsPath, KCommonTranslationsFile);
     mSifUITranslator = new HbTranslator(KTranslationsPath, KSifUiTranslationsFile);
@@ -62,7 +61,6 @@
     delete mSubscriber;
     delete mPrimaryAction;
     delete mSecondaryAction;
-    mIgnoreCloseAction = 0;
     delete mSifUITranslator;
     delete mCommonTranslator;
 }
@@ -127,23 +125,6 @@
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialog::closeEvent()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialog::closeEvent(QCloseEvent *event)
-{
-    if (mIgnoreCloseAction) {
-        HbAction *closingAction = qobject_cast<HbAction *>(sender());
-        if (closingAction == mIgnoreCloseAction) {
-            // Prevents the dialog from begin closed when "Ok" pressed
-            event->ignore();
-            return;
-        }
-    }
-    HbDialog::closeEvent(event);
-}
-
-// ----------------------------------------------------------------------------
 // SifUiDialog::hideEvent()
 // ----------------------------------------------------------------------------
 //
@@ -232,7 +213,11 @@
         updateButtons(parameters);
     }
     if (parameters.contains(KSifUiErrorCode)) {
-        mInstallError = parameters.value(KSifUiErrorCode).toInt();
+        bool ok = false;
+        int errorCode = parameters.value(KSifUiErrorCode).toInt(&ok);
+        if (ok) {
+            mInstallError = errorCode;
+        }
     }
     return true;
 }
@@ -243,8 +228,6 @@
 //
 void SifUiDialog::updateButtons(const QVariantMap &parameters)
 {
-    mIgnoreCloseAction = 0;
-
     if (mPrimaryAction) {
         removeAction(mPrimaryAction);
         delete mPrimaryAction;
@@ -254,21 +237,25 @@
         case SifUiConfirmationQuery:
             //: Accepts the SW install confirmation query and starts installation.
             mPrimaryAction = new HbAction(hbTrId("txt_common_button_ok"));
+            addAction(mPrimaryAction);
+            disconnect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(close()));
             connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleAccepted()));
-            mIgnoreCloseAction = mPrimaryAction;
             break;
         case SifUiProgressNote:
             if (!parameters.contains(KSifUiProgressNoteIsHideButtonHidden)) {
                 //: Hides the progress dialog. Progress note moves into universal indicator.
                 mPrimaryAction = new HbAction(hbTrId("txt_common_button_hide"));
+                addAction(mPrimaryAction);
+                disconnect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(close()));
                 connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleHidePressed()));
-                mIgnoreCloseAction = mPrimaryAction;
             }
             break;
         case SifUiCompleteNote:
             if (!parameters.contains(KSifUiCompleteNoteIsShowButtonHidden)) {
                 //: Opens Application Library to view the installed application.
                 mPrimaryAction = new HbAction(hbTrId("txt_installer_button_show"));
+                addAction(mPrimaryAction);
+                disconnect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(close()));
                 connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleShowInstalled()));
             }
             break;
@@ -276,16 +263,14 @@
             if (!parameters.contains(KSifUiErrorNoteIsDetailsButtonHidden)) {
                 //: Shows a dialog with further info about the failure (i.e. why installation failed).
                 mPrimaryAction = new HbAction(hbTrId("txt_installer_button_details"));
+                addAction(mPrimaryAction);
+                disconnect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(close()));
                 connect(mPrimaryAction, SIGNAL(triggered()), this, SLOT(handleErrorDetails()));
-                mIgnoreCloseAction = mPrimaryAction;
             }
             break;
         default:
             break;
     }
-    if (mPrimaryAction) {
-        addAction(mPrimaryAction);
-    }
 
     if (mSecondaryAction) {
         removeAction(mSecondaryAction);
@@ -298,6 +283,8 @@
             if (!parameters.contains(KSifUiProgressNoteIsCancelButtonHidden)) {
                 //: Cancels the SW install confirmation query and closes the dialog.
                 mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel"));
+                addAction(mSecondaryAction);
+                disconnect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(close()));
                 connect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(handleCancelled()));
             }
             break;
@@ -305,14 +292,11 @@
         case SifUiErrorNote:
             //: Closes the dialog. Control returns back to where the installation was started.
             mSecondaryAction = new HbAction(hbTrId("txt_common_button_close"));
-            connect(mSecondaryAction, SIGNAL(triggered()), this, SLOT(close()));
+            addAction(mSecondaryAction);
             break;
         default:
             break;
     }
-    if (mSecondaryAction) {
-        addAction(mSecondaryAction);
-    }
 }
 
 // ----------------------------------------------------------------------------
@@ -343,6 +327,7 @@
 void SifUiDialog::handleCancelled()
 {
     sendResult(SifUiCancel);
+    close();
 }
 
 // ----------------------------------------------------------------------------
@@ -387,6 +372,8 @@
         }
         delete request;
     }
+
+    close();
 }
 
 // ----------------------------------------------------------------------------
@@ -397,7 +384,7 @@
 {
     // TODO: show proper error details dialog
     QString messageText;
-    messageText = tr("Not implemented yet.\n\nError code %1").arg(mInstallError);
+    messageText = tr("Error code %1").arg(mInstallError);
 
     if (QFile::exists(KSwiErrorsFile)) {
         messageText.append(KSwiErrorFormat.arg(mInstallError));
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -138,8 +138,7 @@
     // Application name and version
     Q_ASSERT(mAppDetailsLayout == 0);
     mAppDetailsLayout = new QGraphicsLinearLayout(Qt::Vertical);
-    Q_ASSERT(mAppName == 0);
-    mAppName = new HbLabel(applicationName(parameters));
+    createAppName(applicationName(parameters));
     mAppDetailsLayout->addItem(mAppName);
 
     // Application size
@@ -199,9 +198,8 @@
                 mAppName->setPlainText(appNameStr);
             }
         } else {
-            HbLabel *appName = new HbLabel(appNameStr);
-            mAppDetailsLayout->insertItem(KAppNameIndex, appName);
-            mAppName = appName;
+            createAppName(appNameStr);
+            mAppDetailsLayout->insertItem(KAppNameIndex, mAppName);
         }
     }
 
@@ -352,10 +350,24 @@
 {
     Q_ASSERT(mAppDetailsLayout != 0);
     HbLabel *detailItem = new HbLabel(detailText);
+    detailItem->setTextWrapping(Hb::TextWordWrap);
+    detailItem->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
     mAppDetailsLayout->addItem(detailItem);
 }
 
 // ----------------------------------------------------------------------------
+// SifUiDialogContentWidget::createAppName()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogContentWidget::createAppName(const QString &appName)
+{
+    Q_ASSERT(mAppName == 0);
+    mAppName = new HbLabel(appName);
+    mAppName->setTextWrapping(Hb::TextWordWrap);
+    mAppName->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
+}
+
+// ----------------------------------------------------------------------------
 // SifUiDialogContentWidget::updateAppIcon()
 // ----------------------------------------------------------------------------
 //
@@ -402,6 +414,8 @@
                 }
             } else {
                 HbLabel *appSize = new HbLabel(appSizeStr);
+                appSize->setTextWrapping(Hb::TextWordWrap);
+                appSize->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
                 mAppDetailsLayout->insertItem(KAppSizeIndex, appSize);
                 mAppSize = appSize;
             }
@@ -431,14 +445,18 @@
                         //: Drive name for internal phone memory with megabytes of free space.
                         //: %1 is replaced with drive letter (usually 'C')
                         //: %2 is replaced with available free space (in megabytes, MB)
-                        //TODO: use hbTrId("txt_sisxui_device_memory_mb") when available
+                        //TODO: enable when available
+                        //driveList.append(hbTrId("txt_installer_device_memory_mb")
+                        //    .arg(volume).arg(size/KSifUiMega));
                         driveList.append(tr("%1: Device (%L2 MB free)"
                             ).arg(volume).arg(size/KSifUiMega));
                     } else {
                         //: Drive name for internal phone memory with kilobytes of free space.
                         //: %1 is replaced with drive letter (usually 'C')
                         //: %2 is replaced with available free space (in kilobytes, kB)
-                        //TODO: use hbTrId("txt_sisxui_device_memory_kb") when available
+                        //TODO: enable when available
+                        //driveList.append(hbTrId("txt_installer_device_memory_kb")
+                        //    .arg(volume).arg(size/KSifUiKilo));
                         driveList.append(tr("%1: Device (%L2 kB free)"
                             ).arg(volume).arg(size/KSifUiKilo));
                     }
@@ -448,14 +466,18 @@
                         //: Drive name for mass storage with megabytes of free space.
                         //: %1 is replaced with drive letter (usually 'E')
                         //: %2 is replaced with available free space (in megabytes, MB)
-                        // TODO: use hbTrId("txt_sisxui_mass_storage_mb") when available
+                        // TODO: enable when available
+                        //driveList.append(hbTrId("txt_installer_mass_storage_mb")
+                        //    .arg(volume).arg(size/KSifUiMega));
                         driveList.append(tr("%1: Mass.mem (%L2 MB free)"
                             ).arg(volume).arg(size/KSifUiMega));
                     } else {
                         //: Drive name for mass storage with kilobytes of free space.
                         //: %1 is replaced with drive letter (usually 'E')
                         //: %2 is replaced with available free space (in kilobytes, kB)
-                        // TODO: use hbTrId("txt_sisxui_mass_storage_kb") when available
+                        // TODO: enable when available
+                        //driveList.append(hbTrId("txt_installer_mass_storage_kb")
+                        //    .arg(volume).arg(size/KSifUiKilo));
                         driveList.append(tr("%1: Mass.mem (%L2 kB free)"
                             ).arg(volume).arg(size/KSifUiKilo));
                     }
@@ -465,14 +487,18 @@
                         //: Drive name for memory card with megabytes of free space.
                         //: %1 is replaced with drive letter (usually 'F')
                         //: %2 is replaced with available free space (in megabytes, MB)
-                        // TODO: use hbTrId("txt_sisxui_memory_card_mb") when available
+                        // TODO: enable when available
+                        //driveList.append(hbTrId("txt_installer_memory_card_mb")
+                        //    .arg(volume).arg(size/KSifUiMega));
                         driveList.append(tr("%1: Mem.card (%L2 MB free)"
                             ).arg(volume).arg(size/KSifUiMega));
                     } else {
                         //: Drive name for memory card with kilobytes of free space.
                         //: %1 is replaced with drive letter (usually 'F')
                         //: %2 is replaced with available free space (in kilobytes, kB)
-                        // TODO: use hbTrId("txt_sisxui_memory_card_kb") when available
+                        // TODO: enable when available
+                        //driveList.append(hbTrId("txt_installer_memory_card_kb")
+                        //    .arg(volume).arg(size/KSifUiKilo));
                         driveList.append(tr("%1: Mem.card (%L2 kB free)"
                             ).arg(volume).arg(size/KSifUiKilo));
                     }
--- a/appinstaller/AppinstUi/sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.pro	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.pro	Thu Jun 24 12:37:54 2010 +0300
@@ -48,5 +48,5 @@
 
 BLD_INF_RULES.prj_exports += \
     "$${LITERAL_HASH}include <platform_paths.hrh>" \
-    "rom/sifuiinstallindicatorplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(sifuiinstallindicatorplugin.iby)"
+    "rom/sifuiinstallindicatorplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sifuiinstallindicatorplugin.iby)"
 
--- a/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -37,6 +37,7 @@
 SOURCE          sisxsifpluginuihandler.cpp
 SOURCE          sisxsifpluginuihandlersilent.cpp
 SOURCE          sisxsifplugininstallparams.cpp
+SOURCE          sisxsifpluginerrorhandler.cpp
 SOURCE          sisxsifuiselectioncache.cpp
 
 USERINCLUDE     ../inc
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Thu Jun 24 12:37:54 2010 +0300
@@ -37,6 +37,7 @@
 {
     class CSisxSifPluginUiHandlerBase;
     class CSisxSifPluginInstallParams;
+    class CSisxSifPluginErrorHandler;
 
     /**
      *  SISX SIF plugin active implementation
@@ -93,7 +94,6 @@
         void DoActivateL( TComponentId aComponentId, TRequestStatus& aStatus );
         void DoDeactivateL( TComponentId aComponentId, TRequestStatus& aStatus );
         void DoHandleErrorL( TInt aError );
-        TErrorCategory ErrorCategory( TInt aErrorCode );
         void SetFileL( const TDesC& aFileName );
         void SetFile( RFile& aFileHandle );
         TComponentId GetLastInstalledComponentIdL();
@@ -113,6 +113,7 @@
         const COpaqueNamedParams* iInputParams;     // not owned
         COpaqueNamedParams* iOutputParams;      // not owned
         CSisxSifPluginInstallParams* iInstallParams;
+        CSisxSifPluginErrorHandler* iErrorHandler;
         CComponentInfo* iComponentInfo;
         TBool iHasAllFilesCapability;
         HBufC* iFileName;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrorhandler.h	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2008-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:  CSisxSifPluginErrorHandler collects information
+*               about errors. Error details are then passed to
+*               framework (USIF).
+*
+*/
+
+#ifndef C_SISXSIFPLUGINERRORHANDLER_H
+#define C_SISXSIFPLUGINERRORHANDLER_H
+
+#include <e32base.h>                    // CBase
+#include <usif/usiferror.h>             // TErrorCategory
+
+namespace Usif
+{
+    class COpaqueNamedParams;
+
+
+    /**
+     *  Native SISX installation error class.
+     */
+    class CSisxSifPluginErrorHandler : public CBase
+        {
+        public:     // constructor and destructor
+            static CSisxSifPluginErrorHandler* NewL();
+            ~CSisxSifPluginErrorHandler();
+
+        public:     // new functions
+            TErrorCategory  ErrorCategory() const;
+            void FillOutputParamsL( COpaqueNamedParams& aOutputParams ) const;
+
+            TInt ErrorCode() const;
+            void SetErrorCode( TInt aErrorCode );
+            TInt ExtendedErrorCode() const;
+            void SetExtendedErrorCode( TInt aExtendedErrorCode );
+            const TDesC& ErrorMessage() const;
+            void SetErrorMessage( const TDesC& aErrorMessage );
+            const TDesC& ErrorMessageDetails() const;
+            void SetErrorMessageDetails( const TDesC& aErrorMessageDetails );
+
+        private:    // new functions
+            CSisxSifPluginErrorHandler();
+            void ConstructL();
+
+        private:    // data
+            TInt iErrorCode;
+            TInt iExtendedErrorCode;
+            HBufC* iErrorMessage;
+            HBufC* iErrorMessageDetails;
+        };
+
+}   // namespace Usif
+
+#endif // C_SISXSIFPLUGINERRORHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginerrors.h	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2008-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:  Detailed error codes for KErrPermissionDenined errors.
+*
+*/
+
+#ifndef SISXSIFPLUGINERRORS_H
+#define SISXSIFPLUGINERRORS_H
+
+enum TSisxSifPluginErrors
+    {
+    ETrustedUICapabilityRequired = 1,       // TrustedUI capability required
+    ENeedsAllowUntrustedParameter = 2,      // AllowUntrusted parameter needed
+    ENeedsGrantCapabilitiesParameter = 3,   // GrantCapabilities parameter needed
+    EAllFilesCapabilityRequired = 4         // AllFiles capability required
+    };
+
+#endif // SISXSIFPLUGINERRORS_H
+
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h	Thu Jun 24 12:37:54 2010 +0300
@@ -49,6 +49,7 @@
         TSifPolicy AllowAppBreakDependency() const;
         TSifPolicy AllowOverwrite() const;
         TSifPolicy PackageInfo() const;
+        TSifPolicy AllowIncompatible() const;
 
     private:    // new functions
         CSisxSifPluginInstallParams();
@@ -77,6 +78,7 @@
         TSifPolicy iAllowAppBreakDependency;
         TSifPolicy iAllowOverwrite;
         TSifPolicy iPackageInfo;
+        TSifPolicy iAllowIncompatible;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Thu Jun 24 12:37:54 2010 +0300
@@ -34,7 +34,8 @@
     class CSisxSifPluginUiHandler : public CSisxSifPluginUiHandlerBase
         {
     public:     // constructors and destructor
-        static CSisxSifPluginUiHandler* NewL( RFs& aFs );
+        static CSisxSifPluginUiHandler* NewL( RFs& aFs,
+                CSisxSifPluginErrorHandler& aErrorHandler );
         ~CSisxSifPluginUiHandler();
 
     public:     // from MUiHandler (via CSisxSifPluginUiHandlerBase)
@@ -88,14 +89,13 @@
     public:     // from CSisxSifPluginUiHandlerBase
         void DisplayPreparingInstallL( const TDesC& aFileName );
         void DisplayCompleteL();
-        void DisplayFailedL( TErrorCategory aCategory, TInt aErrorCode,
-                const TDesC& aErrorMessage, const TDesC& aErrorDetails );
+        void DisplayFailedL( const CSisxSifPluginErrorHandler& aError );
 
     public:     // new functions
         void SetDriveSelectionRequired( TBool aIsRequired );
 
     private:    // new functions
-        CSisxSifPluginUiHandler( RFs& aFs );
+        CSisxSifPluginUiHandler( RFs& aFs, CSisxSifPluginErrorHandler& aErrorHandler );
         void ConstructL();
         void AddMemorySelectionL();
         void AddCertificatesL( RPointerArray<Swi::CCertificateInfo>& aCertificates,
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Thu Jun 24 12:37:54 2010 +0300
@@ -29,6 +29,7 @@
 namespace Usif
 {
     class CSisxSifPluginInstallParams;
+    class CSisxSifPluginErrorHandler;
 
 
     /**
@@ -37,14 +38,13 @@
     class CSisxSifPluginUiHandlerBase : public CBase, public Swi::MUiHandler
         {
     public:     // constructors and destructor
-        CSisxSifPluginUiHandlerBase( RFs& aFs );
+        CSisxSifPluginUiHandlerBase( RFs& aFs, CSisxSifPluginErrorHandler& aErrorHandler );
         ~CSisxSifPluginUiHandlerBase();
 
     public:     // new functions
         virtual void DisplayPreparingInstallL( const TDesC& aFileName ) = 0;
         virtual void DisplayCompleteL() = 0;
-        virtual void DisplayFailedL( TErrorCategory aCategory, TInt aErrorCode,
-                const TDesC& aErrorMessage, const TDesC& aErrorDetails ) = 0;
+        virtual void DisplayFailedL( const CSisxSifPluginErrorHandler& aError ) = 0;
 
     public:     // new functions
         void SetInstallParamsL( const CSisxSifPluginInstallParams& aInstallParams );
@@ -53,11 +53,14 @@
         void PublishStartL( const CComponentInfo::CNode& aRootNode );
         void PublishProgressL( TSifOperationPhase aPhase, TSifOperationSubPhase aSubPhase,
                 TInt aCurrentProgress, TInt aTotal );
-        void PublishCompletionL( TErrorCategory aErrorCategory, TInt aErrorCode,
-                const TDesC& aErrorMessage, const TDesC& aErrorDetails );
+        void PublishCompletionL( const CSisxSifPluginErrorHandler& aError );
+
+    protected:  // new functions
+        void SetDisplayErrorL( Swi::TErrorDialog aType, const TDesC& aParam );
 
     protected:	// data
         RFs& iFs;
+        CSisxSifPluginErrorHandler& iErrorHandler;
         TInt iMaxInstalledSize;
         TBool iIsDriveSelectionRequired;
         CSisxSifPluginInstallParams* iInstallParams;
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h	Thu Jun 24 12:37:54 2010 +0300
@@ -30,7 +30,8 @@
     class CSisxSifPluginUiHandlerSilent : public CSisxSifPluginUiHandlerBase
         {
     public:     // constructors and destructor
-        static CSisxSifPluginUiHandlerSilent* NewL( RFs& aFs );
+        static CSisxSifPluginUiHandlerSilent* NewL( RFs& aFs,
+                CSisxSifPluginErrorHandler& aErrorHandler );
         ~CSisxSifPluginUiHandlerSilent();
 
     public:     // from MUiHandler (via CSisxSifPluginUiHandlerBase)
@@ -84,11 +85,10 @@
     public:     // from CSisxSifPluginUiHandlerBase
         void DisplayPreparingInstallL( const TDesC& aFileName );
         void DisplayCompleteL();
-        void DisplayFailedL( TErrorCategory aCategory, TInt aErrorCode,
-                const TDesC& aErrorMessage, const TDesC& aErrorDetails );
+        void DisplayFailedL( const CSisxSifPluginErrorHandler& aError );
 
     protected:  // new functions
-        CSisxSifPluginUiHandlerSilent( RFs& aFs );
+        CSisxSifPluginUiHandlerSilent( RFs& aFs, CSisxSifPluginErrorHandler& aErrorHandler );
 
     private:    // new functions
         void ConstructL();
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -20,12 +20,12 @@
 #include "sisxsifpluginuihandler.h"         // CSisxSifPluginUiHandler
 #include "sisxsifpluginuihandlersilent.h"   // CSisxSifPluginUiHandlerSilent
 #include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
+#include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
+#include "sisxsifpluginerrors.h"            // Error codes
 #include "sisxsifplugin.pan"                // Panic codes
 #include <usif/sif/sifcommon.h>             // Usif::CComponentInfo
 #include <usif/scr/scr.h>                   // RSoftwareComponentRegistry
-#include <usif/usiferror.h>                 // SIF error codes
-#include <swi/sisinstallerrors.h>           // SWI error codes
 #include <swi/asynclauncher.h>              // Swi::CAsyncLauncher
 #include <swi/sisregistrysession.h>         // RSisRegistrySession
 #include "sisregistrywritablesession.h"     // RSisRegistryWritableSession
@@ -85,6 +85,7 @@
     delete iInstallParams;
     delete iComponentInfo;
     delete iFileName;
+    delete iErrorHandler;
     FeatureManager::UnInitializeLib();
     iFs.Close();
     }
@@ -345,6 +346,7 @@
 	if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
 		{
 		FLOG( _L( "CSisxSifPluginActiveImpl::Uninstall, missing ECapabilityTrustedUI") );
+		iErrorHandler->SetExtendedErrorCode( ETrustedUICapabilityRequired );
 		CompleteClientRequest( KErrPermissionDenied );
 		return;
 		}
@@ -382,7 +384,6 @@
         {
         FLOG_1( _L("CSisxSifPluginActiveImpl::Activate, DoActivateL ERROR %d"), error );
         CompleteClientRequest( error );
-        return;
         }
     }
 
@@ -411,7 +412,6 @@
         {
         FLOG_1( _L("CSisxSifPluginActiveImpl::Deactivate, DoDeactivateL ERROR %d"), error );
         CompleteClientRequest( error );
-        return;
         }
     }
 
@@ -436,6 +436,7 @@
     iAsyncLauncher = Swi::CAsyncLauncher::NewL();
     iInstallPrefs = Swi::CInstallPrefs::NewL();
     iComponentInfo = CComponentInfo::NewL();
+    iErrorHandler = CSisxSifPluginErrorHandler::NewL();
     }
 
 // ---------------------------------------------------------------------------
@@ -506,11 +507,11 @@
     	}
 	if( IsSilentMode() )
 		{
-		iUiHandler = CSisxSifPluginUiHandlerSilent::NewL( iFs );
+		iUiHandler = CSisxSifPluginUiHandlerSilent::NewL( iFs, *iErrorHandler );
 		}
 	else
 		{
-		iUiHandler = CSisxSifPluginUiHandler::NewL( iFs );
+		iUiHandler = CSisxSifPluginUiHandler::NewL( iFs, *iErrorHandler );
 		}
 	if( iInstallParams )
 		{
@@ -588,6 +589,7 @@
         if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
             {
             FLOG( _L("CSisxSifPluginActiveImpl::Install, missing ECapabilityTrustedUI") );
+            iErrorHandler->SetExtendedErrorCode( ETrustedUICapabilityRequired );
             CompleteClientRequest( KErrPermissionDenied );
             return;
             }
@@ -704,191 +706,18 @@
     {
     FLOG_1( _L("CSisxSifPluginActiveImpl::DoHandleErrorL(), aError=%d"), aError );
 
-    TErrorCategory category = ErrorCategory( aError );
+    iErrorHandler->SetErrorCode( aError );
     if( iOutputParams )
         {
-        iOutputParams->AddIntL( KSifOutParam_ErrCode, aError );
-        iOutputParams->AddIntL( KSifOutParam_ExtendedErrCode, aError );
-        iOutputParams->AddIntL( KSifOutParam_ErrCategory, category );
-        // TODO: how to get error message and detailed error message?
-        // iOutputParams->AddStringL( KSifOutParam_ErrMessage, TBD );
-        // iOutputParams->AddStringL( KSifOutParam_ErrMessageDetails, TBD );
+        iErrorHandler->FillOutputParamsL( *iOutputParams );
         }
 
     if( aError != KErrNone && aError != KErrCancel )
         {
-        // TODO: proper error messages
-        iUiHandler->DisplayFailedL( category, aError, KNullDesC, KNullDesC );
+        iUiHandler->DisplayFailedL( *iErrorHandler );
         }
 
-    // TODO: proper error messages
-    iUiHandler->PublishCompletionL( category, aError, KNullDesC, KNullDesC  );
-    }
-
-// ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::ErrorCategory()
-// ---------------------------------------------------------------------------
-//
-TErrorCategory CSisxSifPluginActiveImpl::ErrorCategory( TInt aErrorCode )
-    {
-    switch( aErrorCode )
-        {
-        // System-wide error codes
-        case KErrNone:
-            return ENone;
-        case KErrNotFound:
-        case KErrGeneral:
-            return EUnexpectedError;
-        case KErrCancel:
-            return EUserCancelled;
-        case KErrNoMemory:
-            return ELowMemory;
-        case KErrNotSupported:
-        case KErrArgument:
-        case KErrTotalLossOfPrecision:
-        case KErrBadHandle:
-        case KErrOverflow:
-        case KErrUnderflow:
-        case KErrAlreadyExists:
-        case KErrPathNotFound:
-        case KErrDied:
-            return EUnexpectedError;
-        case KErrInUse:
-            return EInstallerBusy;
-        case KErrServerTerminated:
-        case KErrServerBusy:
-        case KErrCompletion:
-        case KErrNotReady:
-        case KErrUnknown:
-            return EUnexpectedError;
-        case KErrCorrupt:
-            return ECorruptedPackage;
-        case KErrAccessDenied:
-            return ESecurityError;
-        case KErrLocked:
-        case KErrWrite:
-        case KErrDisMounted:
-        case KErrEof:
-            return EUnexpectedError;
-        case KErrDiskFull:
-            return ELowDiskSpace;
-        case KErrBadDriver:
-        case KErrBadName:
-        case KErrCommsLineFail:
-        case KErrCommsFrame:
-        case KErrCommsOverrun:
-        case KErrCommsParity:
-        case KErrTimedOut:
-        case KErrCouldNotConnect:
-        case KErrCouldNotDisconnect:
-        case KErrDisconnected:
-        case KErrBadLibraryEntryPoint:
-        case KErrBadDescriptor:
-        case KErrAbort:
-        case KErrTooBig:
-        case KErrDivideByZero:
-        case KErrBadPower:
-        case KErrDirFull:
-        case KErrHardwareNotAvailable:
-        case KErrSessionClosed:
-            return EUnexpectedError;
-        case KErrPermissionDenied:
-            return ESecurityError;
-        case KErrExtensionNotSupported:
-        case KErrCommsBreak:
-        case KErrNoSecureTime:
-            return EUnexpectedError;
-
-        // Native SW Installer error codes
-        case KErrSISFieldIdMissing:
-        case KErrSISFieldLengthMissing:
-        case KErrSISFieldLengthInvalid:
-        case KErrSISStringInvalidLength:
-        case KErrSISSignedControllerSISControllerMissing:
-        case KErrSISControllerSISInfoMissing:
-        case KErrSISInfoSISUidMissing:
-        case KErrSISInfoSISNamesMissing:
-            return ECorruptedPackage;
-        case KErrSISFieldBufferTooShort:
-            return EUnexpectedError;
-        case KErrSISStringArrayInvalidElement:
-        case KErrSISInfoSISVendorNamesMissing:
-        case KErrSISInfoSISVersionMissing:
-        case KErrSISControllerSISSupportedLanguagesMissing:
-        case KErrSISSupportedLanguagesInvalidElement:
-        case KErrSISLanguageInvalidLength:
-        case KErrSISContentsSISSignedControllerMissing:
-        case KErrSISContentsSISDataMissing:
-        case KErrSISDataSISFileDataUnitMissing:
-        case KErrSISFileDataUnitTargetMissing:
-        case KErrSISFileOptionsMissing:
-        case KErrSISFileDataUnitDescriptorMissing:
-        case KErrSISFileDataDescriptionMissing:
-        case KErrSISContentsMissing:
-        case KErrSISEmbeddedControllersMissing:
-        case KErrSISEmbeddedDataUnitsMissing:
-        case KErrSISControllerOptionsMissing:
-        case KErrSISExpressionMissing:
-        case KErrSISExpressionStringValueMissing:
-        case KErrSISOptionsStringMissing:
-        case KErrSISFileOptionsExpressionMissing:
-        case KErrSISExpressionHeadValueMissing:
-        case KErrSISEmbeddedSISOptionsMissing:
-        case KErrSISInfoSISUpgradeRangeMissing:
-        case KErrSISDependencyMissingUid:
-        case KErrSISDependencyMissingVersion:
-        case KErrSISDependencyMissingNames:
-        case KErrSISPrerequisitesMissingDependency:
-        case KErrSISControllerMissingPrerequisites:
-        case KErrSISUpgradeRangeMissingVersion:
-        case KErrSISUnexpectedFieldType:
-        case KErrSISExpressionUnknownOperator:
-        case KErrSISArrayReadError:
-        case KErrSISArrayTypeMismatch:
-        case KErrSISInvalidStringLength:
-        case KErrSISCompressionNotSupported:
-        case KErrSISTooDeeplyEmbedded:
-            return ECorruptedPackage;
-        case KErrSISInvalidTargetFile:
-        case KErrSISWouldOverWrite:
-            return ESecurityError;
-        case KErrSISInfoMissingRemoveDirectories:
-            return ECorruptedPackage;
-        case KErrSISNotEnoughSpaceToInstall:
-            return ELowDiskSpace;
-        case KErrInstallerLeave:
-        case KErrPolicyFileCorrupt:
-            return EUnexpectedError;
-        case KErrSignatureSchemeNotSupported:
-        case KErrDigestNotSupported:
-            return EApplicationNotCompatible;
-        case KErrBadHash:
-            return ECorruptedPackage;
-        case KErrSecurityError:
-            return ESecurityError;
-        case KErrBadUsage:
-        case KErrInvalidType:
-        case KErrInvalidExpression:
-        case KErrExpressionToComplex:
-            return EUnexpectedError;
-        case KErrMissingBasePackage:
-        case KErrInvalidUpgrade:
-            return EApplicationNotCompatible;
-        case KErrInvalidEclipsing:
-            return ESecurityError;
-        case KErrWrongHeaderFormat:
-            return EUnexpectedError;
-        case KErrCapabilitiesMismatch:
-            return ESecurityError;
-        case KErrLegacySisFile:
-        case KErrInvalidSoftwareTypeRegistrationFile:
-            return EApplicationNotCompatible;
-
-        // Other error codes
-        default:
-            __ASSERT_DEBUG( EFalse, Panic( ESisxSifUnknownErrorCode ) );
-            return EUnexpectedError;
-        }
+    iUiHandler->PublishCompletionL( *iErrorHandler );
     }
 
 // ---------------------------------------------------------------------------
@@ -1002,28 +831,35 @@
 //
 void CSisxSifPluginActiveImpl::StartSilentInstallingL()
     {
+    // TODO: fix this, removed temporarily to allow installations
+#ifdef _NOT_DEFINED_
     const CComponentInfo::CNode& rootNode( iComponentInfo->RootNodeL() );
     TBool isAuthenticated = ( rootNode.Authenticity() == EAuthenticated );
 
     // AllowUntrusted option is needed to install untrusted packages.
-    if( !isAuthenticated && !iInstallParams->AllowUntrusted() )
+    if( !isAuthenticated && ( iInstallParams->AllowUntrusted() != EAllowed ) )
         {
         FLOG( _L("Attempt to install unsigned package silently without AllowUntrusted option") );
+        iErrorHandler->SetExtendedErrorCode( ENeedsAllowUntrustedParameter );
         CompleteClientRequest( KErrPermissionDenied );
         }
     // GrantCapabilities option is needed to install packages that require user capabilities
-    else if( RequiresUserCapabilityL( rootNode ) && !iInstallParams->GrantCapabilities() )
+    else if( RequiresUserCapabilityL( rootNode ) &&
+            ( iInstallParams->GrantCapabilities() != EAllowed  ) )
         {
         FLOG( _L("Attempt to grant user capabilities silently without GrantCapabilities option") );
+        iErrorHandler->SetExtendedErrorCode( ENeedsGrantCapabilitiesParameter );
         CompleteClientRequest( KErrPermissionDenied );
         }
     // AllFiles capability is needed to install untrusted packages that contains exe/dll binaries
     else if( !isAuthenticated && rootNode.HasExecutable() && !iHasAllFilesCapability )
         {
         FLOG( _L("Attempt to install untrusted binaries silently without AllFiles capability") );
+        iErrorHandler->SetExtendedErrorCode( EAllFilesCapabilityRequired );
         CompleteClientRequest( KErrPermissionDenied );
         }
     else
+#endif
         {
         StartInstallingL();
         }
@@ -1044,7 +880,7 @@
         }
 
 	iUiHandler->DisplayCompleteL();
-    iUiHandler->PublishCompletionL( ENone, KErrNone, KNullDesC, KNullDesC );
+    iUiHandler->PublishCompletionL( *iErrorHandler );
     }
 
 // ---------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginerrorhandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,349 @@
+/*
+* Copyright (c) 2008-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:  CSisxSifPluginError collects information about errors.
+*               Error details are then passed to framework (USIF).
+*
+*/
+
+#include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
+#include <swi/sisinstallerrors.h>           // SWI error codes
+#include <usif/sif/sifcommon.h>             // COpaqueNamedParams
+#include "sisxsifplugin.pan"                // Panic codes
+
+using namespace Usif;
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::NewL()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginErrorHandler* CSisxSifPluginErrorHandler::NewL()
+    {
+    CSisxSifPluginErrorHandler* self = new ( ELeave ) CSisxSifPluginErrorHandler;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::~CSisxSifPluginErrorHandler()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginErrorHandler::~CSisxSifPluginErrorHandler()
+    {
+    delete iErrorMessage;
+    delete iErrorMessageDetails;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::ErrorCategory()
+// ---------------------------------------------------------------------------
+//
+TErrorCategory CSisxSifPluginErrorHandler::ErrorCategory() const
+    {
+    switch( iErrorCode )
+        {
+        // System-wide error codes
+        case KErrNone:
+            return ENone;
+        case KErrNotFound:
+        case KErrGeneral:
+            return EUnexpectedError;
+        case KErrCancel:
+            return EUserCancelled;
+        case KErrNoMemory:
+            return ELowMemory;
+        case KErrNotSupported:
+        case KErrArgument:
+        case KErrTotalLossOfPrecision:
+        case KErrBadHandle:
+        case KErrOverflow:
+        case KErrUnderflow:
+        case KErrAlreadyExists:
+        case KErrPathNotFound:
+        case KErrDied:
+            return EUnexpectedError;
+        case KErrInUse:
+            return EInstallerBusy;
+        case KErrServerTerminated:
+        case KErrServerBusy:
+        case KErrCompletion:
+        case KErrNotReady:
+        case KErrUnknown:
+            return EUnexpectedError;
+        case KErrCorrupt:
+            return ECorruptedPackage;
+        case KErrAccessDenied:
+            return ESecurityError;
+        case KErrLocked:
+        case KErrWrite:
+        case KErrDisMounted:
+        case KErrEof:
+            return EUnexpectedError;
+        case KErrDiskFull:
+            return ELowDiskSpace;
+        case KErrBadDriver:
+        case KErrBadName:
+        case KErrCommsLineFail:
+        case KErrCommsFrame:
+        case KErrCommsOverrun:
+        case KErrCommsParity:
+        case KErrTimedOut:
+        case KErrCouldNotConnect:
+        case KErrCouldNotDisconnect:
+        case KErrDisconnected:
+        case KErrBadLibraryEntryPoint:
+        case KErrBadDescriptor:
+        case KErrAbort:
+        case KErrTooBig:
+        case KErrDivideByZero:
+        case KErrBadPower:
+        case KErrDirFull:
+        case KErrHardwareNotAvailable:
+        case KErrSessionClosed:
+            return EUnexpectedError;
+        case KErrPermissionDenied:
+            return ESecurityError;
+        case KErrExtensionNotSupported:
+        case KErrCommsBreak:
+        case KErrNoSecureTime:
+            return EUnexpectedError;
+
+        // Native SW Installer error codes
+        case KErrSISFieldIdMissing:
+        case KErrSISFieldLengthMissing:
+        case KErrSISFieldLengthInvalid:
+        case KErrSISStringInvalidLength:
+        case KErrSISSignedControllerSISControllerMissing:
+        case KErrSISControllerSISInfoMissing:
+        case KErrSISInfoSISUidMissing:
+        case KErrSISInfoSISNamesMissing:
+            return ECorruptedPackage;
+        case KErrSISFieldBufferTooShort:
+            return EUnexpectedError;
+        case KErrSISStringArrayInvalidElement:
+        case KErrSISInfoSISVendorNamesMissing:
+        case KErrSISInfoSISVersionMissing:
+        case KErrSISControllerSISSupportedLanguagesMissing:
+        case KErrSISSupportedLanguagesInvalidElement:
+        case KErrSISLanguageInvalidLength:
+        case KErrSISContentsSISSignedControllerMissing:
+        case KErrSISContentsSISDataMissing:
+        case KErrSISDataSISFileDataUnitMissing:
+        case KErrSISFileDataUnitTargetMissing:
+        case KErrSISFileOptionsMissing:
+        case KErrSISFileDataUnitDescriptorMissing:
+        case KErrSISFileDataDescriptionMissing:
+        case KErrSISContentsMissing:
+        case KErrSISEmbeddedControllersMissing:
+        case KErrSISEmbeddedDataUnitsMissing:
+        case KErrSISControllerOptionsMissing:
+        case KErrSISExpressionMissing:
+        case KErrSISExpressionStringValueMissing:
+        case KErrSISOptionsStringMissing:
+        case KErrSISFileOptionsExpressionMissing:
+        case KErrSISExpressionHeadValueMissing:
+        case KErrSISEmbeddedSISOptionsMissing:
+        case KErrSISInfoSISUpgradeRangeMissing:
+        case KErrSISDependencyMissingUid:
+        case KErrSISDependencyMissingVersion:
+        case KErrSISDependencyMissingNames:
+        case KErrSISPrerequisitesMissingDependency:
+        case KErrSISControllerMissingPrerequisites:
+        case KErrSISUpgradeRangeMissingVersion:
+        case KErrSISUnexpectedFieldType:
+        case KErrSISExpressionUnknownOperator:
+        case KErrSISArrayReadError:
+        case KErrSISArrayTypeMismatch:
+        case KErrSISInvalidStringLength:
+        case KErrSISCompressionNotSupported:
+        case KErrSISTooDeeplyEmbedded:
+            return ECorruptedPackage;
+        case KErrSISInvalidTargetFile:
+        case KErrSISWouldOverWrite:
+            return ESecurityError;
+        case KErrSISInfoMissingRemoveDirectories:
+            return ECorruptedPackage;
+        case KErrSISNotEnoughSpaceToInstall:
+            return ELowDiskSpace;
+        case KErrInstallerLeave:
+        case KErrPolicyFileCorrupt:
+            return EUnexpectedError;
+        case KErrSignatureSchemeNotSupported:
+        case KErrDigestNotSupported:
+            return EApplicationNotCompatible;
+        case KErrBadHash:
+            return ECorruptedPackage;
+        case KErrSecurityError:
+            return ESecurityError;
+        case KErrBadUsage:
+        case KErrInvalidType:
+        case KErrInvalidExpression:
+        case KErrExpressionToComplex:
+            return EUnexpectedError;
+        case KErrMissingBasePackage:
+        case KErrInvalidUpgrade:
+            return EApplicationNotCompatible;
+        case KErrInvalidEclipsing:
+            return ESecurityError;
+        case KErrWrongHeaderFormat:
+            return EUnexpectedError;
+        case KErrCapabilitiesMismatch:
+            return ESecurityError;
+        case KErrLegacySisFile:
+        case KErrInvalidSoftwareTypeRegistrationFile:
+            return EApplicationNotCompatible;
+
+        // Other error codes
+        default:
+            __ASSERT_DEBUG( EFalse, Panic( ESisxSifUnknownErrorCode ) );
+            return EUnexpectedError;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::ErrorCode()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginErrorHandler::FillOutputParamsL( COpaqueNamedParams& aOutputParams ) const
+    {
+    if( iErrorCode )
+        {
+        aOutputParams.AddIntL( KSifOutParam_ErrCategory, ErrorCategory() );
+        aOutputParams.AddIntL( KSifOutParam_ErrCode, iErrorCode );
+        }
+    if( iExtendedErrorCode )
+        {
+        aOutputParams.AddIntL( KSifOutParam_ExtendedErrCode, iExtendedErrorCode );
+        }
+    if( iErrorMessage )
+        {
+        aOutputParams.AddStringL( KSifOutParam_ErrMessage, *iErrorMessage );
+        }
+    if( iErrorMessageDetails )
+        {
+        aOutputParams.AddStringL( KSifOutParam_ErrMessageDetails, *iErrorMessageDetails );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::ErrorCode()
+// ---------------------------------------------------------------------------
+//
+TInt CSisxSifPluginErrorHandler::ErrorCode() const
+    {
+    return iErrorCode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::SetErrorCode()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginErrorHandler::SetErrorCode( TInt aErrorCode )
+    {
+    iErrorCode = aErrorCode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::ExtendedErrorCode()
+// ---------------------------------------------------------------------------
+//
+TInt CSisxSifPluginErrorHandler::ExtendedErrorCode() const
+    {
+    return iExtendedErrorCode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::SetExtendedErrorCode()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginErrorHandler::SetExtendedErrorCode( TInt aExtendedErrorCode )
+    {
+    iExtendedErrorCode = aExtendedErrorCode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::ErrorMessage()
+// ---------------------------------------------------------------------------
+//
+const TDesC& CSisxSifPluginErrorHandler::ErrorMessage() const
+    {
+    if( iErrorMessage )
+        {
+        return *iErrorMessage;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::SetErrorMessage()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginErrorHandler::SetErrorMessage( const TDesC& aErrorMessage )
+    {
+    if( iErrorMessage )
+        {
+        delete iErrorMessage;
+        iErrorMessage = NULL;
+        }
+    iErrorMessage = aErrorMessage.AllocL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::ErrorMessageDetails()
+// ---------------------------------------------------------------------------
+//
+const TDesC& CSisxSifPluginErrorHandler::ErrorMessageDetails() const
+    {
+    if( iErrorMessageDetails )
+        {
+        return *iErrorMessageDetails;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::SetErrorMessageDetails()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginErrorHandler::SetErrorMessageDetails(
+        const TDesC& aErrorMessageDetails )
+    {
+    if( iErrorMessageDetails )
+        {
+        delete iErrorMessageDetails;
+        iErrorMessageDetails = NULL;
+        }
+    iErrorMessageDetails = aErrorMessageDetails.AllocL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginErrorHandler::CSisxSifPluginErrorHandler()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginErrorHandler::CSisxSifPluginErrorHandler()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginError::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginErrorHandler::ConstructL()
+    {
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -198,6 +198,15 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::AllowIncompatible()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::AllowIncompatible() const
+    {
+    return iAllowIncompatible;
+    }
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginInstallParams::CSisxSifPluginInstallParams()
 // ---------------------------------------------------------------------------
 //
@@ -229,6 +238,7 @@
             EAllowed );
     GetPolicyParam( aParams, KSifInParam_AllowOverwrite, iAllowOverwrite, EAllowed );
     GetPolicyParam( aParams, KSifInParam_PackageInfo, iPackageInfo, EAllowed );
+    GetPolicyParam( aParams, KSifInParam_AllowIncompatible, iAllowIncompatible, EAllowed );
     }
 
 // ---------------------------------------------------------------------------
@@ -255,6 +265,7 @@
     iAllowAppBreakDependency = aParams.iAllowAppBreakDependency;
     iAllowOverwrite = aParams.iAllowOverwrite;
     iPackageInfo = aParams.iPackageInfo;
+    iAllowIncompatible = aParams.iAllowIncompatible;
     }
 
 // ---------------------------------------------------------------------------
@@ -271,7 +282,7 @@
         {
         return value;
         }
-	return aDefaultValue;
+    return aDefaultValue;
     }
 
 // ---------------------------------------------------------------------------
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -16,6 +16,7 @@
 */
 
 #include "sisxsifpluginuihandler.h"     // CSisxSifPluginUiHandler
+#include "sisxsifpluginerrorhandler.h"  // CSisxSifPluginErrorHandler
 #include "sisxsifplugin.pan"            // Panic codes
 #include "sisxsifcleanuputils.h"        // CleanupResetAndDestroyPushL
 #include "sisxsifuiselectioncache.h"    // CSisxUISelectionCache
@@ -49,10 +50,11 @@
 // CSisxSifPluginUiHandler::NewL()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandler* CSisxSifPluginUiHandler::NewL( RFs& aFs )
+CSisxSifPluginUiHandler* CSisxSifPluginUiHandler::NewL( RFs& aFs,
+        CSisxSifPluginErrorHandler& aErrorHandler )
     {
     FLOG( _L("CSisxSifPluginUiHandler::NewL") );
-    CSisxSifPluginUiHandler *self = new( ELeave ) CSisxSifPluginUiHandler( aFs );
+    CSisxSifPluginUiHandler *self = new( ELeave ) CSisxSifPluginUiHandler( aFs, aErrorHandler );
     CleanupStack::PushL( self );
     self->ConstructL();
     CleanupStack::Pop( self );
@@ -88,9 +90,10 @@
 // ---------------------------------------------------------------------------
 //
 void CSisxSifPluginUiHandler::DisplayErrorL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TErrorDialog /*aType*/, const TDesC& /*aParam*/ )
+        Swi::TErrorDialog aType, const TDesC& aParam )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayErrorL") );
+    SetDisplayErrorL( aType, aParam );
     }
 
 // ---------------------------------------------------------------------------
@@ -438,21 +441,21 @@
 // CSisxSifPluginUiHandler::DisplayFailedL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandler::DisplayFailedL( TErrorCategory /*aCategory*/,
-        TInt aErrorCode, const TDesC& aErrorMessage, const TDesC& /*aErrorDetails*/ )
+void CSisxSifPluginUiHandler::DisplayFailedL( const CSisxSifPluginErrorHandler& aError )
     {
-    FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, aError=%d"), aErrorCode );
+    FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, error code %d"), aError.ErrorCode() );
 
     // TODO: add error details
-    iSifUi->ShowFailedL( aErrorCode, aErrorMessage );
+    iSifUi->ShowFailedL( aError.ErrorCode(), aError.ErrorMessage() );
     }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginUiHandler::CSisxSifPluginUiHandler()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandler::CSisxSifPluginUiHandler( RFs& aFs ) :
-        CSisxSifPluginUiHandlerBase( aFs )
+CSisxSifPluginUiHandler::CSisxSifPluginUiHandler( RFs& aFs,
+        CSisxSifPluginErrorHandler& aErrorHandler ) :
+        CSisxSifPluginUiHandlerBase( aFs, aErrorHandler )
     {
     }
 
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -17,6 +17,7 @@
 
 #include "sisxsifpluginuihandlerbase.h"     // CSisxSifPluginUiHandlerBase
 #include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
+#include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
 
 using namespace Usif;
@@ -28,7 +29,9 @@
 // CSisxSifPluginUiHandlerBase::CSisxSifPluginUiHandlerBase()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandlerBase::CSisxSifPluginUiHandlerBase( RFs& aFs ) : iFs( aFs )
+CSisxSifPluginUiHandlerBase::CSisxSifPluginUiHandlerBase( RFs& aFs,
+        CSisxSifPluginErrorHandler& aErrorHandler ) : iFs( aFs ),
+        iErrorHandler( aErrorHandler )
     {
     }
 
@@ -136,13 +139,102 @@
 // CSisxSifPluginUiHandlerBase::PublishCompletionL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandlerBase::PublishCompletionL( TErrorCategory aErrorCategory,
-        TInt aErrorCode, const TDesC& aErrorMessage, const TDesC& aErrorDetails )
+void CSisxSifPluginUiHandlerBase::PublishCompletionL( const CSisxSifPluginErrorHandler& aError )
     {
     User::LeaveIfNull( iPublishSifOperationInfo );
     CSifOperationEndData* data = CSifOperationEndData::NewLC( *iGlobalComponentId,
-            aErrorCategory, aErrorCode, aErrorMessage, aErrorDetails );
+            aError.ErrorCategory(), aError.ErrorCode(), aError.ErrorMessage(),
+            aError.ErrorMessageDetails() );
     iPublishSifOperationInfo->PublishCompletionL( *data );
     CleanupStack::PopAndDestroy( data );
     }
 
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetDisplayErrorL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetDisplayErrorL( Swi::TErrorDialog aType, const TDesC& aParam )
+    {
+    iErrorHandler.SetExtendedErrorCode( aType );
+
+    // TODO: localised detailed error messages
+    TBuf<512> details;
+    switch( aType )
+        {
+        case Swi::EUiAlreadyInRom:
+            details.Copy(_L("EUiAlreadyInRom"));
+            break;
+        case Swi::EUiMissingDependency:
+            details.Copy(_L("EUiMissingDependency"));
+            break;
+        case Swi::EUiRequireVer:
+            details.Copy(_L("EUiRequireVer"));
+            break;
+        case Swi::EUiRequireVerOrGreater:
+            details.Copy(_L("EUiRequireVerOrGreater"));
+            break;
+        case Swi::EUiFileCorrupt:
+            details.Copy(_L("EUiFileCorrupt"));
+            break;
+        case Swi::EUiDiskNotPresent:
+            details.Copy(_L("EUiDiskNotPresent"));
+            break;
+        case Swi::EUiCannotRead:
+            details.Copy(_L("EUiCannotRead"));
+            break;
+        case Swi::EUiCannotDelete:
+            details.Copy(_L("EUiCannotDelete"));
+            break;
+        case Swi::EUiInvalidFileName:
+            details.Copy(_L("EUiInvalidFileName"));
+            break;
+        case Swi::EUiFileNotFound:
+            details.Copy(_L("EUiFileNotFound"));
+            break;
+        case Swi::EUiInsufficientSpaceOnDrive:
+            details.Copy(_L("EUiInsufficientSpaceOnDrive"));
+            break;
+        case Swi::EUiCapabilitiesCannotBeGranted:
+            details.Copy(_L("EUiCapabilitiesCannotBeGranted"));
+            break;
+        case Swi::EUiUnknownFile:
+            details.Copy(_L("EUiUnknownFile"));
+            break;
+        case Swi::EUiMissingBasePackage:
+            details.Copy(_L("EUiMissingBasePackage"));
+            break;
+        case Swi::EUiConstraintsExceeded:
+            details.Copy(_L("EUiConstraintsExceeded"));
+            break;
+        case Swi::EUiSIDViolation:
+            details.Copy(_L("EUiSIDViolation"));
+            break;
+        case Swi::EUiVIDViolation:
+            details.Copy(_L("EUiVIDViolation"));
+            break;
+        case Swi::EUiNoMemoryInDrive:
+            details.Copy(_L("EUiNoMemoryInDrive"));
+            break;
+        case Swi::EUiUIDPackageViolation:
+            details.Copy(_L("EUiUIDPackageViolation"));
+            break;
+        case Swi::EUiOSExeViolation:
+            details.Copy(_L("EUiOSExeViolation"));
+            break;
+        case Swi::EUiSIDMismatch:
+            details.Copy(_L("EUiSIDMismatch"));
+            break;
+        case Swi::EUiBlockingEclipsingFile:
+            details.Copy(_L("EUiBlockingEclipsingFile"));
+            break;
+        default:
+            break;
+        }
+
+    if( aParam.Length() )
+        {
+        details.Append( _L("\n") );
+        details.Append( aParam );
+        }
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -17,6 +17,7 @@
 
 #include "sisxsifpluginuihandlersilent.h"   // CSisxSifPluginUiHandlerSilent
 #include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
+#include "sisxsifpluginerrorhandler.h"      // CSisxSifPluginErrorHandler
 #include "sisxsifplugin.pan"                // Panic codes
 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
 
@@ -29,9 +30,11 @@
 // CSisxSifPluginUiHandlerSilent::NewL()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandlerSilent* CSisxSifPluginUiHandlerSilent::NewL( RFs& aFs )
+CSisxSifPluginUiHandlerSilent* CSisxSifPluginUiHandlerSilent::NewL( RFs& aFs,
+        CSisxSifPluginErrorHandler& aErrorHandler )
     {
-    CSisxSifPluginUiHandlerSilent *self = new( ELeave ) CSisxSifPluginUiHandlerSilent( aFs );
+    CSisxSifPluginUiHandlerSilent *self = new( ELeave ) CSisxSifPluginUiHandlerSilent(
+            aFs, aErrorHandler );
     CleanupStack::PushL( self );
     self->ConstructL();
     CleanupStack::Pop( self );
@@ -77,9 +80,9 @@
 // ---------------------------------------------------------------------------
 //
 void CSisxSifPluginUiHandlerSilent::DisplayErrorL( const Swi::CAppInfo& /*aAppInfo*/,
-        Swi::TErrorDialog /*aType*/, const TDesC& /*aParam*/ )
+        Swi::TErrorDialog aType, const TDesC& aParam )
     {
-	// TODO: error handling
+    SetDisplayErrorL( aType, aParam );
     }
 
 // ---------------------------------------------------------------------------
@@ -143,12 +146,12 @@
         case Swi::EQuestionIncompatible:
         	if( iInstallParams )
         		{
-				switch( iInstallParams->PackageInfo() )
+				switch( iInstallParams->AllowIncompatible() )
 					{
 					case EAllowed:
-					case EUserConfirm:
 						okToContinue = ETrue;
 						break;
+                    case EUserConfirm:
 					case ENotAllowed:
 					default:
 						break;
@@ -491,8 +494,8 @@
 // CSisxSifPluginUiHandlerSilent::DisplayFailedL()
 // ---------------------------------------------------------------------------
 //
-void CSisxSifPluginUiHandlerSilent::DisplayFailedL( TErrorCategory /*aCategory*/,
-        TInt /*aErrorCode*/, const TDesC& /*aErrorMessage*/, const TDesC& /*aErrorDetails*/ )
+void CSisxSifPluginUiHandlerSilent::DisplayFailedL(
+        const CSisxSifPluginErrorHandler& /*aError*/ )
     {
     // nothing displayed in silent mode
     }
@@ -501,8 +504,9 @@
 // CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent( RFs& aFs ) :
-        CSisxSifPluginUiHandlerBase( aFs )
+CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent( RFs& aFs,
+        CSisxSifPluginErrorHandler& aErrorHandler ) :
+        CSisxSifPluginUiHandlerBase( aFs, aErrorHandler )
     {
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/sisxsilentinstallindicatorplugin.pro	Thu Jun 24 12:37:54 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 = lib
+TARGET = sisxsilentinstallindicatorplugin
+CONFIG += plugin
+CONFIG += hb
+
+INCLUDEPATH += .
+DEPENDPATH += .
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+INCLUDEPATH += ../../../../inc
+
+
+HEADERS += inc/sisxsilentinstallindicatorplugin.h \ 
+				inc/sisxsilentinstallindicator.h
+
+SOURCES += src/sisxsilentinstallindicatorplugin.cpp \ 
+				src/sisxsilentinstallindicator.cpp
+		   
+
+symbian {
+    TARGET.EPOCALLOWDLLDATA=1
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.UID3 = 0x2002FF6A 
+
+    pluginstub.sources = sisxsilentinstallindicatorplugin.dll
+    pluginstub.path = /resource/plugins/indicators
+    DEPLOYMENT += pluginstub
+}
+
+BLD_INF_RULES.prj_exports += \
+  "$${LITERAL_HASH}include <platform_paths.hrh>" \
+  "rom/sisxsilentinstallindicatorplugin.iby             CORE_APP_LAYER_IBY_EXPORT_PATH(sisxsilentinstallindicatorplugin.iby)" 
+  
+LIBS += -lxqservice
+LIBS += -lws32
+LIBS += -lapparc  
+LIBS += -lapgrfx
+
+# TODO: onko tarpeen apparc lippi ? lapparc 
+
--- a/iaupdate/IAD/api/iaupdateapi.pro	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/api/iaupdateapi.pro	Thu Jun 24 12:37:54 2010 +0300
@@ -23,6 +23,14 @@
     TARGET.CAPABILITY = CAP_GENERAL_DLL
     TARGET.EPOCALLOWDLLDATA=1
     MMP_RULES += "OPTION ARMCC --export_all_vtbl"
+
+    defBlock = \      
+    "$${LITERAL_HASH}if defined(EABI)" \
+    "DEFFILE  ../eabi/iaupdateapi.def" \
+    "$${LITERAL_HASH}else" \
+    "DEFFILE  ../bwins/iaupdateapi.def" \
+    "$${LITERAL_HASH}endif"
+     MMP_RULES += defBlock
 } 
 
 DEPENDPATH += .
--- a/iaupdate/IAD/backgroundchecker/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/group/bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -22,13 +22,8 @@
 PRJ_PLATFORMS
 DEFAULT
 
-
 PRJ_EXPORTS
 
-/epoc32/s60/icons/qgn_note_swupdate_notification.svg   /epoc32/release/winscw/udeb/z/private/200211f4/qgn_note_swupdate_notification.svg
-/epoc32/s60/icons/qgn_note_swupdate_notification.svg   /epoc32/release/winscw/urel/z/private/200211f4/qgn_note_swupdate_notification.svg
-/epoc32/s60/icons/qgn_note_swupdate_notification.svg   /epoc32/data/z/private/200211f4/qgn_note_swupdate_notification.svg
-
 PRJ_MMPFILES
 ./iaupdatebg.mmp
 
--- a/iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -41,14 +41,13 @@
 SOURCEPATH          ../src
 SOURCE              iaupdatebgmain.cpp
 SOURCE              iaupdatebgrefreshtimer.cpp
-SOURCE              iaupdatebgremindertimer.cpp
+//SOURCE              iaupdatebgremindertimer.cpp
 SOURCE              iaupdatebgcontrollerfile.cpp
 SOURCE              iaupdatebgfirsttimehandler.cpp
 SOURCE              iaupdatebginternalfilehandler.cpp
 SOURCE              iaupdatebgsoftnotification.cpp
 
 
-
 LIBRARY             euser.lib 
 LIBRARY             centralrepository.lib 
 LIBRARY             iaupdateapi.lib 
@@ -66,9 +65,8 @@
 LIBRARY             sysversioninfo.lib
 LIBRARY             FeatMgr.lib
 
-// HLa
-LIBRARY     hbcore.lib
-LIBRARY     hbwidgets.lib
+LIBRARY             hbcore.lib
+LIBRARY             hbwidgets.lib
 
 DEBUGLIBRARY 	    flogger.lib
 
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebgfirsttimehandler.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgfirsttimehandler.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -61,12 +61,7 @@
     * Set Nokia agreement as accepted by an user
     */
     void SetAgreementAcceptedL();
-    
-    /**
-    * Set Nokia agreement as asked (prompted) to an user
-    */
-    void SetAgreementAskedL();
-        
+          
     /**
     * Set automatic update checks as asked (prompted) to an user
     */
@@ -79,13 +74,7 @@
     */
     TBool AgreementAcceptedL();
     
-    /**
-    * Is Nokia agreement of Application Update already asked 
-    *
-    * @return True value if agreement already asked 
-    */
-    TBool AgreementAskedL();
-    
+       
     /**
     * Is activation for automatic update cheks from network already asked 
     *
@@ -121,8 +110,6 @@
     
     TBool iAgreementAccepted;
     
-    TBool iAgreementAsked;
-    
     TBool iAutomaticUpdateChecksAsked;   
    
     };
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebginternalfilehandler.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebginternalfilehandler.h	Thu Jun 24 12:37:54 2010 +0300
@@ -52,22 +52,10 @@
 
     void SetLastTimeShowNewFeatureDialog( TInt64 aTime );
 
-    //void SetCurrentRefreshTime();
-
     TBool UserRejectNewFeatureDialog() const;
     
     void SetUserRejectNewFeatureDialog( TBool aUserDecision );
     
-    TBool ReminderOn();
-    
-    void SetReminder( TBool aOn );
-    
-    TTime NextRemindTime();
-    
-    void SetNextRemindTime( TTime aNextRemindTime );
-    
-    void SetNextRemindTime( TInt64 aNextRemindTime );
-    
     void SetMode( TIAUpdateBGMode aMode );
     
     TIAUpdateBGMode Mode();
@@ -113,14 +101,9 @@
 
     // Time when the content was refreshed.
     TTime iLastTimeShowNewFeatureDialog;
-
     
     TBool iUserRejectNewFeatureDialog;
     
-    TTime iNextRemindTime;
-    
-    TBool iIsReminderOn;
-    
     TIAUpdateBGMode iMode;
     
     HBufC* iFwVersion;
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebgrefreshtimer.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgrefreshtimer.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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 <iaupdateobserver.h>
 #include <barsc.h>
 
-#include "iaupdatebgremindertimer.h"
+
+#include "iaupdatebginternalfilehandler.h"
 #include "iaupdatebgcontrollerfile.h"
 #include "iaupdatebgsoftnotification.h"
 #include "iaupdatebgcheckermode.h"
@@ -34,7 +35,6 @@
 // FORWARD DECLARATIONS
 class CIAUpdate;
 class CIAUpdateParameters;
-// class CAknSoftNotifier;
 class CInternalFileHandler;
 class CIdleObserver;
 
@@ -49,8 +49,7 @@
 class CIAUpdateBGTimer : public CTimer, 
                  public MIAUpdateObserver, 
                  public MCenRepNotifyHandlerCallback, 
-                 public MIAUpdateBGSoftNotificationCallBack, 
-                 public MIAUpdateBGReminderTimerCallBack
+                 public MIAUpdateBGSoftNotificationCallBack 
             
     {
     public:
@@ -121,9 +120,7 @@
         TTimeIntervalMinutes TimeIntervalFromNextShowOfNewFeatureDialogL();
         
         TBool IsAgreementAcceptedL();
-        
-        TBool IsAskedAlreadyL();
-        
+       
         void HandlerFirstTimeL();
         
         TTime GetLastTimeShowNewFeatureDialogL();
@@ -134,14 +131,6 @@
  
         TInt SetUserDecisionL( TBool aDecision );
         
-        TBool ReminderOnL();
-
-        TInt SetReminderL( TBool aOn );
-        
-        TTime NextRemindTimeL();
-
-        TInt SetNextRemindTimeL( TTime aTime );
-        
         TIAUpdateBGMode ModeL();
 
         TInt SetModeL( TIAUpdateBGMode aMode );
@@ -150,12 +139,8 @@
 
         TInt SetRetryTimesL( TInt aRetry );
           
-        // HBufC* ReadResourceLC( TInt aResourceId );
-        
         void StartIaupdateL() const;
         
-        // void LaunchSoftNotificationL( const TInt& aResourceId, const TInt& SK1, const TInt& SK2 );
-        
         void LaunchNotificationL( const int aNrOfUpdates );
         
         TBool IsAutoUpdateDisabledL();
@@ -170,18 +155,8 @@
         
         void DoSoftNotificationCallBackL( TBool aIsAccepted );
         
-        void DoReminderTimerCallBackL();
-        
         void StartUpdatesCheckingL();    
         
-        // HBufC8* LoadFileLC(const TDesC& aFile);
-        
-        TInt GetPrivatePathL( TFileName& aPath );
-        
-        TInt SetSessionPrivatePathL( RFs& aFs, const TDesC& aPath ) const;
-        
-        void SetPrivateDriveL( RFs& aFs, const TDesC& aFileName ) const;
-        
         TBool IAUpdateEnabledL() const;
         
         void Shutdown();
@@ -190,7 +165,6 @@
         // Data       
         CIAUpdate* iUpdate; 
         CIAUpdateParameters* iParameters; 
-        CIAUpdateBGReminderTimer* iReminderTimer;
         CRepository* iIAUpdateCRSession; 
         CCenRepNotifyHandler* iNotifyHandler; 
         TInt iRuns;
@@ -199,8 +173,6 @@
         CIAUpdateBGInternalFileHandler* iInternalFile;
         TIAUpdateBGMode iMode;
         CIAUpdateBGSoftNotification* iSoftNotification;
-        // RResourceFile iResourceFile;
-        RFs iFs;
     };        
 
 #endif //IAUPDATEBGREFRESHTIMER_H
--- a/iaupdate/IAD/backgroundchecker/inc/iaupdatebgsoftnotification.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgsoftnotification.h	Thu Jun 24 12:37:54 2010 +0300
@@ -61,22 +61,16 @@
         
          /**
           * Shows notification and  indicator. 
-          *
-          * @param aNrOfUpdates number of updates
           */
          void ShowNotificationL();
          
          /**
           * Shows indicator. 
-          *
-          * @param aMode indicator mode (EFirstTimeMode / ENormalMode)
           */
          void ShowIndicatorL();
          
          /**
           * Removes indicator. 
-          *
-          * @param aNrOfUpdates number of updates
           */
          void RemoveIndicatorL();
 
@@ -87,13 +81,6 @@
          * @param aText  text for soft notification
          */
         void SetTextL( const TDesC& aTitle, const TDesC& aText ); 
-
-        /**
-        * Set an image path for a soft notification.
-        *
-        * @param aImage image path for soft notification
-        */
-        void SetImagePathL( const TDesC& aImage );
         
         /**
         * Set number of updates a soft notification.
@@ -152,39 +139,28 @@
         /**
          * Get indicator enablation state
          *
-         * @return aEnabled ETrue-enabled, EFalse-disabled
+         * @return ETrue-enabled, EFalse-disabled
          */ 
         TBool IsIndicatorEnabled();
         
-        /**
-         * Set number of updates
-         *
-         * @param aNrOfUpdates number of updates 
-         */ 
-        // void SetNrOfUpdates( const int aNrOfUpdates );
-        
-        /**
-         * Get number of updates
-         *
-         * @return  number of updates 
-         */ 
         int GetNrOfUpdates();
         
     private:  // Data
         // Note title
         HBufC* iTitle; 
+        
         // Note text
         HBufC* iText; 
-        /// Image data byte array
-        HBufC8* iImageData;
+        
         // Notification callback
         MIAUpdateBGSoftNotificationCallBack* iCallback;
-        // Image path
-        HBufC* iImagePath;
+        
         // Number of updates
         int iNrOfUpdates;
+        
         // Indictor activation state
         TBool iActivateIndicator;
+        
         //Notification dialog
         CHbDeviceNotificationDialogSymbian* iNotificationDialog;
 
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgfirsttimehandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgfirsttimehandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -98,19 +98,7 @@
     iAgreementAccepted = ETrue;
     WriteDataL();
     }
-    
-// ---------------------------------------------------------------------------
-// CIAUpdateBGFirstTimeHandler::SetAgreementAskedL
-// Set Nokia agreement as asked (prompted) to an user
-// ---------------------------------------------------------------------------
-//
-void CIAUpdateBGFirstTimeHandler::SetAgreementAskedL()
-    {
-    ReadDataL();
-    iAgreementAsked = ETrue;
-    WriteDataL();
-    }
-        
+       
 // ---------------------------------------------------------------------------
 // CIAUpdateBGFirstTimeHandler::SetAutomaticUpdatesAskedL
 // Set automatic update checks as prompted to an use
@@ -136,17 +124,6 @@
 
 
 // ---------------------------------------------------------------------------
-// CIAUpdateBGFirstTimeHandler::AgreementAskedL
-// Is Nokia agreement of Application Update already asked 
-// ---------------------------------------------------------------------------
-//
-TBool CIAUpdateBGFirstTimeHandler::AgreementAskedL()
-    {
-    ReadDataL();
-    return iAgreementAsked;
-    }
-
-// ---------------------------------------------------------------------------
 // CIAUpdateBGFirstTimeHandler::AutomaticUpdateChecksAskedL
 // Is activation for automatic update cheks from network already asked 
 // ---------------------------------------------------------------------------
@@ -170,7 +147,6 @@
     if ( err == KErrNotFound )
     	{
     	iAgreementAccepted = EFalse;
-	    iAgreementAsked = EFalse;
 	    iAutomaticUpdateChecksAsked = EFalse; 
     	}
     else
@@ -216,7 +192,6 @@
 void CIAUpdateBGFirstTimeHandler::InternalizeL( RReadStream& aStream )
 	{
 	iAgreementAccepted = aStream.ReadInt32L();
-	iAgreementAsked = aStream.ReadInt32L();
 	iAutomaticUpdateChecksAsked = aStream.ReadInt32L();
 	}
 
@@ -229,7 +204,6 @@
 void CIAUpdateBGFirstTimeHandler::ExternalizeL( RWriteStream& aStream )
 	{
 	aStream.WriteInt32L( iAgreementAccepted );
-	aStream.WriteInt32L( iAgreementAsked );	
 	aStream.WriteInt32L( iAutomaticUpdateChecksAsked );
 	}
     
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebginternalfilehandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebginternalfilehandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -15,9 +15,6 @@
 *
 */
 
-
-
-
 #include <bautils.h>
 #include <s32file.h>
 #include <sysversioninfo.h>
@@ -67,7 +64,7 @@
 //
 CIAUpdateBGInternalFileHandler::CIAUpdateBGInternalFileHandler()
     : iLastTimeShowNewFeatureDialog( 0 ), iUserRejectNewFeatureDialog( EFalse ), 
-      iNextRemindTime(0), iIsReminderOn( EFalse ), iMode( EFirstTimeMode ), iFwVersion( NULL ), 
+      iMode( EFirstTimeMode ), iFwVersion( NULL ), 
       iSNID(0), iRetryTimes(0)
     {
     }
@@ -215,62 +212,6 @@
     iUserRejectNewFeatureDialog = aUserDecision;
     }
 
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGInternalFileHandler::ReminderOn
-//
-// -----------------------------------------------------------------------------
-//
-TBool CIAUpdateBGInternalFileHandler::ReminderOn()
-    {
-    return iIsReminderOn;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGInternalFileHandler::SetReminder
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGInternalFileHandler::SetReminder( TBool aOn )
-    {
-    iIsReminderOn = aOn;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGInternalFileHandler::NextRemindTime
-//
-// -----------------------------------------------------------------------------
-//
-TTime CIAUpdateBGInternalFileHandler::NextRemindTime()
-    {
-    return iNextRemindTime;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGInternalFileHandler::SetNextRemindTime
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGInternalFileHandler::SetNextRemindTime( TTime aNextRemindTime )
-    {
-    iNextRemindTime = aNextRemindTime;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGInternalFileHandler::SetNextRemindTime
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGInternalFileHandler::SetNextRemindTime( TInt64 aNextRemindTime )
-    {
-    iNextRemindTime = aNextRemindTime;
-    }
-
-
 // -----------------------------------------------------------------------------
 // CIAUpdateBGInternalFileHandler::SetMode
 //
@@ -382,6 +323,7 @@
     // Static casting is safe to do here because enum and TInt are the same.
     SetUserRejectNewFeatureDialog( static_cast< TBool >( userDecision ) );
     
+    /*
     TInt64 nextRemindTime( 0 );
     aStream >> nextRemindTime;
     SetNextRemindTime( nextRemindTime );
@@ -389,6 +331,7 @@
     TInt remindOn( aStream.ReadUint8L() );
     // Static casting is safe to do here because enum and TInt are the same.
     SetReminder( static_cast< TBool >( remindOn ) );
+    */
     
     TInt mode( aStream.ReadUint8L() );
     SetMode( static_cast<TIAUpdateBGMode> (mode) );
@@ -424,11 +367,13 @@
     TInt userDecision ( UserRejectNewFeatureDialog() );
     aStream.WriteUint8L( userDecision );
     
+    /*
     TInt64 nextRemindTime( NextRemindTime().Int64() ); 
     aStream << nextRemindTime;
     
     TInt remindOn ( ReminderOn() );
     aStream.WriteUint8L( remindOn );
+    */
     
     TInt mode( Mode() );
     aStream.WriteUint8L( mode );
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -25,10 +25,6 @@
 #include <apgwgnam.h>
 #include <apgcli.h>
 #include <apacmdln.h>
-// #include <avkon.hrh>
-//#include <StringLoader.h> 
-//#include <iaupdate.rsg>
-//#include <data_caging_path_literals.hrh>
 #include <bautils.h>
 #include <apgtask.h>
 #include <sysversioninfo.h>  //sysversioninfo
@@ -46,13 +42,9 @@
 
 //MACROS
 _LIT8( KRefreshFromNetworkDenied, "1" );
-// _LIT(KIAUpdateResourceFile, "iaupdate.rsc");
 _LIT(KIAUpdateLauncherExe, "iaupdatelauncher.exe" );
-_LIT(KImageFile, "qgn_note_swupdate_notification.svg");
 _LIT8( KFirstTimeCase, "0" );
 
-
-
 //CONSTANTS
 const TUint KIADUpdateLauncherUid( 0x2001FE2F );
 
@@ -77,7 +69,6 @@
     CTimer::ConstructL();
     CActiveScheduler::Add( this );
   
-    iReminderTimer = CIAUpdateBGReminderTimer::NewL( this );
     iUpdate = NULL;
     iParameters = NULL;
     
@@ -88,28 +79,18 @@
     
     iInternalFile = CIAUpdateBGInternalFileHandler::NewL();
     
-    iSoftNotification = CIAUpdateBGSoftNotification::NewL( this ); //, iInternalFile );
-    // HLa: iSoftNotification->StartObservingIfNeededL();
-    
-    // Get resource file path
-    /* HLa
-    TFileName fileName;
-    fileName.Copy(TParsePtrC(RProcess().FileName()).Drive());
-    fileName.Append(KDC_APP_RESOURCE_DIR);
-    fileName.Append(KIAUpdateResourceFile);
-    */
+    iSoftNotification = CIAUpdateBGSoftNotification::NewL( this ); 
     
-    User::LeaveIfError(iFs.Connect());
-
-    // Get language of resource file        
-    //BaflUtils::NearestLanguageFile( iFs, fileName );
-
-    // Open resource file
-    //iResourceFile.OpenL( iFs, fileName );
-    //iResourceFile.ConfirmSignatureL();    
+    // loc: initialize localisation text loader
+    /*
+    TBool res = HbTextResolverSymbian::Init(KLocFile, KLocFilePath);
+    if ( res != KErrNone )
+        {
+        // nothing to do
+        }
+    */
     }
     
-    
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::~CIAUpdateBGTimer()
 // ----------------------------------------------------------
@@ -118,7 +99,6 @@
     Cancel();
     delete iUpdate; 
     delete iParameters;
-    delete iReminderTimer;
 
     if ( iNotifyHandler ) 
         {
@@ -131,11 +111,8 @@
     delete iInternalFile;
     delete iSoftNotification;
     
-    // iResourceFile.Close();
-    iFs.Close();
     }
 
-
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::StartProcessL()
 // ----------------------------------------------------------
@@ -145,27 +122,20 @@
         
     iMode = ModeL();
     
-    //HLa
-    TBool test1 = IsAgreementAcceptedL();
-    TBool test2 = ReminderOnL();
-    
-    int test = 0;
     switch ( iMode )
         {
         case EFirstTimeMode:
-         
-        // while not released keep in sleep mode
-        //int test = 1;
-        if ( test == 0 )
             {
-            ListenAutoUpdateSettingsL();
-            iMode = ESleepMode;
-            SetModeL( iMode );
-            return;
-            }
+            // while not released keep in sleep mode
+            int test = 0;
+            if ( test == 0 )
+                {
+                ListenAutoUpdateSettingsL();
+                iMode = ESleepMode;
+                SetModeL( iMode );
+                return;
+                }
         
-        //case EFirstTimeRemindMode:    
-            {
             if ( IsFirstTimeDialogDisabledL() )
                 {
                 //this should only happen in testing
@@ -193,9 +163,6 @@
                         
             FLOG("[bgchecker] StartProcessL EFirstTimeMode");
             
-            
-
-
             //Wait for some days before activate the first time mode
             TTimeIntervalMinutes timetowait =
                     TimeIntervalFromNextShowOfNewFeatureDialogL();
@@ -239,17 +206,10 @@
                                                   
             break;
             }
-/*
+
         case EFirstTimeMode2:
             {
-            FLOG("[bgchecker] StartProcessL EFirstTimeMode2");
-            RunL();
-            break;
-            }
-*/
-        case EFirstTimeMode2:
-            {
-            FLOG("[bgchecker] StartProcessL EFirstTimeMode 3");
+            FLOG("[bgchecker] StartProcessL EFirstTimeMode 2");
             //if user accepted the disclaimer already and reboot the phone, 
             //this mode could go to network immediately after boot
             //We put one min delay here to wait for network ready.
@@ -294,6 +254,10 @@
         case ENormalMode:
         case ERetryMode:
             {
+            
+            // Check if indicator should be shown
+            
+            
             StartUpdatesCheckingL();
             break;
             }
@@ -321,19 +285,6 @@
 
 
 // ----------------------------------------------------------
-// CIAUpdateBGTimer::IsAskedAlreadyL()
-// ----------------------------------------------------------
-TBool CIAUpdateBGTimer::IsAskedAlreadyL()
-    {
-    CIAUpdateBGFirstTimeHandler* fthandler  = CIAUpdateBGFirstTimeHandler::NewL();
-    CleanupStack::PushL( fthandler );
-    TBool result = fthandler->AgreementAskedL();
-    CleanupStack::PopAndDestroy( fthandler );
-    return result;
-    }
-
-
-// ----------------------------------------------------------
 // CIAUpdateBGTimer::StartUpdatesCheckingL()
 // ----------------------------------------------------------
 void CIAUpdateBGTimer::StartUpdatesCheckingL()  
@@ -369,38 +320,7 @@
             FLOG_NUM( "Start checking update after %d minutes", timetowait.Int());
             StartL( timetowait );
             
-            //start reminder timer also if user choose later before reboot
-            //check the value from private folder
-             
-            
-              if ( ReminderOnL() )
-                  {
-                  TTime currenttime;
-                  currenttime.UniversalTime();
-                  
-                  FTIME( currenttime );
-                  
-                  TTime nextremindtime = NextRemindTimeL();
-                  
-                  FTIME( nextremindtime );
-                  
-                  TTimeIntervalMinutes timetogo;
-                  nextremindtime.MinutesFrom( currenttime, timetogo );
-                  
-                  FLOG_NUM("time to go = %d", timetogo.Int() );
-                  
-                  if ( timetogo.Int() <= 0 )
-                      {
-                      //pop up the reminder directly
-                      ReminderTimerCallBack();
-                      }
-                  else
-                      {
-                      iReminderTimer->StartReminderTimerL( timetogo );
-                      }
-                  }
-                  
-            }
+         }
     }
 
 
@@ -527,48 +447,6 @@
 
 
 // ----------------------------------------------------------
-// CIAUpdateBGTimer::NextRemindTimeL()
-// ----------------------------------------------------------
-TTime CIAUpdateBGTimer::NextRemindTimeL()
-    {
-    iInternalFile->ReadControllerDataL();
-    return iInternalFile->NextRemindTime();
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::SetNextRemindTimeL()
-// ----------------------------------------------------------
-TInt CIAUpdateBGTimer::SetNextRemindTimeL( TTime aTime )
-    {
-    iInternalFile->SetNextRemindTime( aTime );
-    TRAPD( err,iInternalFile->WriteControllerDataL() );
-    return err;
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::ReminderOnL()
-// ----------------------------------------------------------
-TBool CIAUpdateBGTimer::ReminderOnL()
-    {
-    iInternalFile->ReadControllerDataL(); 
-    return iInternalFile->ReminderOn();
-    }
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::SetReminderL()
-// ----------------------------------------------------------
-TInt CIAUpdateBGTimer::SetReminderL( TBool aOn )
-    {
-    iInternalFile->SetReminder( aOn );
-    TRAPD( err,iInternalFile->WriteControllerDataL() );
-    return err;
-    }
-
-
-// ----------------------------------------------------------
 // CIAUpdateBGTimer::ModeL()
 // ----------------------------------------------------------
 TIAUpdateBGMode CIAUpdateBGTimer::ModeL()
@@ -625,17 +503,6 @@
 void CIAUpdateBGTimer::DoUpdatesCheckingL( const TBool& aUpdateFromServer )
     {   
     FLOG( "DoUpdatesCheckingL update");
-    //turn off the reminder, user will decide whether to turn if on or off
-    //The user's decision will be checked in soft notification callback function
-    
-    
-    if ( ReminderOnL())
-        {
-        FLOG( "Do CheckUpdates 3");
-        iReminderTimer->CancelReminderTimerL();
-        SetReminderL( EFalse );
-        }
-    
     
     if( !iUpdate )
         {
@@ -740,8 +607,6 @@
             FLOG( "CheckUpdatesComplete 4");
     
             LaunchNotificationL( aAvailableUpdates );
-            //LaunchSoftNotificationL(R_IAUPDATE_UPDATE_AVAILABLE,
-            //            R_TEXT_SOFTKEY_SHOW, R_TEXT_SOFTKEY_LATER );
             }
 
             FLOG( "CheckUpdatesComplete 5");
@@ -788,19 +653,6 @@
                 StartL( interval );
                 SetLastRefreshTime();
                 }
-            else
-                {
-                //don't show soft notification and restart the timer.
-                TTimeIntervalMinutes oneweek( UpdateAvailableReminderIntervalInMinutesL() );   
-                TTime currenttime;
-                currenttime.UniversalTime();
-                TTime nextRemindTime = currenttime + oneweek;
-
-                SetReminderL( ETrue );
-                SetNextRemindTimeL( nextRemindTime );
-                                       
-                iReminderTimer->StartReminderTimerL( oneweek );
-                }
             //clear the retry time
             SetRetryTimesL( 0 ); 
             }
@@ -945,7 +797,6 @@
             break;
             
         case EFirstTimeMode:
-        //case EFirstTimeRemindMode:
             {
             FLOG("[bgchecker] runl EFirstTimeMode");
             
@@ -970,18 +821,10 @@
                 }
             }
             break;
-        /*
+
         case EFirstTimeMode2:
             {
-            FLOG("[bgchecker] runl EFirstTimeMode2");
-            LaunchNotificationL( 1 );
-            //LaunchSoftNotificationL(R_IAUPDATE_REMIND_LATER, R_TEXT_SOFTKEY_YES, R_TEXT_SOFTKEY_NO );
-            }
-            break;
-        */
-        case EFirstTimeMode2:
-            {
-            FLOG("[bgchecker] runl EFirstTimeMode3");                 
+            FLOG("[bgchecker] runl EFirstTimeMode2");                 
             //disclaimer is not accepted  
            
             if ( !IsAgreementAcceptedL()  )
@@ -1012,146 +855,6 @@
        
     }
 
-/*
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::RunL()
-// ----------------------------------------------------------
-void CIAUpdateBGTimer::RunL()
-    {
-    FLOG("[bgchecker]RunL() ");
-    if ( !IAUpdateEnabledL() )
-        {
-        Shutdown();
-        return;
-        }
-    User::LeaveIfError( iStatus.Int() );
-    //Check the mode again, in case the mode is changed while waiting.
-    iMode = ModeL();
-    
-    switch ( iMode )
-        {
-        case ENormalMode:
-        case ERetryMode:
-            {     
-            FLOG("[bgchecker]RunL() ENormalMode");                                    
-            //roaming case is checked in IAUpdate server side
-            if ( IsAutoUpdateDisabledL() )
-                {
-                ListenAutoUpdateSettingsL();
-                
-                iMode = ESleepMode;
-                SetModeL( iMode );
-                
-                //the program is waked up when automatic checking is changed by user.
-                //cenrep call back will be used.
-                return;
-                }                        
-            
-            FLOG("[bgchecker]RunL() ENormalMode 1");
-            
-            if(iRuns == 0)
-                {
-                FLOG("[bgchecker]RunL() ENormalMode 2");
-                // if user did the refresh from server while waiting, restart the timer.
-                // the last refresh time is read from the private file of IAUpdate server.
-                TTimeIntervalMinutes timetowait =
-                        TimeIntervalFromNextRefreshL();
-
-                if (timetowait.Int() <= 0 )
-                    {
-                    DoUpdatesCheckingL( ETrue );
-                    }
-                else
-                    {
-                    StartL( timetowait );
-                    }
-                FLOG("[bgchecker]RunL() ENormalMode 3");
-                }
-            else
-                {
-                FLOG("[bgchecker]RunL() ENormalMode 4");
-                TTimeIntervalMinutes timetowait = TimeIntervalFromNextRefreshL();
-                   
-                   if ( timetowait.Int() <= 0 )
-                       {
-                       StartL( StartNow );
-                       }
-                   else
-                       {
-                       StartL( timetowait );
-                       }
-                   FLOG("[bgchecker]RunL() ENormalMode 5");
-                 }        
-            }
-            break;
-            
-        case EFirstTimeMode:
-        case EFirstTimeRemindMode:
-            {
-            FLOG("[bgchecker] runl EFirstTimeMode");
-            
-            if ( iRuns == 0 )
-                {
-                FLOG("[bgchecker] runl run = 0");
-                HandlerFirstTimeL();
-                }
-            else
-                {
-                FLOG("[bgchecker] runl still wait");
-                TTimeIntervalMinutes timetowait = TimeIntervalFromNextShowOfNewFeatureDialogL();
-                                   
-                if ( timetowait.Int() <= 0 )
-                    {
-                    StartL( StartNow );
-                    }
-                 else
-                    {
-                    StartL( timetowait );
-                    } 
-                }
-            }
-            break;
-
-        case EFirstTimeMode2:
-            {
-            FLOG("[bgchecker] runl EFirstTimeMode2");
-            LaunchNotificationL( 1 );
-            //LaunchSoftNotificationL(R_IAUPDATE_REMIND_LATER, R_TEXT_SOFTKEY_YES, R_TEXT_SOFTKEY_NO );
-            }
-            break;
-
-        case EFirstTimeMode3:
-            {
-            FLOG("[bgchecker] runl EFirstTimeMode3");                 
-            //disclaimer is not accepted  
-           
-            if ( !IsAgreementAcceptedL()  )
-                {
-                FLOG("[bgchecker] runl EFirstTimeMode reject disclaimer");
-                //user accepte the new feature dialog but user reject sthe disclaimer
-                //in sleep mode now
-                iMode = ESleepMode;
-                SetModeL( iMode );
-                //subscribe to cenrep key for automatic checking for wake up from sleep mode
-                ListenAutoUpdateSettingsL(); 
-                }
-            else
-                {
-                FLOG("[bgchecker] runl EFirstTimeMode go to normal mode");
-                //Set to Normal mode
-                //check autochecksetting in Runl later
-                iMode = ENormalMode;
-                SetModeL( iMode );
-                StartL( StartNow );
-                }
-            }
-            break;
-            
-        default:
-            break;
-        };
-       
-    }*/
 
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::HandlerFirstTimeL()
@@ -1178,8 +881,6 @@
         //this is first time mode
         FLOG("[bgchecker]HandlerFirstTimeL 3 ");
         LaunchNotificationL( 0 );
-        // LaunchSoftNotificationL( R_IAUPDATE_FEATURES_AVAILABLE,
-        //            R_TEXT_SOFTKEY_OK, R_TEXT_SOFTKEY_CANCEL );
         }
     }
 
@@ -1446,12 +1147,6 @@
         FLOG(" current mode is FirstTimeMode ");
         interval = FirstTimeDialogDelayInMinutesL();
         }
-    /*
-    else if ( ModeL() == EFirstTimeRemindMode )
-        {
-        FLOG(" current mode is FirstTimeRemindMode");
-        interval = FirstTimeDialogReminderIntervalInMinutesL();
-        }*/
     else
         {
         //nothing
@@ -1485,7 +1180,6 @@
       switch ( iMode )
           {
           case EFirstTimeMode:
-          // case EFirstTimeRemindMode:     
                  {
                  
                  FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode");
@@ -1499,12 +1193,6 @@
                      //subscribe to cenrep key for automatic checking for wake up from sleep mode
                      ListenAutoUpdateSettingsL();
                      
-                     /*
-                     FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode not accepted");
-                     iMode = EFirstTimeMode2;
-                     SetModeL( iMode );
-                     StartL( StartNow );
-                     */
                      }
                  else
                      {
@@ -1524,60 +1212,13 @@
                  break;
                  }
                  
-                 
-          /*       
-          case EFirstTimeMode2:  // reminder 
-              {
-              FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode2 ");
-              if ( aIsAccepted ) // reminder accepted ?
-                  {
-                  FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode2, accepted");
-                  //user wants to be reminder so remind in 4 weeks
-                  //set to first time remind mode
-                  iMode = EFirstTimeRemindMode;
-                  SetModeL( iMode );
-                  TTimeIntervalMinutes fourweeks( FirstTimeDialogReminderIntervalInMinutesL() );            
-                  TTime currenttime;
-                  currenttime.UniversalTime();
-                        
-                  //save the next show new feature dialog time
-                  //in case use switch off the device and restarted.      
-                  User::LeaveIfError( SetLastTimeShowNewFeatureDialogL( currenttime ) );
-                        
-                  StartL( fourweeks );
-                  return;
-                  }
-              else
-                  {
-                  FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode2, not accepted");
-                  //in sleep mode now
-                  iMode = ESleepMode;
-                  SetModeL( iMode );
-                  
-                  //subscribe to cenrep key for automatic checking for wake up from sleep mode
-                  ListenAutoUpdateSettingsL(); 
-                  }
-              break;
-              }
-          */    
           case ENormalMode:
               {
               FLOG("[bgchecker] SoftNotificationCallBack ENormalMode");
               if ( !aIsAccepted )
                   {
                   FLOG("[bgchecker] SoftNotificationCallBack ENormalMode not accpeted");
-                  //user wants to be reminded later
-                  TTimeIntervalMinutes oneweek( UpdateAvailableReminderIntervalInMinutesL() );   
-                  TTime currenttime;
-                  currenttime.UniversalTime();
-                  TTime nextRemindTime = currenttime + oneweek;
-
-                  SetReminderL( ETrue );
-                  SetNextRemindTimeL( nextRemindTime );
                   
-                  iReminderTimer->StartReminderTimerL( oneweek );
-                  
-                  //the reminder call back function will be called when reminder timer expires.
                   }
               else
                   {
@@ -1599,127 +1240,6 @@
           }
     }
 
-/*
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::DoSoftNotificationCallBackL()
-// ----------------------------------------------------------
-void CIAUpdateBGTimer::DoSoftNotificationCallBackL( TBool aIsAccepted )
-    {
-    FLOG("[bgchecker] SoftNotificationCallBack");
-    if ( !IAUpdateEnabledL() )
-        {
-        Shutdown();
-        return;
-        }
-    iMode = ModeL(); 
-    
-      switch ( iMode )
-          {
-          case EFirstTimeMode:
-          case EFirstTimeRemindMode:     
-                 {
-                 
-                 FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode");
-                 if ( !aIsAccepted )
-                     {
-                     FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode not accepted");
-                     iMode = EFirstTimeMode2;
-                     SetModeL( iMode );
-                     StartL( StartNow );
-                     }
-                 else
-                     {
-                     FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMod accepeted");
-                     StartIaupdateL();
-                     //iaupdate is launched
-                     //check the disclaimer acceptance and automatic checking setting in 10mins
-
-                     StartL( KDelayForUserToAcceptDisclaimer );
-                     iMode = EFirstTimeMode3;     
-                     SetModeL( iMode );
-
-                     
-                     //Still in first time mode, 
-                     //check user's setting and disclamier after 10mins.
-                     }
-                 break;
-                 }
-                 
-                 
-                 
-          case EFirstTimeMode2:  // reminder 
-              {
-              FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode2 ");
-              if ( aIsAccepted ) // reminder accepted ?
-                  {
-                  FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode2, accepted");
-                  //user wants to be reminder so remind in 4 weeks
-                  //set to first time remind mode
-                  iMode = EFirstTimeRemindMode;
-                  SetModeL( iMode );
-                  TTimeIntervalMinutes fourweeks( FirstTimeDialogReminderIntervalInMinutesL() );            
-                  TTime currenttime;
-                  currenttime.UniversalTime();
-                        
-                  //save the next show new feature dialog time
-                  //in case use switch off the device and restarted.      
-                  User::LeaveIfError( SetLastTimeShowNewFeatureDialogL( currenttime ) );
-                        
-                  StartL( fourweeks );
-                  return;
-                  }
-              else
-                  {
-                  FLOG("[bgchecker] SoftNotificationCallBack EFirstTimeMode2, not accepted");
-                  //in sleep mode now
-                  iMode = ESleepMode;
-                  SetModeL( iMode );
-                  
-                  //subscribe to cenrep key for automatic checking for wake up from sleep mode
-                  ListenAutoUpdateSettingsL(); 
-                  }
-              break;
-              }
-              
-          case ENormalMode:
-              {
-              FLOG("[bgchecker] SoftNotificationCallBack ENormalMode");
-              if ( !aIsAccepted )
-                  {
-                  FLOG("[bgchecker] SoftNotificationCallBack ENormalMode not accpeted");
-                  //user wants to be reminded later
-                  TTimeIntervalMinutes oneweek( UpdateAvailableReminderIntervalInMinutesL() );   
-                  TTime currenttime;
-                  currenttime.UniversalTime();
-                  TTime nextRemindTime = currenttime + oneweek;
-
-                  SetReminderL( ETrue );
-                  SetNextRemindTimeL( nextRemindTime );
-                  
-                  iReminderTimer->StartReminderTimerL( oneweek );
-                  
-                  //the reminder call back function will be called when reminder timer expires.
-                  }
-              else
-                  {
-                  //accepted, launch iad
-                  StartIaupdateL();
-                  }
-              break;
-              }
-
-          case ESleepMode:
-              {
-              FLOG("[bgchecker] SoftNotificationCallBack ESleepMode");
-              //donothing
-              break;
-              }
-
-          default:
-              break;
-          }
-    } */
-
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::SoftNotificationCallBack()
 // ----------------------------------------------------------
@@ -1737,58 +1257,6 @@
     return iMode;
     }
 
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::DoReminderTimerCallBack()
-// ----------------------------------------------------------
-void CIAUpdateBGTimer::DoReminderTimerCallBackL()
-    {
-    FLOG("[bgchecker] ReminderTimerCallBack begin");
-    if ( !IAUpdateEnabledL() )
-        {
-        Shutdown();
-        return;
-        }
-    //Check the automatic update setting, if it has been disabled, 
-    //then go to sleep mode.   
-    if ( IsAutoUpdateDisabledL() )
-        {
-        FLOG("[bgchecker] ReminderTimerCallBack autoupdate is disabled, switch to sleep mode");
-        ListenAutoUpdateSettingsL();
-        iMode = ESleepMode;
-        SetModeL( iMode );
-        return;
-        } 
-    
-    TTimeIntervalMinutes timetowait = TimeIntervalFromNextRefreshL();
-    
-    if ( timetowait.Int() <= KRefreshTimerReminderTimerGap )
-        {
-        FLOG("[bgchecker] ReminderTimerCallBack refresh is about to come in one day. We don't show reminder then");
-        return;
-        }
-    
-    //if reminder is still on which means the BGTimer is not expired 
-    //and checkupdate() is not called yet, then go ahead to call DoupdatesChecking
-    //this is to avoid DoUpdateChecking being called at the same time.
-        
-    if ( ReminderOnL() )
-        {
-        FLOG("[bgchecker] ReminderTimerCallBack Reminder is still ON");
-        DoUpdatesCheckingL( EFalse );
-        }
-    FLOG("[bgchecker] ReminderTimerCallBack end");
-    }
-
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::ReminderTimerCallBack()
-// ----------------------------------------------------------
-void CIAUpdateBGTimer::ReminderTimerCallBack()
-    {
-    TRAP_IGNORE( DoReminderTimerCallBackL() );
-    }
-   
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::LaunchNotificationL( const int aNrOfUpdates )
 // ----------------------------------------------------------
@@ -1874,7 +1342,6 @@
     // HBufC* secondText3 = HbTextResolverSymbian::LoadL(KTextSecond);
     // CleanupStack::PushL( titleText );
     
-    //TBuf<256> iconPath;
     
     TBuf<128> titleText;
     TBuf<128> secondText;
@@ -1893,6 +1360,7 @@
     secondText.Append(KSecondText);
             
     // icon
+    /* HLa-->
     if ( iMode == ENormalMode )
         {
         TFileName path;
@@ -1906,7 +1374,7 @@
             //CleanupStack::PopAndDestroy( image );
             }
         }
-    
+    */
     // loc: set image path
     // iSoftNotification->SetImagePathL( KIcon );
   
@@ -1922,211 +1390,10 @@
     iSoftNotification->SetNrOfUpdates( aNrOfUpdates );
    
     iSoftNotification->ShowNotificationL();
-    FLOG("[bgchecker] LaunchSoftNotificationL 1");
-    // CleanupStack::PopAndDestroy( 3 ); //text, sk1, sk2
+    FLOG("[bgchecker] LaunchNotificationL 1");
     
     return;
     }
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::LaunchSoftNotificationL()
-// ----------------------------------------------------------
-/* HLa
-void CIAUpdateBGTimer::LaunchSoftNotificationL( const TInt& aResourceId, const TInt& SK1, const TInt& SK2 )
-    {     
-    iInternalFile->ReadControllerDataL(); 
-    TInt snid = iInternalFile->SoftNotificationID();
-    if ( snid ) 
-        {
-        //there is a soft notification buffered, remove it
-        iSoftNotification->RemoveSoftNotificationL( snid );
-        }
-    
-    FLOG("[bgchecker] LaunchSoftNotificationL ");
-    HBufC* text = ReadResourceLC( aResourceId );    
-    HBufC* sk1 = ReadResourceLC( SK1 );    
-    HBufC* sk2 = ReadResourceLC( SK2 );  
-    
-        
-    iMode = ModeL();
-    
-    if ( iMode == ENormalMode )
-        {
-        TFileName path;
-        TInt err = GetPrivatePathL( path ); 
-        
-        if ( err == KErrNone )
-            {
-            HBufC8* image = LoadFileLC( path );   
-            iSoftNotification->SetImageL( *image );
-            //iSoftNotification->SetImagePathL( *image );
-            CleanupStack::PopAndDestroy( image );
-            }
-        }
-  
-    
-    iSoftNotification->SetTextL( *text, *text );
-   
-    iSoftNotification->ShowSoftNotificationL();
-    FLOG("[bgchecker] LaunchSoftNotificationL 1");
-    CleanupStack::PopAndDestroy( 3 ); //text, sk1, sk2
-    }
-*/
-
-
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::GetPrivatePathL()
-// ----------------------------------------------------------
-TInt CIAUpdateBGTimer::GetPrivatePathL( TFileName& aPath )
-    {
-    RFs fsSession;  
-    User::LeaveIfError( fsSession.Connect() );
-    CleanupClosePushL( fsSession );
-
-    // This will set the correct drive and private path 
-    // for the file server session. 
-    TInt err = KErrNone;
-    TRAP( err, SetPrivateDriveL( fsSession, KImageFile ) );
-    
-    if ( err != KErrNone )
-        {
-        CleanupStack::PopAndDestroy( &fsSession ); 
-        return err;
-        }
-   
-    err = fsSession.SessionPath( aPath );
-    aPath.Append( KImageFile );
-    
-    CleanupStack::PopAndDestroy( &fsSession ); 
-    return err;
-    }
-
-/*
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::LoadFileLC()
-// ----------------------------------------------------------
- HBufC8* CIAUpdateBGTimer::LoadFileLC(const TDesC& aFile)
-     {
-     RFs fs;
-    User::LeaveIfError( fs.Connect() );
-    CleanupClosePushL( fs );
-    RFile file;
-    User::LeaveIfError(file.Open(fs, aFile, EFileRead));
-    CleanupClosePushL(file);
-    TInt size;
-    User::LeaveIfError(file.Size(size));
-    HBufC8* imagebuf = HBufC8::NewL(size);
-    TPtr8 imageptr(imagebuf->Des());
-    file.Read(imageptr);
-    CleanupStack::PopAndDestroy( &file ); 
-    CleanupStack::PopAndDestroy( &fs ); 
-    CleanupDeletePushL(imagebuf);
-    return imagebuf;
-     } 
-*/
- 
- // ----------------------------------------------------------
- // CIAUpdateBGTimer::SetPrivateDriveL()
- // ----------------------------------------------------------
- void CIAUpdateBGTimer::SetPrivateDriveL( 
-     RFs& aFs,
-     const TDesC& aFileName ) const
-     {
-     // First try to find the file from the private directory
-     // of the drive where the process exists.
-     RProcess process;
-
-     // Set the session private path according to 
-     // the process file name drive.
-     TInt driveNum( 
-         SetSessionPrivatePathL( aFs, process.FileName() ) );
-
-     // Get the session path that was set above.
-     TFileName sessionPath;
-     User::LeaveIfError( aFs.SessionPath( sessionPath ) );
-
-     // Use the file finder to check if the file actually exists 
-     // in the given drive path. If it does not, the file finder 
-     // will automatically check from other drives. So, here we 
-     // should always find the file if any exists.
-     TFindFile finder( aFs );
-     User::LeaveIfError( finder.FindByDir( aFileName, sessionPath ) );
-
-     // The drive may have changed if the file was not found from
-     // the first suggested drive. So, be sure to have the correct
-     // private path.
-     driveNum = SetSessionPrivatePathL( aFs, finder.File() );
-
-     // Use the drive info to check if the drive is ROM drive.
-     // We prefer non ROM drives. But, accept ROM if nothing else is
-     // available.
-     TDriveInfo info;
-     User::LeaveIfError( aFs.Drive( info, driveNum ) );
-     TBool isRomDrive( info.iDriveAtt & KDriveAttRom );
-     if ( !isRomDrive )
-         {
-         // The current file is not in ROM drive so use that.
-         return;
-         }
-
-     // Because previous finding was ROM file, try to find a non ROM file.
-     TInt findErrorCode( finder.Find() );
-     if ( findErrorCode == KErrNotFound )
-         {
-         // Because no new file is found, use the current settings.
-         return;
-         }
-     User::LeaveIfError( findErrorCode );
-
-     // Update the session path for the correct file.
-     SetSessionPrivatePathL( aFs, finder.File() );
-     }
-
-
- // ----------------------------------------------------------
- // CIAUpdateBGTimer::SetSessionPrivatePathL()
- // ----------------------------------------------------------
- TInt CIAUpdateBGTimer::SetSessionPrivatePathL( 
-     RFs& aFs,
-     const TDesC& aPath ) const
-     {                      
-     // Use the parser to get the drive information from the path.
-     TParsePtrC parser( aPath );
-
-     if ( !parser.DrivePresent() )
-         {
-         User::Leave( KErrArgument );
-         }
-
-     // Drive check was passed above.
-     // So, drive information is safe to use.
-     const TDesC& drive( parser.Drive() );
-     const TChar driveChar( drive[ 0 ] );
-     TInt driveNum( EDriveA );
-     User::LeaveIfError( 
-         RFs::CharToDrive( driveChar, driveNum ) );
-
-     // Set the file drive to be file session private path drive.
-     User::LeaveIfError( aFs.SetSessionToPrivate( driveNum ) );
-
-     return driveNum;
-     }
-
- 
-// ----------------------------------------------------------
-// CIAUpdateBGTimer::ReadResourceLC()
-// ----------------------------------------------------------
- /* HLa
-HBufC* CIAUpdateBGTimer::ReadResourceLC( TInt aResourceId )
-    {
-    TResourceReader reader;
-    HBufC8* buff = iResourceFile.AllocReadLC( aResourceId );
-    reader.SetBuffer( buff );
-    HBufC* text = reader.ReadHBufCL();
-    CleanupStack::PopAndDestroy( buff );
-    CleanupStack::PushL( text );
-    return text;
-    } */
-
 
 // ----------------------------------------------------------
 // CIAUpdateBGTimer::IsAutoUpdateDisabledL()
@@ -2255,8 +1522,8 @@
     delete iUpdate; 
     iUpdate = NULL;
     
-    delete iReminderTimer;
-    iReminderTimer = NULL;
+    //delete iReminderTimer;
+    //iReminderTimer = NULL;
     
     if ( iNotifyHandler ) 
         {
@@ -2267,7 +1534,6 @@
     
     if ( iSoftNotification )
         {
-        // TRAP_IGNORE( iSoftNotification->RemoveSoftNotificationL( iSoftNotification->Id() ) );    
         delete iSoftNotification;
         iSoftNotification = NULL;
         }
@@ -2276,9 +1542,4 @@
         
     FLOG("[bgchecker] Shutdown() end");
     }
-
-
-
 // End of file
-
-
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -103,28 +103,19 @@
 
     delete iTitle;
     delete iText;
-
-    delete iImagePath;
     
     delete iNotificationDialog;
 
     }
    
 // -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::ShowSoftNotificationL
+// CIAUpdateBGSoftNotification::ShowNotificationL
 // Displays notification
 // -----------------------------------------------------------------------------
 //
 void CIAUpdateBGSoftNotification::ShowNotificationL()
     {
     
-    /*
-    _LIT( KIcon, "C:\\qgn_note_swupdate_notification.svg" );
-    _LIT( KFirstTimeText, "Check for updates ?" );
-    _LIT( KNormalText, "Check for updates ?" );
-    _LIT( KTextRow2, "Tap to view" );
-    */
-    
     FLOG("[bgchecker] ShowNotificationL");
     
     // crete dialog, id does not exist already
@@ -133,11 +124,6 @@
         iNotificationDialog = CHbDeviceNotificationDialogSymbian::NewL( this );
         }
     
-    //CleanupStack::PushL( notificationDialog ); // --> memberiin - delete closessa/activaatiossa/destructorissa
-                                                           //    + leave kiinni + tuhoaminen
-    // save number of updates
-    //SetNrOfUpdates ( aNrOfUpdates );
-    
     // enable indicator showing
     SetIndicatorEnabled( ETrue );
 
@@ -170,7 +156,7 @@
         CHbSymbianVariant::EInt );
     CleanupStack::PushL( varValue );
     // Temporary removal 
-    // ind->Activate( KIndicatorTypeBgc, varValue );
+    ind->Activate( KIndicatorTypeBgc, varValue );
     CleanupStack::PopAndDestroy( varValue );
     CleanupStack::PopAndDestroy( ind );
     
@@ -191,7 +177,7 @@
     CHbIndicatorSymbian *ind = CHbIndicatorSymbian::NewL();
     CleanupStack::PushL( ind );
     // Temporary removal 
-    // ind->Deactivate( KIndicatorTypeBgc ); 
+    ind->Deactivate( KIndicatorTypeBgc ); 
     CleanupStack::PopAndDestroy(ind);
     
     return;
@@ -216,19 +202,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CIAUpdateBGSoftNotification::SetImagePathL
-// Sets an image path for a soft notification
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGSoftNotification::SetImagePathL( const TDesC& aImage )
-    {
-    HBufC* txt = aImage.AllocL();
-    delete iImagePath;
-    iImagePath = txt;
-    return;
-    }
-
-// -----------------------------------------------------------------------------
 // CIAUpdateBGSoftNotification::SetNrOfUpdates
 // Sets an image path for a soft notification
 // -----------------------------------------------------------------------------
@@ -280,11 +253,6 @@
         iNotificationDialog->SetTextL(iText->Des());
         }
     
-    if ( iImagePath )
-        {
-        iNotificationDialog->SetIconNameL(iImagePath->Des());
-        }
-    
     // set wrapping, timeout and touch 
     iNotificationDialog->SetTitleTextWrapping(
             CHbDeviceNotificationDialogSymbian::TextWordWrap);
@@ -311,16 +279,6 @@
     return iActivateIndicator;
     
     }
-// ----------------------------------------------------------
-// CIAUpdateBGSoftNotification::SetNrOfUpdates( TIAUpdateBGMode aNrOfUpdates )
-// ----------------------------------------------------------
-/*
-void CIAUpdateBGSoftNotification::SetNrOfUpdates( const int aNrOfUpdates )
-    {
-    
-    iNrOfUpdates = aNrOfUpdates;
-    
-    }*/
 
 // ----------------------------------------------------------
 // CIAUpdateBGSoftNotification::GetNrOfUpdates()
--- a/iaupdate/IAD/bgcindicatorplugin/inc/bgcindicator.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/inc/bgcindicator.h	Thu Jun 24 12:37:54 2010 +0300
@@ -11,7 +11,7 @@
  *
  * Contributors:
  *
- * Description: Message Indicator class
+ * Description: Backgroundchecker Indicator class
  *
  */
 
@@ -57,12 +57,8 @@
     
 private: 
     /**
-     * Prepares the display name from stream.
-     * @param dataStream data stream. 
+     * Start the iaupdate client
      */
-    //void prepareDisplayName(QDataStream& dataStream);
-    
-    //HLa
     void StartIaupdateL() const;
     
 private:
--- a/iaupdate/IAD/bgcindicatorplugin/inc/bgcindicatorplugin.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/inc/bgcindicatorplugin.h	Thu Jun 24 12:37:54 2010 +0300
@@ -11,7 +11,7 @@
  *
  * Contributors:
  *
- * Description: Message Indicator Plugin Class 
+ * Description: Backgroundchecker Indicator Plugin Class 
  *
  */
 
@@ -26,8 +26,8 @@
 #include <hbindicatorinterface.h>
 
 /**
- * Message indicator plugin class. 
- * Main class of message indicator plugin. 
+ * Backgroundchecker indicator plugin class. 
+ * Main class of backgroundchecker indicator plugin. 
  */
 class BgcIndicatorPlugin : public QObject, public HbIndicatorPluginInterface
 {
--- a/iaupdate/IAD/bgcindicatorplugin/resources/message.svg	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="tiny" height="40px" version="1.1" viewBox="0 0 30 40" width="30px" x="0px" y="0px">
-<g>
-<path d="M27.458,17.31l-0.81-0.416l0.81-0.418c0.624-0.317,0.62-1.024,0.405-1.392l-0.881-1.512   c-0.251-0.43-0.877-0.683-1.406-0.336l-0.748,0.484l0.051-0.892c0.025-0.453-0.309-1.056-0.998-1.056h-1.764   c-0.57,0-1.031,0.48-0.998,1.056l0.051,0.892l-0.748-0.484c-0.402-0.263-1.08-0.22-1.406,0.336l-0.879,1.512   c-0.219,0.376-0.126,0.735-0.049,0.916H6C4.346,16,3,17.345,3,19v12c0,1.621,1.293,2.944,2.901,2.997v2.695   c0,1.407,1.723,2.251,2.869,1.029l3.063-3.723h11.165C24.654,33.999,26,32.653,26,31V20.706c0.185,0.031,0.699-0.003,0.982-0.487   l0.881-1.516C28.278,17.989,27.701,17.435,27.458,17.31z" fill-opacity="0.2" stroke-opacity="0.2"/>
-<path d="M27,15.588l-0.882-1.512c0,1.023-6.239,1.58-6.239,0L19,15.588l7.118,4.126L27,18.199l-2.536-1.305   L27,15.588z" fill-opacity="0.5" stroke-opacity="0.5"/>
-<path d="M4,26.718V31c0,1.101,0.9,2,2,2h0.901v3.692c0,0.517,0.646,0.86,1.098,0.394L11.362,33H23c1.1,0,2-0.899,2-2   v-4.282c0-0.004-0.001-0.007-0.001-0.011L4,26.718z" fill-opacity="0.5" stroke-opacity="0.5"/>
-<linearGradient gradientTransform="matrix(1 0 0 1 -1530 0)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="1544.5" x2="1544.5" y1="13.4609" y2="38.8497">
-<stop offset="0" style="stop-color:#FFE23D"/>
-<stop offset="0.2239" style="stop-color:#FAD337"/>
-<stop offset="0.6537" style="stop-color:#EFAB26"/>
-<stop offset="1" style="stop-color:#E48717"/>
-</linearGradient>
-<path d="M23,16H6c-1.1,0-2,0.9-2,2v12c0,1.101,0.9,2,2,2h0.901v3.692c0,0.438,0.599,0.907,1.098,0.394   L11.362,32H23c1.1,0,2-0.899,2-2V18C25,16.9,24.1,16,23,16z" fill="url(#SVGID_1_)"/>
-<rect fill="#A55B11" height="1" width="10" x="9.5" y="20.5"/>
-<rect fill="#A55B11" height="1" width="10" x="9.5" y="23.5"/>
-<rect fill="#A55B11" height="1" width="6.25" x="9.5" y="26.5"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="14.7773" x2="14.7773" y1="17" y2="32.9845">
-<stop offset="0" style="stop-color:#FFE23D"/>
-<stop offset="0.2239" style="stop-color:#FAD337"/>
-<stop offset="0.6537" style="stop-color:#EFAB26"/>
-<stop offset="1" style="stop-color:#E48717"/>
-</linearGradient>
-<path d="M25,18c0-0.572-0.243-1.089-0.631-1.454l-0.706,0.705C23.869,17.435,24,17.702,24,18   v11.999c0,0.554-0.5,1.002-1,1.002H10.891l-2.989,3.627v-3.627H6c-0.263,0-0.499-0.107-0.678-0.274   c0.009,0.009,0.013,0.021,0.022,0.03l-0.79,0.616C4.92,31.757,5.432,32,6,32h0.901v3.692c0.005,0.61,0.755,0.782,1.098,0.394   L11.362,32H23c1.172,0,2-0.947,2-2V18z" fill="url(#SVGID_2_)" fill-opacity="0.2" stroke-opacity="0.2"/>
-<path d="M7.901,34.628v-3.627l-1,0.999v3.692c0,0.262,0.164,0.494,0.411,0.583L7.901,34.628z" fill="#FFFFFF" fill-opacity="0.2" stroke-opacity="0.2"/>
-<path d="M5.345,30.757c-0.212-0.184-0.347-0.455-0.347-0.758V18c0-0.552,0.449-1.001,1.002-1.001h17   c0.254,0,0.457,0.069,0.663,0.252l0.706-0.705C24.011,16.208,23.528,16,23,16H6c-1.1,0-2,0.9-2,2v12   c0,0.532,0.211,1.017,0.552,1.376L5.345,30.757z" fill="#FFFFFF" fill-opacity="0.4" stroke-opacity="0.4"/>
-<path d="M7.901,31.001H6c-0.263,0-0.499-0.107-0.678-0.274c0.009,0.009,0.013,0.021,0.022,0.03l-0.79,0.616   C4.92,31.757,5.432,32,6,32h0.901L7.901,31.001z" fill-opacity="0.2" stroke-opacity="0.2"/>
-<path d="M25,18c0-0.572-0.243-1.089-0.631-1.454l-0.706,0.705C23.869,17.435,24,17.702,24,18v11.999   c0,0.585-0.562,1.002-1,1.002H10.891l-2.989,3.627l-0.589,1.647c0.067,0.024,0.422,0.105,0.687-0.189L11.362,32H23   c0.984,0,2-0.775,2-2V18z" fill-opacity="0.2" stroke-opacity="0.2"/>
-<path d="M25,16.619L24.25,16h-5.518c0.014,0.009,1.713,0.894,1.713,0.894l-1.675,0.86   c-0.317,0.205-0.271,0.577-0.204,0.694l0.879,1.515c0.352,0.402,0.623,0.224,0.705,0.171l1.574-1.017l-0.105,1.856   c0.021,0.438,0.361,0.527,0.498,0.527h1.764c0.4,0,0.508-0.391,0.498-0.527l-0.104-1.856L25,19.587V16.619z" fill-opacity="0.3" stroke-opacity="0.3"/>
-<polygon fill="#EA2227" points="27,17.199 26.118,18.714 23.722,17.162 23.881,20 22.117,20 22.277,17.162 19.879,18.714    19,17.199 21.537,15.895 19,14.588 19.879,13.076 22.277,14.625 22.117,11.771 23.881,11.771 23.722,14.625 26.118,13.076    27,14.588 24.464,15.895  "/>
-<rect fill="none" height="40" width="30"/>
-</g>
-</svg>
--- a/iaupdate/IAD/bgcindicatorplugin/rom/bgcindicatorplugin.iby	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/rom/bgcindicatorplugin.iby	Thu Jun 24 12:37:54 2010 +0300
@@ -20,5 +20,4 @@
 REM DLL
 file=ABI_DIR\UREL\bgcindicatorplugin.dll               SHARED_LIB_DIR\bgcindicatorplugin.dll UNPAGED
 data=\epoc32\data\z\resource\plugins\indicators\bgcindicatorplugin.qtplugin   \resource\plugins\indicators\bgcindicatorplugin.qtplugin
-data=\epoc32\s60\icons\qgn_note_swupdate_notification.svg   \resource\iaupdate\qgn_note_swupdate_notification.svg
 #endif
\ No newline at end of file
--- a/iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -131,9 +131,7 @@
     case DecorationNameRole:
     case MonoDecorationNameRole:
         {
-        // QString iconName("z:/resource/messaging/message.svg");
-        // HbIcon iconName1 ("c:/qgn_note_swupdate_notification.svg");
-        QString iconName("z:/resource/iaupdate/qgn_note_swupdate_notification.svg");
+        QString iconName("");
         return iconName;
         }
     default: 
--- a/iaupdate/IAD/engine/controller/inc/iaupdatenodeimpl.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/controller/inc/iaupdatenodeimpl.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -138,20 +138,19 @@
      */
     virtual TInt Depth() const;
     
-    /**
-     * Informs UI that downloading is ongoing
-     **/
-    virtual TBool Downloading() const;
-
-    /**
-     * Informs UI that installing is ongoing
-     **/
-    virtual TBool Installing() const;
-    
-    virtual void SetDownloading( TBool aDownloading );
-
-    virtual void SetInstalling( TBool aInstalling );
+    virtual void SetUiState( TUIUpdateState aState );
+        
+    virtual TUIUpdateState UiState() const;
+        
+    // for progress bar in UI
+    virtual void SetProgress( TInt aProgress );
         
+    virtual TInt Progress() const; 
+        
+    virtual void SetTotal( TInt aTotal );
+        
+    virtual TInt Total() const; 
+               
     /**
      * @see MIAUpdateNode:::NodeType
      */
@@ -337,9 +336,10 @@
     TDependencyCheckStatus              iDependencyCheckStatus;
     TInt                                iLeafDistance;
     TInt                                iDepth;
-    TBool                               iDownloading;
-    TBool                               iInstalling;
-
+    TUIUpdateState                      iUiUpdateState;
+    TInt                                iProgress;
+    TInt                                iTotal;
+    
     // These arrays do not own the nodes.
     RPointerArray< CIAUpdateNode >      iDependants;
     RPointerArray< CIAUpdateNode >      iExcessDependencyNodes;
--- a/iaupdate/IAD/engine/controller/src/iaupdateinstalloperation.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/controller/src/iaupdateinstalloperation.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -205,8 +205,10 @@
         {
         // Install interface was available.
         // So, start installing with silent install operation.
-        SwiUI::TInstallOptions options(
-            IAUpdateUtils::SilentInstallOptionsL( Node() ) );
+        // Get silent install parameters 
+        Usif::COpaqueNamedParams * options = Usif::COpaqueNamedParams::NewLC();
+
+        IAUpdateUtils::UsifSilentInstallOptionsL ( options );
         
         operation = install->SilentInstallL( *this, options );
 
@@ -216,7 +218,7 @@
             IAUPDATE_TRACE("[IAUPDATE] ERROR Could not create the operation.");
             User::Leave( KErrGeneral );
             }
-        
+        CleanupStack::Pop( options );
         CleanupStack::PopAndDestroy( install );
         }
     else
--- a/iaupdate/IAD/engine/controller/src/iaupdateloader.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/controller/src/iaupdateloader.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -504,18 +504,20 @@
         IAUPDATE_TRACE_1("[IAUPDATE] Container child: %d", i);
 
         MNcdNode* node( aParentContainer.ChildL( i ) );
-        CleanupReleasePushL( *node );
-
-        MNcdNodeContainer* container(
-            node->QueryInterfaceLC< MNcdNodeContainer >() );
-        if ( container )
+        if ( node )
             {
-            IAUPDATE_TRACE("[IAUPDATE] Container child had container interface");
-            LoadContainerL( *container );
-            CleanupStack::PopAndDestroy( container );                
+            CleanupReleasePushL( *node );
+
+            MNcdNodeContainer* container(
+            node->QueryInterfaceLC< MNcdNodeContainer >() );
+            if ( container )
+                {
+                IAUPDATE_TRACE("[IAUPDATE] Container child had container interface");
+                LoadContainerL( *container );
+                CleanupStack::PopAndDestroy( container );                
+                }
+            CleanupStack::PopAndDestroy( node );
             }
-
-        CleanupStack::PopAndDestroy( node );
         }
 
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateLoader::LoadChildContainersL() end");
@@ -636,55 +638,55 @@
     for ( TInt i = 0; i < childCount; ++i )
         {
         MNcdNode* node( aContainer.ChildL( i ) );
-        CleanupReleasePushL( *node );
+        if ( node )
+            {
+            CleanupReleasePushL( *node );
 
-        MNcdNodeContainer* container( 
-            node->QueryInterfaceLC< MNcdNodeContainer >() );
-        if ( container )
-            {
-            IAUPDATE_TRACE_1("[IAUPDATE] Container child: %d had container interface", i);
-
-            switch ( aPreviousOperationType )
+            MNcdNodeContainer* container( 
+               node->QueryInterfaceLC< MNcdNodeContainer >() );
+            if ( container )
                 {
-                case TIAUpdateOperationInfo::ELoadRoot:
-                    IAUPDATE_TRACE("[IAUPDATE] Load children of the root child");
-                    // When root is loaded, also its children are loaded
-                    // and they have now their child count. So, no need to
-                    // reload children of the root. Load their children
-                    // directly now.
-                    LoadChildrenL( *container );
-                    break;
-                    
-                case TIAUpdateOperationInfo::ELoadChildren:
-                    IAUPDATE_TRACE("[IAUPDATE] Load children of a container");
-                    // Notice, that now we need to first load the child count
-                    // for the child containers. So, even if children were 
-                    // already updated by LoadChildrenL, a new request for
-                    // containers needs . Otherwise, the child count 
-                    // will not be up-to-date. When the child containers are 
-                    // loaded, the flow will continue to load the children.
-                    LoadContainerL( *container );
-                    break;
+                IAUPDATE_TRACE_1("[IAUPDATE] Container child: %d had container interface", i);
+                switch ( aPreviousOperationType )
+                    {
+                    case TIAUpdateOperationInfo::ELoadRoot:
+                        IAUPDATE_TRACE("[IAUPDATE] Load children of the root child");
+                        // When root is loaded, also its children are loaded
+                        // and they have now their child count. So, no need to
+                        // reload children of the root. Load their children
+                        // directly now.
+                        LoadChildrenL( *container );
+                        break;
+                            
+                    case TIAUpdateOperationInfo::ELoadChildren:
+                        IAUPDATE_TRACE("[IAUPDATE] Load children of a container");
+                        // Notice, that now we need to first load the child count
+                        // for the child containers. So, even if children were 
+                        // already updated by LoadChildrenL, a new request for
+                        // containers needs . Otherwise, the child count 
+                        // will not be up-to-date. When the child containers are 
+                        // loaded, the flow will continue to load the children.
+                        LoadContainerL( *container );
+                        break;
 
-                case TIAUpdateOperationInfo::ELoadAllChildren:
-                    IAUPDATE_TRACE("[IAUPDATE] Load all children of a container");
-                    // Notice, here we will try to skip the loading of the child
-                    // count of the container. So, all the children are tried to
-                    // be loaded directly even if the child count may not be
-                    // up-to-date.
-                    LoadAllChildrenL( *container );
-                    break;
-                    
-                default:
-                    IAUPDATE_TRACE("[IAUPDATE] ERROR: Wrong operation type");
-                    User::Leave( KErrArgument );
-                    break;
+                    case TIAUpdateOperationInfo::ELoadAllChildren:
+                        IAUPDATE_TRACE("[IAUPDATE] Load all children of a container");
+                        // Notice, here we will try to skip the loading of the child
+                        // count of the container. So, all the children are tried to
+                        // be loaded directly even if the child count may not be
+                        // up-to-date.
+                        LoadAllChildrenL( *container );
+                        break;
+                            
+                    default:
+                        IAUPDATE_TRACE("[IAUPDATE] ERROR: Wrong operation type");
+                        User::Leave( KErrArgument );
+                        break;
+                    }
+                CleanupStack::PopAndDestroy( container );                
                 }
-
-            CleanupStack::PopAndDestroy( container );                
+            CleanupStack::PopAndDestroy( node );
             }
-
-        CleanupStack::PopAndDestroy( node );
         }
 
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateLoader::LoadChildrenOfChildrenL() end");
--- a/iaupdate/IAD/engine/controller/src/iaupdatenodeimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/controller/src/iaupdatenodeimpl.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -365,47 +365,69 @@
     return iDepth;
     }
 
+
 // ---------------------------------------------------------------------------
-// CIAUpdateNode::Downloading()
+// CIAUpdateNode::SetUiState()
 // 
 // ---------------------------------------------------------------------------
 //
-TBool CIAUpdateNode::Downloading() const
+void CIAUpdateNode::SetUiState( MIAUpdateNode::TUIUpdateState aState )
     {
-    return iDownloading;
+    iUiUpdateState = aState;
     }
 
 // ---------------------------------------------------------------------------
-// CIAUpdateNode::Installing()
+// CIAUpdateNode::UiState()
+// 
+// ---------------------------------------------------------------------------
+//
+MIAUpdateNode::TUIUpdateState CIAUpdateNode::UiState() const
+    {
+    return iUiUpdateState;
+    }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateNode::SetProgress
 // 
 // ---------------------------------------------------------------------------
 //
-TBool CIAUpdateNode::Installing() const
+void CIAUpdateNode::SetProgress( TInt aProgress )
     {
-    return iInstalling;
+    iProgress = aProgress; 
     }
- 
+
 // ---------------------------------------------------------------------------
-// CIAUpdateNode::SetDownloading()
+// CIAUpdateNode::Progress
 // 
 // ---------------------------------------------------------------------------
 //
-void CIAUpdateNode::SetDownloading( TBool aDownloading )
+TInt CIAUpdateNode::Progress() const
     {
-    iDownloading = aDownloading;
+    return iProgress;
     }
 
 // ---------------------------------------------------------------------------
-// CIAUpdateNode::SetInstalling()
+// CIAUpdateNode::SetTotal
 // 
 // ---------------------------------------------------------------------------
 //
-void CIAUpdateNode::SetInstalling( TBool aInstalling )
+void CIAUpdateNode::SetTotal( TInt aTotal )
     {
-    iInstalling = aInstalling;
+    iTotal = aTotal; 
     }
 
 // ---------------------------------------------------------------------------
+// CIAUpdateNode::Total
+// 
+// ---------------------------------------------------------------------------
+//
+TInt CIAUpdateNode::Total() const
+    {    
+    return iTotal;
+    }
+    
+
+// ---------------------------------------------------------------------------
 // CIAUpdateNode::NodeType
 // 
 // ---------------------------------------------------------------------------
--- a/iaupdate/IAD/engine/controller/src/iaupdateutils.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/controller/src/iaupdateutils.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -39,7 +39,8 @@
 #include <ncdpurchaseoption.h>
 
 #include <catalogsutils.h>
-#include <WidgetRegistryClient.h>
+//#include <WidgetRegistryClient.h>
+#include <usif/scr/scr.h>
 
 //Constants
 const TText KVersionSeparator( '.' );
@@ -303,6 +304,47 @@
 
 EXPORT_C TBool IAUpdateUtils::IsWidgetInstalledL(const TDesC& aIdentifier, TIAUpdateVersion& aVersion )
     {
+    
+    TBool retVal = EFalse;
+    
+    // Connect to registry
+    Usif::RSoftwareComponentRegistry scrSession;  
+    CleanupClosePushL( scrSession );
+    User::LeaveIfError( scrSession.Connect());
+       
+    // // Get widget component id by identifier
+    Usif::TComponentId compId = 0;
+    TRAPD( err, compId = 
+           scrSession.GetComponentIdL( aIdentifier, Usif::KSoftwareTypeWidget ));
+    
+    if ( err == KErrNotFound )
+        {
+        retVal = EFalse;
+        }
+    else if  (err != KErrNone )
+        {
+        User::Leave( err );
+        }
+    else
+        {
+        // Widget found
+        retVal = ETrue;
+        
+        // Get entry 
+        Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+        retVal = scrSession.GetComponentL(compId, *entry);
+        
+        // Convert version
+        DesToVersionL ( entry->Version(), aVersion.iMajor, aVersion.iMinor, aVersion.iBuild  );
+    
+        CleanupStack::PopAndDestroy(entry);
+        }
+    
+    CleanupStack::PopAndDestroy( &scrSession ); 
+    
+    return retVal;
+    
+    /*
     RWidgetRegistryClientSession widgetRegistry;
 
     User::LeaveIfError( widgetRegistry.Connect() );
@@ -339,6 +381,7 @@
     CleanupStack::PopAndDestroy( &widgetInfoArr );
     CleanupStack::PopAndDestroy( &widgetRegistry);
     return EFalse;
+    */
       
      
     }
@@ -461,79 +504,60 @@
     return exeFound;
     }
 
-
 // ---------------------------------------------------------------------------
-// IAUpdateUtils::SilentInstallOptionsL
+// IAUpdateUtils::UsifSilentInstallOptionsL
 // 
 // ---------------------------------------------------------------------------
-//
-SwiUI::TInstallOptions IAUpdateUtils::SilentInstallOptionsL(
-    const CIAUpdateBaseNode& aNode )
+
+void  IAUpdateUtils::UsifSilentInstallOptionsL( 
+        Usif::COpaqueNamedParams * aOptions )
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::SilentInstallOptionsL() begin");
-    SwiUI::TInstallOptions options;
+
+    aOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
 
-    // Upgrades are allowed        
-    options.iUpgrade = SwiUI::EPolicyAllowed;
-
+    // Upgrades are allowed 
+    aOptions->AddIntL( Usif::KSifInParam_AllowUpgrade, Usif::EAllowed );
+    
     // Install all if optional packets exist.
-    options.iOptionalItems = SwiUI::EPolicyAllowed;
-
+    aOptions->AddIntL( Usif::KSifInParam_InstallOptionalItems, Usif::EAllowed );
+    
     // Prevent online cert revocation check.
-    options.iOCSP = SwiUI::EPolicyNotAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_PerformOCSP, Usif::ENotAllowed );
     
     // See iOCSP setting above
-    options.iIgnoreOCSPWarnings = SwiUI::EPolicyAllowed;
-
+    aOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, Usif::EAllowed );
+    
     // Do not allow installation of uncertified packages.
-    options.iUntrusted = SwiUI::EPolicyNotAllowed;
-
-    // If filetexts are included in SIS package. Then, show them.
-    options.iPackageInfo = SwiUI::EPolicyUserConfirm;
+    aOptions->AddIntL( Usif::KSifInParam_AllowUntrusted, Usif::ENotAllowed );
+    
+    // If filetexts are included in SIS package, show them.
+    aOptions->AddIntL( Usif::KSifInParam_PackageInfo, Usif::EAllowed );
     
     // Automatically grant user capabilities.
-    // See also iUntrusted above.
-    options.iCapabilities = SwiUI::EPolicyAllowed;
-
+    // See also KSifInParam_AllowUntrusted above.
+    aOptions->AddIntL( Usif::KSifInParam_GrantCapabilities, Usif::EAllowed );
+    
     // Open application will be closed.
-    options.iKillApp = SwiUI::EPolicyAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, Usif::EAllowed );
     
     // Files can be overwritten.
-    options.iOverwrite = SwiUI::EPolicyAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, Usif::EAllowed  );
+    
+    // Incompatible allowed
+    aOptions->AddIntL( Usif::KSifInParam_AllowIncompatible, Usif::EAllowed  );
     
     // This only affects Java applications.
-    options.iDownload = SwiUI::EPolicyAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed  );
     
     // Where to save.
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::SilentInstallOptionsL() before DriveToInstallL");
-    TDriveUnit driveUnit;
-    if ( aNode.Mime().Compare( IAUpdateProtocolConsts::KMimeWidget ) == 0 )
-        {
-        driveUnit = IAUpdateUtils::DriveToInstallWidgetL( aNode.Identifier() );
-        }
-    else
-        {
-        driveUnit = IAUpdateUtils::DriveToInstallL( aNode.Uid(), aNode.OwnContentSizeL() );
-        }
-     IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::SilentInstallOptionsL() after DriveToInstallL");
-    
-    TDriveName driveName = driveUnit.Name();
-    IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateUtils::SilentInstallOptionsL() driveName: %S", &driveName );
-    options.iDrive = driveName[0];
+    //aOptions->AddIntL( Usif::KSifInParam_Drive, EDriveC );
     
     // Choose the phone language.
-    options.iLang = User::Language();
-    
-    // If language is asked, then use the current phone language.
-    options.iUsePhoneLang = ETrue;
+    TLanguage lang = User::Language();
+    //aOptions->AddIntL( Usif::KSifInParam_Languages, lang ); // User::Language() );
     
-    // Does not affect SISX. This is for Java.
-    options.iUpgradeData = SwiUI::EPolicyAllowed;
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::SilentInstallOptionsL() end");
-    return options;
+    //aOptions->AddIntL( Usif::KSifInParam_Drive, IAUpdateUtils::DriveToInstallL( aUid, aSize ) );
     }
-
-
 // -----------------------------------------------------------------------------
 // IAUpdateUtils::InstalledDriveL
 // 
@@ -653,6 +677,11 @@
                                            TDriveUnit& aLocationDrive )
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() begin");
+    aLocationDrive = EDriveC;
+    
+    //HLa: Widget registry remove
+    
+    /*
     TFileName widgetPath;
     aWidgetRegistry.GetWidgetPath( aUid, widgetPath );
     aLocationDrive = widgetPath.Mid( 0, 2 );
@@ -674,6 +703,8 @@
             IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() Physically removable drive not present, install to C:");
             }
         }
+    */
+    
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() begin");
     }
 
@@ -762,7 +793,12 @@
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() identifier: %S", &aIdentifier );
+    
+
     TDriveUnit targetDriveUnit( EDriveC );
+    
+    //HLa: Widget registry remove
+    /*
     RWidgetRegistryClientSession widgetRegistry;
 
     User::LeaveIfError( widgetRegistry.Connect() );
@@ -796,8 +832,11 @@
         
     CleanupStack::PopAndDestroy( &widgetInfoArr );
     CleanupStack::PopAndDestroy( &widgetRegistry);
+    */
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() end");
+
     return targetDriveUnit;
+
     }
 
 
--- a/iaupdate/IAD/engine/group/iaupdateengine.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/group/iaupdateengine.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -114,7 +114,7 @@
 LIBRARY         platformenv.lib
 LIBRARY         platformver.lib     // System version info
 LIBRARY         etel3rdparty.lib
-LIBRARY         swinstcli.lib
+//LIBRARY         swinstcli.lib
 LIBRARY         apmime.lib
 LIBRARY         ecom.lib            // For the NCD Engine ECOM session closing.
 LIBRARY         sysversioninfo.lib
@@ -125,7 +125,9 @@
 LIBRARY         iaupdaterfiles.lib
 
 // widget registry API library
-LIBRARY         widgetregistryclient.lib
+LIBRARY         sif.lib // SIF installer
+LIBRARY         scrclient.lib  //Registry client
+//LIBRARY         widgetregistryclient.lib
 
 // NCD Engine
 LIBRARY         ncdengine_20019119.lib
--- a/iaupdate/IAD/engine/inc/iaupdatenode.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/inc/iaupdatenode.h	Thu Jun 24 12:37:54 2010 +0300
@@ -78,6 +78,20 @@
        
         };
 
+    /**
+    * For UI during update process
+    **/
+    
+    enum TUIUpdateState
+        {
+        ENormal,
+        EDownloading,
+        EInstalling,
+        EUpdated,
+        EFailed,
+        EDownloaded        
+        };
+    
 
     /**
      * @return TPackageType The type of this node content.
@@ -169,20 +183,20 @@
      */
     virtual TInt Depth() const = 0;
 
-    /**
-     * Informs UI that downloading is ongoing
-     **/
-    virtual TBool Downloading() const = 0;
-
-    /**
-    * Informs UI that installing is ongoing
-    **/
-    virtual TBool Installing() const = 0;
+    virtual void SetUiState( TUIUpdateState aState ) = 0;
+    
+    virtual TUIUpdateState UiState() const = 0;
+    
+    // for progress bar in UI
+    virtual void SetProgress( TInt aProgress ) = 0;
     
-    virtual void SetDownloading( TBool aDownloading ) = 0;
-
-    virtual void SetInstalling( TBool aInstalling ) = 0;
+    virtual TInt Progress() const = 0; 
+    
+    virtual void SetTotal( TInt aTotal ) = 0;
     
+    virtual TInt Total() const = 0; 
+    
+       
 
 protected:
 
--- a/iaupdate/IAD/engine/inc/iaupdateutils.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/engine/inc/iaupdateutils.h	Thu Jun 24 12:37:54 2010 +0300
@@ -25,6 +25,7 @@
 
 // For silent installation
 #include <SWInstDefs.h>
+#include <usif/sif/sif.h>
 #include <swi/sisregistryentry.h>
 
 class TIAUpdateVersion;
@@ -128,7 +129,13 @@
 SwiUI::TInstallOptions SilentInstallOptionsL( const CIAUpdateBaseNode& aNode );
                                                      
 
-
+/**
+ * Creates options for silent install.
+ * Uses DriveToInstallL to etermine target drive to install.
+ * 
+ * @param aOptions  Silent install options
+ */
+void  UsifSilentInstallOptionsL( Usif::COpaqueNamedParams * aOptions );
 
 /**
  * Finds drive where a package is currently installed
--- a/iaupdate/IAD/firmwareupdate/inc/iaupdatefwfotamodel.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/firmwareupdate/inc/iaupdatefwfotamodel.h	Thu Jun 24 12:37:54 2010 +0300
@@ -51,16 +51,6 @@
     public: // New functions
         
         /**
-        * Retrieves the human readable name of the profile.
-        * @since Series 60 3.1
-        * @param aProfileId Profile identifier
-        * @param aProfileId Human readable name of the profile, or KNullDesC if not found.
-        * @return None
-        */
-        void GetProfileNameL( const TInt aProfileId,
-                                    HBufC* aProfileName ) const;
-
-        /**
         * Retrieves the default fota profile identifier from
         * the central repository.
         * @since Series 60 3.1
--- a/iaupdate/IAD/firmwareupdate/inc/iaupdatefwsynchandler.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/firmwareupdate/inc/iaupdatefwsynchandler.h	Thu Jun 24 12:37:54 2010 +0300
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <e32base.h>
 #include <SyncMLObservers.h>
-#include <cmmanagerext.h>
+#include <cmmanager.h>
 
 #include "iaupdatefwsyncutil.h"
 #include "iaupdatefwsyncprofile.h"
@@ -272,8 +272,8 @@
     private:
         
         TUint32 SelectConnectionMethodL();
-        TUint32 GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  );
-        TUint32 GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, TUint32 aSNAPID  );
+        TUint32 GetBestIAPInInternetSNAPL( RCmManager& aCmManager );
+        TUint32 GetBestIAPInThisSNAPL( RCmManager& aCmManager, TUint32 aSNAPID  );
 
     private:
 		// session with sync server
--- a/iaupdate/IAD/firmwareupdate/src/iaupdatefwfotamodel.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/firmwareupdate/src/iaupdatefwfotamodel.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -57,37 +57,6 @@
 
 
 // -----------------------------------------------------------------------------
-// CIAUpdateFWFotaModel::GetProfileName
-// Changes aProfileName to KNullDesC if the profile identifier is
-// not found.
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateFWFotaModel::GetProfileNameL( const TInt   aProfileId,
-                                              HBufC* aProfileName ) const
-    {
-    FLOG( "[IAUPDATEFW] CIAUpdateFWFotaModel::GetProfileNameL() - not implemented" );
-
-/*KNST
-    TInt index( 0 );
-    aProfileName->Des().Copy( KNullDesC );
-    
-    iDocument->RefreshProfileListL( ETrue ); // Include hidden profile
-    CArrayFixFlat<TNSmlDMProfileItem>* profileList = iDocument->ProfileList( index );
-    
-    for ( index = 0; index < profileList->Count(); index++ )
-        {
-        if ( ( *profileList )[index].iProfileId == aProfileId )
-            {
-            aProfileName->Des().Copy( ( *profileList )[index].iProfileName );
-            }
-        }
-*/
-    FTRACE( FPrint( _L(
-        "[IAUPDATEFW] CIAUpdateFWFotaModel::GetProfileNameL(): aProfileId = %d, ProfileName = \"%S\"" ),
-         aProfileId, aProfileName ) );
-    }
-
-// -----------------------------------------------------------------------------
 // CIAUpdateFWFotaModel::DefaultFotaProfileIdL
 // -----------------------------------------------------------------------------
 //
--- a/iaupdate/IAD/firmwareupdate/src/iaupdatefwsynchandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/firmwareupdate/src/iaupdatefwsynchandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -28,11 +28,11 @@
 #include <rconnmon.h>
 #include <es_enum.h>
 
-#include <cmconnectionmethodext.h>
+#include <cmconnectionmethod.h>
 #include <cmconnectionmethoddef.h>
 #include <cmpluginpacketdatadef.h>
 
-#include <cmdestinationext.h>
+#include <cmdestination.h>
 #include <cmmanagerdef.h>
 
 #include "iaupdateconnectionmethod.h"
@@ -424,16 +424,16 @@
     CleanupStack::PopAndDestroy( cenrep ); 
     cenrep = NULL;
 
-    RCmManagerExt cmManagerExt;
-    cmManagerExt.OpenL();
-    CleanupClosePushL( cmManagerExt );
+    RCmManager cmManager;
+    cmManager.OpenL();
+    CleanupClosePushL( cmManager );
     
     if ( connMethodId == -1 )
         {
         //check what is the default connection by users     
         
         TCmDefConnValue DCSetting;
-        cmManagerExt.ReadDefConnL( DCSetting );
+        cmManager.ReadDefConnL( DCSetting );
        
         
         switch ( DCSetting.iType )
@@ -442,13 +442,13 @@
             case ECmDefConnAskOnce:
                 {
                 //go with the best IAP under internet snap
-                connectionMethodId = GetBestIAPInInternetSNAPL( cmManagerExt );
+                connectionMethodId = GetBestIAPInInternetSNAPL( cmManager );
                 break;
                 }
             case ECmDefConnDestination:
                 {
                 //go with the best IAP under this snap
-                connectionMethodId = GetBestIAPInThisSNAPL( cmManagerExt, DCSetting.iId );
+                connectionMethodId = GetBestIAPInThisSNAPL( cmManager, DCSetting.iId );
                 break;
                 }
             case ECmDefConnConnectionMethod:
@@ -462,16 +462,16 @@
     else if ( connMethodId == 0 )
         {
         //no choice from user, we go with the best IAP under Internent SNAP
-        connectionMethodId = GetBestIAPInInternetSNAPL( cmManagerExt );
+        connectionMethodId = GetBestIAPInInternetSNAPL( cmManager );
         }
     else
         {
 
         // It was some SNAP value
-        connectionMethodId = GetBestIAPInThisSNAPL( cmManagerExt, connMethodId );
+        connectionMethodId = GetBestIAPInThisSNAPL( cmManager, connMethodId );
         }
 
-    CleanupStack::PopAndDestroy( &cmManagerExt ); 
+    CleanupStack::PopAndDestroy( &cmManager ); 
     
     return connectionMethodId;
               
@@ -482,15 +482,15 @@
 // CIAUpdateFWSyncHandler::GetBestIAPInInternetSNAPL
 // -----------------------------------------------------------------------------
 //
-TUint32 CIAUpdateFWSyncHandler::GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  )
+TUint32 CIAUpdateFWSyncHandler::GetBestIAPInInternetSNAPL( RCmManager& aCmManager )
     {
     //select IAP from Internet SNAP
     RArray<TUint32> destIdArray;
-    aCmManagerExt.AllDestinationsL( destIdArray );
+    aCmManager.AllDestinationsL( destIdArray );
     TUint32 InternetSNAPID = 0;
     for ( TInt i = 0; i< destIdArray.Count(); i++ )
         {
-        RCmDestinationExt dest = aCmManagerExt.DestinationL( destIdArray[i] );
+        RCmDestination dest = aCmManager.DestinationL( destIdArray[i] );
         CleanupClosePushL( dest );
                                      
         if ( dest.MetadataL( CMManager::ESnapMetadataInternet ) )
@@ -503,7 +503,7 @@
          }
     destIdArray.Reset();
     
-    return GetBestIAPInThisSNAPL( aCmManagerExt, InternetSNAPID );
+    return GetBestIAPInThisSNAPL( aCmManager, InternetSNAPID );
     }
 
 
@@ -512,7 +512,7 @@
 // CIAUpdateFWSyncHandler::GetBestIAPInThisSNAPL
 // -----------------------------------------------------------------------------
 //
-TUint32 CIAUpdateFWSyncHandler::GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, TUint32 aSNAPID  )
+TUint32 CIAUpdateFWSyncHandler::GetBestIAPInThisSNAPL( RCmManager& aCmManager, TUint32 aSNAPID  )
     {
     //get all usable IAPs
     TConnMonIapInfoBuf iapInfo;
@@ -528,13 +528,13 @@
     
     CleanupStack::PopAndDestroy( &connMon ); 
     
-    RCmDestinationExt dest = aCmManagerExt.DestinationL( aSNAPID );
+    RCmDestination dest = aCmManager.DestinationL( aSNAPID );
     CleanupClosePushL( dest );
     
     // Check whether the SNAP contains any IAP.
     for  (TInt i = 0; i < dest.ConnectionMethodCount(); i++ )
         {
-        RCmConnectionMethodExt cm =  dest.ConnectionMethodL( i );
+        RCmConnectionMethod cm =  dest.ConnectionMethodL( i );
         CleanupClosePushL( cm );
         
         TUint32 iapid= cm.GetIntAttributeL( CMManager::ECmIapId );
--- a/iaupdate/IAD/firmwareupdate/src/iaupdatefwupdatehandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/firmwareupdate/src/iaupdatefwupdatehandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -136,24 +136,7 @@
         {
         case ENSU:
             {          
-            /*HBufC* text1 = StringLoader::LoadLC( R_IAUPDATE_INFO_NSU_1 );  
-            HBufC* text2 = StringLoader::LoadLC( R_IAUPDATE_INFO_NSU_2 );
-            
-            HBufC* text = HBufC::NewLC( text1->Length() +
-                                        text2->Length() );
-                
-            text->Des() += *text1;
-            text->Des() += *text2;
-
-            HBufC* heading = StringLoader::LoadLC( R_IAUPDATE_NEW_SW_TITLE );
-     
-            ShowDialogL( *text, *heading );
-            
-            CleanupStack::PopAndDestroy( heading ); //text, heading
-            CleanupStack::PopAndDestroy( text );
-            CleanupStack::PopAndDestroy( text2 );
-            CleanupStack::PopAndDestroy( text1 );*/
-          
+                      
             break;
             }
         case EFOTA:
@@ -229,14 +212,7 @@
 //
 void CIAUpdateFWUpdateHandler::ShowDialogL(TDesC& /*aText*/, TDesC& /*aHeading*/ )
     {  
-    //CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( aText );
-
-    //dlg->PrepareLC( R_IAUPDATE_MESSAGE_QUERY );
-
-    //CAknPopupHeadingPane* headingPane = dlg->Heading();
-    //headingPane->SetTextL( aHeading );
-	    
-    //TInt ret = dlg->RunLD();
+    
     }
         
 
--- a/iaupdate/IAD/ui/iaupdate.pro	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/iaupdate.pro	Thu Jun 24 12:37:54 2010 +0300
@@ -49,7 +49,6 @@
     iaupdateagreement.cpp \
     iaupdateautomaticcheck.cpp \
     iaupdatedeputils.cpp \ 
-    iaupdatefirsttimedatefile.cpp \
     iaupdatefirsttimeinfo.cpp \
     iaupdategloballockhandler.cpp \
     iaupdateinstallationlistener.cpp \
@@ -82,7 +81,6 @@
     iaupdateautomaticcheck.h \
     iaupdatedeputils.h \
     iaupdatefileconsts.h \
-    iaupdatefirsttimedatefile.h \
     iaupdatefirsttimeinfo.h \
     iaupdategloballockhandler.h \
     iaupdateinstallationlistener.h \
--- a/iaupdate/IAD/ui/iaupdate_mainview.docml	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/iaupdate_mainview.docml	Thu Jun 24 12:37:54 2010 +0300
@@ -15,8 +15,8 @@
                 <sizehint height="16.41791091514448un" type="PREFERRED" width="38.80597125397785un"/>
             </widget>
             <zvalue value="0.0"/>
-            <layout type="grid">
-                <griditem column="0" itemname="listWidget" row="0"/>
+            <layout orientation="Vertical" type="linear">
+                 <linearitem itemname="listWidget"/>
             </layout>
         </widget>
         <widget name="viewMenu" role="HbView:menu" type="HbMenu">
--- a/iaupdate/IAD/ui/inc/iaupdatedeputils.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatedeputils.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -25,7 +25,6 @@
 
 // FORWARD DECLARATIONS
 class MIAUpdateNode;
-class MIAUpdateAnyNode;
 
 // CLASS DECLARATION
 /**
@@ -43,7 +42,7 @@
     * @param aDependencyNodes List of dependencies (to be marked). 
     */ 
     static void GetDependenciesL( const MIAUpdateNode& aNode, 
-                                  const RPointerArray<MIAUpdateAnyNode>& aAllNodes, 
+                                  const RPointerArray<MIAUpdateNode>& aAllNodes, 
                                   RPointerArray<MIAUpdateNode>& aDependencyNodes );
      
     /**
@@ -54,7 +53,7 @@
     * @param aDependencyNodes List of dependendants (to be unmarked). 
     */
     static void GetDependantsL( const MIAUpdateNode& aNode, 
-                                const RPointerArray<MIAUpdateAnyNode>& aAllNodes, 
+                                const RPointerArray<MIAUpdateNode>& aAllNodes, 
                                 RPointerArray<MIAUpdateNode>& aDependantNodes );
     
     };
--- a/iaupdate/IAD/ui/inc/iaupdateengine.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateengine.h	Thu Jun 24 12:37:54 2010 +0300
@@ -34,7 +34,7 @@
 class MIAUpdateNode;
 class MIAUpdateFwNode;
 class CEikonEnv;
-class RCmManagerExt;
+class RCmManager;
 class CIdle;
 class HbAction;
 class IAUpdateResultsDialog;
@@ -150,6 +150,13 @@
     * @param aError Error code
     */      
     void HandleLeaveErrorWithoutLeave( TInt aError );
+    
+    /**
+    Called when UI to be redrawn during update process
+    *
+    * @param aError Error code
+    */
+    void RefreshUI();
             
     /**
     * Called when async update list refresh is completed
@@ -199,24 +206,24 @@
      /**
      * Choose a usable IAP from all SNAPs
      *
-     * @param aCmManagerExt handle of connection manager
+     * @param aCmManager handle of connection manager
      */  
-    uint GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt  );
+    uint GetBestIAPInAllSNAPsL( RCmManager& aCmManager );
         
      /**
      * Choose a usable IAP from Internet SNAP
      *
-     * @param aCmManagerExt handle of connection manager
+     * @param aCmManager handle of connection manager
      */
-    uint GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  );
+    uint GetBestIAPInInternetSNAPL( RCmManager& aCmManager );
 
      /**
      * Choose the best IAP under the given SNAP
      *
-     * @param aCmManagerExt handle of connection manager
+     * @param aCmManager handle of connection manager
      * @param aSNAP SNAP ID
      */  
-     uint GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, uint aSNAP = 0);
+     uint GetBestIAPInThisSNAPL( RCmManager& aCmManager, uint aSNAP = 0);
      
      /**
      * Shows update query dialog (now/later) 
@@ -241,7 +248,7 @@
      */
      static TInt AutomaticCheckCallbackL( TAny* aPtr );
      
-     void DoPossibleApplicationClose();
+     bool DoPossibleApplicationClose();
  
    
 
--- a/iaupdate/IAD/ui/inc/iaupdatefirsttimedatefile.h	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +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:   Header file of CIAUpdateFirstTimeDateFile class
-*
-*/
-
-
-
-
-
-
-#ifndef IA_UPDATE_FIRSTTIMEDATE_FILE_H
-#define IA_UPDATE_FIRSTTIMEDATE_FILE_H
-
-#include <e32std.h>
-#include <s32strm.h>
-#include <e32cmn.h>
-#include <f32file.h>
-#include <e32const.h>
-
-
-/**
- *
- */
-class CIAUpdateFirstTimeDateFile : public CBase
-    {
-
-public:
-
-    static CIAUpdateFirstTimeDateFile* NewL( const TDesC& aFile );
-
-    static CIAUpdateFirstTimeDateFile* NewLC( const TDesC& aFile );
-    
-    
-    ~CIAUpdateFirstTimeDateFile();
-
-
-    TBool ReadDataL();
-
-    void WriteDataL();
-    
-    const TTime& FirstTime() const;
-    
-    void SetCurrentFirstTime();
-     
-
-private:
-
-    // Prevent these if not implemented
-    CIAUpdateFirstTimeDateFile( const CIAUpdateFirstTimeDateFile& aObject );
-    CIAUpdateFirstTimeDateFile& operator =( const CIAUpdateFirstTimeDateFile& aObject );
-
-
-    CIAUpdateFirstTimeDateFile();
-    
-    virtual void ConstructL( const TDesC& aFile );
-
-
-    void InternalizeL( RReadStream& aStream );
-
-    void ExternalizeL( RWriteStream& aStream );
-
-
-private: // data
-
-	// file server session
-	RFs iFsSession;
-	
-	// file path
-	TFileName iPath;
-
-
-    // Time when IAD started first time
-    TTime iFirstTime;
-
-    };
-		
-#endif // IA_UPDATE_FIRSTTIMEDATE_FILE_H
-
--- a/iaupdate/IAD/ui/inc/iaupdatefirsttimeinfo.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatefirsttimeinfo.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -62,22 +62,12 @@
     * Set Nokia agreement as accepted by an user
     */
     void SetAgreementAcceptedL();
-    
-    /**
-    * Set Nokia agreement as asked (prompted) to an user
-    */
-    void SetAgreementAskedL();
-        
+          
     /**
     * Set automatic update checks as asked (prompted) to an user
     */
     void SetAutomaticUpdatesAskedL();
-    
-    /**
-    * Time stamp of first check updates form application is stored
-    */
-    void SetFirstTimeIfNotSetL();
-    
+            
     /**
     * Is Nokia agreement of Application Update accepted by an user
     *
@@ -86,27 +76,13 @@
     TBool AgreementAcceptedL();
     
     /**
-    * Is Nokia agreement of Application Update already asked 
-    *
-    * @return True value if agreement already asked 
-    */
-    TBool AgreementAskedL();
-    
-    /**
     * Is activation for automatic update cheks from network already asked 
     *
     * @return True value if agreement already asked 
     */
     TBool AutomaticUpdateChecksAskedL();  
         
-    /**
-    * There is a delay (eg. 2 weeks) after first check updates request from an application
-    * when update check is not performed. This method checks is update check delayed. 
-    *
-    * @return True value if agreement accepted 
-    */
-    TBool FirstTimeDelayL();
-
+ 
 private:
 
     /**
@@ -135,8 +111,6 @@
 	
 	TBool iAgreementAccepted;
 	
-	TBool iAgreementAsked;
-	
 	TBool iAutomaticUpdateChecksAsked;   
    
     };
--- a/iaupdate/IAD/ui/inc/iaupdatemainview.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatemainview.h	Thu Jun 24 12:37:54 2010 +0300
@@ -30,6 +30,8 @@
 class HbListWidget;
 class HbAction;
 class HbAbstractViewItem;
+class HbGroupBox;
+class HbDataForm;
 class IAUpdateEngine;
 class IAUpdateDialogUtil;
 class TIAUpdateVersion;
@@ -56,26 +58,38 @@
  
     void handleDisclaimer();
     
-    void handleDetails( HbAbstractViewItem *, const QPointF & );
+    void handleDetails(HbAbstractViewItem *, const QPointF &);
+    
+    void handleFotaDetails(HbAbstractViewItem *, const QPointF &); 
     
     void handleSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
     
+    void handleFwSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+    
     void dialogFinished(HbAction* action);
     
 private:
     
-    void getSelectedNodes(RPointerArray<MIAUpdateAnyNode> &selectedNodes) const;
+    bool fotaSelected() const;
     void markListItem(bool mark, int index);
-    bool getMandatoryNodes(RPointerArray<MIAUpdateAnyNode> &mandNodes) const;
+    void markFotaItem(bool mark);
+    bool getMandatoryNodes(RPointerArray<MIAUpdateNode> &mandNodes) const;
     void showUpdateCannotOmitDialog(); 
     void showDependenciesFoundDialog(QString &text);
     void updateSelectionsToNodeArray(MIAUpdateNode &node, bool mark);
     void updateSelectionsToList();
-    MIAUpdateAnyNode* getNode(int index) const;
+    MIAUpdateNode* getApplicationNode(int index) const;
     void showDetails(MIAUpdateAnyNode& node);
     void constructDetailsText(MIAUpdateAnyNode &node, QString &text);
     void versionText(const TIAUpdateVersion &version, QString &versionText);
     void fileSizeText(int fileSize, QString &text);
+    void setImportance(MIAUpdateAnyNode *node, QString &importanceDescription);
+    void removeCurrentContentLayout();
+    void refreshFirmwareUpdates(const RPointerArray<MIAUpdateFwNode> &fwNodes);
+    void refreshFotaUpdate(MIAUpdateFwNode& fwNode);
+    void refreshNsuUpdate();
+    void refreshApplicationUpdates(const RPointerArray<MIAUpdateNode> &nodes);
+    void updateSelectionInfoInDock();
     
 private:
     enum DialogState
@@ -88,13 +102,21 @@
      
     IAUpdateEngine *mEngine;
     IAUpdateDialogUtil *mDialogUtil;
+    HbWidget *mContent;
     HbListWidget *mListView;
-    RPointerArray<MIAUpdateAnyNode> mAllNodes;
+    HbListWidget *mFwListView;
+    HbGroupBox *mApplicationUpdatesGroupBox;
+    HbGroupBox *mFwNSUGroupBox;
+    HbDataForm *mContentDataForm;
+    HbGroupBox *mSelections;
+    RPointerArray<MIAUpdateNode> mNodes;
+    RPointerArray<MIAUpdateFwNode> mFwNodes;
     DialogState mDialogState; 
     HbAction *mPrimaryAction;
     MIAUpdateNode *mNode; 
     bool mMark;
     bool mSelectionUpdate;
+    bool mSelectionConnect;
 
 };
 
--- a/iaupdate/IAD/ui/inc/iaupdatenodefilter.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdatenodefilter.h	Thu Jun 24 12:37:54 2010 +0300
@@ -93,6 +93,16 @@
     void SetDependenciesSelectedL( MIAUpdateNode& aNode,
                         const RPointerArray<MIAUpdateNode>& aAllNodes);
     
+    void StoreNodeListL( const RPointerArray< MIAUpdateNode >& aNodes);  
+    
+    void RestoreNodeListL( RPointerArray< MIAUpdateNode >& aNodes) const;
+    
+    void SortSelectedNodesFirstL( const RPointerArray<MIAUpdateNode>& aSelectedNodes, 
+                                 RPointerArray< MIAUpdateNode >& aNodes );
+    
+    void SortThisNodeFirstL( const MIAUpdateNode* aFirstNode, RPointerArray< MIAUpdateNode >& aNodes);
+
+    
 private:
 
     CIAUpdateNodeFilter();
@@ -135,6 +145,8 @@
     TBool iDmSupportAsked;
     
     TBool iDmSupport;
+    
+    RPointerArray< MIAUpdateNode > iStoredNodes;
 
     };
 
--- a/iaupdate/IAD/ui/inc/iaupdateuicontroller.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateuicontroller.h	Thu Jun 24 12:37:54 2010 +0300
@@ -242,6 +242,13 @@
     TBool ForcedRefresh() const;
       
     void SetForcedRefresh( TBool aForcedRefresh );
+    
+    /**
+     *  Set node list to normal state after update. 
+     */
+    void RefreshNodeList();
+    
+    
     /**
      * Is client role "testing"
      *
--- a/iaupdate/IAD/ui/inc/iaupdateuicontrollerobserver.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateuicontrollerobserver.h	Thu Jun 24 12:37:54 2010 +0300
@@ -49,6 +49,13 @@
     virtual void HandleLeaveErrorWithoutLeave( TInt aError ) = 0;
     
     /**
+     Called when UI to be redrawn during update process
+     *
+     * @param aError Error code
+    */
+    virtual void RefreshUI() = 0;
+    
+    /**
     * Called when async update list refresh is completed
     *
     * @param aError Error code
--- a/iaupdate/IAD/ui/src/iaupdateapplication.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateapplication.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -43,5 +43,6 @@
     }
 
 IAUpdateApplication::~IAUpdateApplication()
-    {
-    }
+{
+    delete mEngine;    
+}
--- a/iaupdate/IAD/ui/src/iaupdatedeputils.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatedeputils.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -21,7 +21,6 @@
 // INCLUDES
 #include "iaupdatedeputils.h"
 #include "iaupdatebasenode.h"
-#include "iaupdateanynode.h"
 #include "iaupdatenode.h"
 
 
@@ -31,7 +30,7 @@
 // ---------------------------------------------------------------------------
 //
 void IAUpdateDepUtils::GetDependenciesL( const MIAUpdateNode& aNode,
-                                         const RPointerArray<MIAUpdateAnyNode>& aAllNodes,  
+                                         const RPointerArray<MIAUpdateNode>& aAllNodes,  
                                          RPointerArray<MIAUpdateNode>& aDependencyNodes ) 
     {
     RPointerArray<MIAUpdateNode> dependencies;
@@ -81,7 +80,7 @@
 // ---------------------------------------------------------------------------
 //    
 void IAUpdateDepUtils::GetDependantsL( const MIAUpdateNode& aNode, 
-                                       const RPointerArray<MIAUpdateAnyNode>& aAllNodes,  
+                                       const RPointerArray<MIAUpdateNode>& aAllNodes,  
                                        RPointerArray<MIAUpdateNode>& aDependantNodes ) 
     {
     RPointerArray<MIAUpdateNode> dependants;
--- a/iaupdate/IAD/ui/src/iaupdatedialogutil.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatedialogutil.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -15,7 +15,7 @@
 *                member functions.
 *
 */
-#include <hbtextitem.h>
+#include <hblabel.h>
 #include <hbmessagebox.h>
 
 #include "iaupdatedialogutil.h"
@@ -83,8 +83,11 @@
 void IAUpdateDialogUtil::showAgreement(HbAction *primaryAction, HbAction *secondaryAction)
 {
     HbMessageBox *agreementDialog = new HbMessageBox(HbMessageBox::MessageTypeQuestion); 
+    HbLabel *label = new HbLabel(agreementDialog);
+    label->setHtml(QString("Disclaimer"));
+    agreementDialog->setHeadingWidget(label);
     agreementDialog->setIconVisible(false);
-    agreementDialog->setText("This application allows you to download and use applications and services provided by Nokia or third parties. Service Terms and Privacy Policy will apply. Nokia will not assume any liability or responsibility for the availability or third party applications or services. Before using the third party application or service, read the applicable terms of use.\n\nUse of this application involves transmission of data. Contact your network service provider for information about data transmission charges.\n\n(c) 2007-2010 Nokia. All rights reserved.");
+    agreementDialog->setText("This application allows you to download and use applications and services provided by Nokia or third parties. Service Terms and Privacy Policy will apply. Nokia will not assume any liability or responsibility for the availability or third party applications or services. Before using the third party application or service, read the applicable terms of use.<br /><br />Use of this application involves transmission of data. Contact your network service provider for information about data transmission charges.<br /><br />(c) 2007-2010 Nokia. All rights reserved.");
 
     int actionCount = agreementDialog->actions().count();
     for (int i=actionCount-1; i >= 0; i--)
--- a/iaupdate/IAD/ui/src/iaupdateengine.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateengine.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,28 +1,28 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   This module contains the implementation of IAUpdateEngine
-*                class member functions.
-*
-*/
+ * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   This module contains the implementation of IAUpdateEngine
+ *                class member functions.
+ *
+ */
 
 #include <qapplication.h>
 #include <hbmessagebox.h>
 #include <hbaction.h>
 #include <eikenv.h>
 #include <centralrepository.h>
-#include <cmmanagerext.h>
-#include <cmdestinationext.h>
+#include <cmmanager.h>
+#include <cmdestination.h>
 #include <rconnmon.h>
 #include <apgwgnam.h>
 #include <starterclient.h>
@@ -43,10 +43,9 @@
 #include "iaupdateresultsdialog.h"
 #include "iaupdatedebug.h"
 
-
-IAUpdateEngine::IAUpdateEngine(QObject *parent)
-     : QObject(parent)
-{
+IAUpdateEngine::IAUpdateEngine(QObject *parent) :
+    QObject(parent)
+    {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::IAUpdateEngine() begin");
     iController = NULL;
     iFwUpdateHandler = NULL;
@@ -64,17 +63,17 @@
     mDialogState = NoDialog;
     mResultsDialog = NULL;
     mServiceProvider = NULL;
-    mServiceProvider = new IAUpdateServiceProvider( *this );
-    connect(mServiceProvider, SIGNAL(clientDisconnected()), this, SLOT(handleAllClientsClosed()));
+    mServiceProvider = new IAUpdateServiceProvider(*this);
+    connect(mServiceProvider, SIGNAL(clientDisconnected()), this,
+            SLOT(handleAllClientsClosed()));
     TRAP_IGNORE( iController = CIAUpdateUiController::NewL( *this ));
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::IAUpdateEngine() end");
-}
-
+    }
 
 IAUpdateEngine::~IAUpdateEngine()
-{
+    {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::~IAUpdateEngine() begin");
-    InformRequestObserver( KErrCancel );
+    InformRequestObserver(KErrCancel);
     if (iIdle)
         {
         delete iIdle;
@@ -87,40 +86,39 @@
         {
         delete iGlobalLockHandler;
         }
-    if ( iAutomaticCheck )
+    if (iAutomaticCheck)
         {
         delete iAutomaticCheck;
         }
-    if ( iController )
+    if (iController)
         {
         delete iController;
         }
-    if ( iFwUpdateHandler )
+    if (iFwUpdateHandler)
         {
         delete iFwUpdateHandler;
         }
-    if ( mServiceProvider )
+    if (mServiceProvider)
         {
         delete mServiceProvider;
         }
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::~IAUpdateEngine() end");
-}
+    }
 
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::StartedByLauncherL
 // 
 // -----------------------------------------------------------------------------
 //
-void IAUpdateEngine::StartedByLauncherL( bool aRefreshFromNetworkDenied )
+void IAUpdateEngine::StartedByLauncherL(bool aRefreshFromNetworkDenied)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartedByLauncherL() begin");
     mRequestIssued = true;
     mRequestType = IAUpdateUiDefines::ENoRequest;
-    iController->SetRequestType( mRequestType );
-    SetVisibleL( true );
+    iController->SetRequestType(mRequestType);
+    SetVisibleL(true);
     CIAUpdateParameters* params = iController->ParamsReadAndRemoveFileL();
-    iController->CheckUpdatesDeferredL( params, aRefreshFromNetworkDenied );
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartedByLauncherL() end");
+    iController->CheckUpdatesDeferredL(params, aRefreshFromNetworkDenied);
     }
 
 // -----------------------------------------------------------------------------
@@ -128,33 +126,32 @@
 // 
 // -----------------------------------------------------------------------------
 //
-void IAUpdateEngine::CheckUpdatesRequestL( int wgid, 
-                                           CIAUpdateParameters* aFilterParams,
-                                           bool aForcedRefresh )
-                                           
+void IAUpdateEngine::CheckUpdatesRequestL(int wgid,
+        CIAUpdateParameters* aFilterParams, bool aForcedRefresh)
+
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::CheckUpdatesRequestL() begin");
-    SetClientWgId( wgid );
+    SetClientWgId(wgid);
     mRequestIssued = true;
-    mStartedFromApplication  = true;
-    CleanupStack::PushL( aFilterParams );
-    if ( wgid > 0 )
+    mStartedFromApplication = true;
+    CleanupStack::PushL(aFilterParams);
+    if (wgid > 0)
         {
-        HideApplicationInFSWL( true );
+        HideApplicationInFSWL(true);
         }
-    CleanupStack::Pop( aFilterParams );
-    
-    if ( !aFilterParams->ShowProgress() )
+    CleanupStack::Pop(aFilterParams);
+
+    if (!aFilterParams->ShowProgress())
         {
-        iEikEnv->RootWin().SetOrdinalPosition( -1, ECoeWinPriorityNeverAtFront ); 
+        iEikEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
         }
-           
-    mRequestType = IAUpdateUiDefines::ECheckUpdates; 
-    iController->SetRequestType( mRequestType );
-    iController->SetForcedRefresh( aForcedRefresh );
-    
-    iController->CheckUpdatesDeferredL( aFilterParams, false ); 
-    
+
+    mRequestType = IAUpdateUiDefines::ECheckUpdates;
+    iController->SetRequestType(mRequestType);
+    iController->SetForcedRefresh(aForcedRefresh);
+
+    iController->CheckUpdatesDeferredL(aFilterParams, false);
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::CheckUpdatesRequestL() end");
     }
 
@@ -163,46 +160,47 @@
 // 
 // -----------------------------------------------------------------------------
 // 
-void IAUpdateEngine::ShowUpdatesRequestL( int wgid, CIAUpdateParameters* aFilterParams )
+void IAUpdateEngine::ShowUpdatesRequestL(int wgid,
+        CIAUpdateParameters* aFilterParams)
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdatesRequestL() begin"); 
-    SetClientWgId( wgid );
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdatesRequestL() begin");
+    SetClientWgId(wgid);
     mRequestIssued = true;
-//    delete iBackgroundTimer;
-//    iBackgroundTimer = NULL;
-    mStartedFromApplication  = true;
-    CleanupStack::PushL( aFilterParams );
-    if ( wgid > 0 )
+    //    delete iBackgroundTimer;
+    //    iBackgroundTimer = NULL;
+    mStartedFromApplication = true;
+    CleanupStack::PushL(aFilterParams);
+    if (wgid > 0)
         {
-        HideApplicationInFSWL( true );
+        HideApplicationInFSWL(true);
         }
-   
+
     //StatusPane()->MakeVisible( true );
-    iEikEnv->RootWin().SetOrdinalPosition( 0, ECoeWinPriorityNormal );
-    
+    iEikEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNormal);
+
     //iRequestObserver = &aObserver;
     mRequestType = IAUpdateUiDefines::EShowUpdates;
-    iController->SetRequestType( mRequestType );
-     
+    iController->SetRequestType(mRequestType);
 
     //if ( !iMainView )
     //    {
     //    iMainView  = CIAUpdateMainView::NewL( ClientRect() ); 
     //    AddViewL( iMainView );
     //    }
-    
-      
+
+
     // by pushing object to cleanup stack its destructor is called if leave happens
     // so global lock issued by this instance can be released in destructor of CIAUpdateGlobalLockHandler
-    CIAUpdateGlobalLockHandler* globalLockHandler = CIAUpdateGlobalLockHandler::NewLC();
-    if ( !globalLockHandler->InUseByAnotherInstanceL() )
+    CIAUpdateGlobalLockHandler* globalLockHandler =
+            CIAUpdateGlobalLockHandler::NewLC();
+    if (!globalLockHandler->InUseByAnotherInstanceL())
         {
-        globalLockHandler->SetToInUseForAnotherInstancesL( true );
-        CleanupStack::Pop( globalLockHandler );
-        CleanupStack::Pop( aFilterParams );
-        CleanupStack::PushL( globalLockHandler );
-        iController->CheckUpdatesDeferredL( aFilterParams, false );
-        CleanupStack::Pop( globalLockHandler ); 
+        globalLockHandler->SetToInUseForAnotherInstancesL(true);
+        CleanupStack::Pop(globalLockHandler);
+        CleanupStack::Pop(aFilterParams);
+        CleanupStack::PushL(globalLockHandler);
+        iController->CheckUpdatesDeferredL(aFilterParams, false);
+        CleanupStack::Pop(globalLockHandler);
         delete iGlobalLockHandler;
         iGlobalLockHandler = globalLockHandler;
         //now possible deletion of iGlobalLockHandler in leave situation is handled
@@ -210,40 +208,38 @@
         }
     else
         {
-        CleanupStack::PopAndDestroy( globalLockHandler );
-        CleanupStack::PopAndDestroy( aFilterParams );
+        CleanupStack::PopAndDestroy(globalLockHandler);
+        CleanupStack::PopAndDestroy(aFilterParams);
         // locked by another IAD instance, nothing else to do than just complete client's request.  
-        InformRequestObserver( KErrNone );
-        }  
+        InformRequestObserver(KErrNone);
+        }
 
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdatesRequestL() end"); 
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdatesRequestL() end");
     }
-    
 
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::ShowUpdateQueryRequestL
 // 
 // -----------------------------------------------------------------------------
 //     
-void IAUpdateEngine::ShowUpdateQueryRequestL( int wgid, uint aUid )
+void IAUpdateEngine::ShowUpdateQueryRequestL(int wgid, uint aUid)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryRequestL begin");
-    SetClientWgId( wgid );
+    SetClientWgId(wgid);
     mRequestIssued = true;
-    mStartedFromApplication  = true;
+    mStartedFromApplication = true;
     mUpdatequeryUid = aUid;
     mUpdateNow = false;
-    if ( wgid > 0 )
+    if (wgid > 0)
         {
-        HideApplicationInFSWL( true );
+        HideApplicationInFSWL(true);
         }
     mRequestType = IAUpdateUiDefines::EUpdateQuery;
-    
-    
+
     delete iIdle;
     iIdle = NULL;
-    iIdle = CIdle::NewL( CActive::EPriorityIdle ); 
-    iIdle->Start( TCallBack( UpdateQueryCallbackL, this ) ); 
+    iIdle = CIdle::NewL(CActive::EPriorityIdle);
+    iIdle->Start(TCallBack(UpdateQueryCallbackL, this));
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryRequestL end")
     }
 
@@ -252,16 +248,16 @@
 // 
 // -----------------------------------------------------------------------------
 //
-void IAUpdateEngine::StartUpdate( bool aFirmwareUpdate )
+void IAUpdateEngine::StartUpdate(bool aFirmwareUpdate)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartUpdate() begin");
-    if ( aFirmwareUpdate )
+    if (aFirmwareUpdate)
         {
-        if ( !iFwUpdateHandler )
+        if (!iFwUpdateHandler)
             {
             TRAP_IGNORE( CIAUpdateFWUpdateHandler::NewL() );
             }
-        if ( iFwUpdateHandler )
+        if (iFwUpdateHandler)
             {
             iFwUpdateHandler->FirmWareUpdatewithFOTA();
             }
@@ -270,15 +266,16 @@
         {
         // by pushing object to cleanup stack it's destructor is called if leave happens
         // so global lock issued by this instance can be released in destructor of CIAUpdateGlobalLockHandler
-        CIAUpdateGlobalLockHandler* globalLockHandler = CIAUpdateGlobalLockHandler::NewLC();
-        if ( !globalLockHandler->InUseByAnotherInstanceL() )
+        CIAUpdateGlobalLockHandler* globalLockHandler =
+                CIAUpdateGlobalLockHandler::NewLC();
+        if (!globalLockHandler->InUseByAnotherInstanceL())
             {
-            globalLockHandler->SetToInUseForAnotherInstancesL( true );
+            globalLockHandler->SetToInUseForAnotherInstancesL(true);
             // No need to be totally silent since the updating is started
             // by user.
-            SetDefaultConnectionMethodL( false );
+            SetDefaultConnectionMethodL(false);
             iController->StartUpdateL();
-            CleanupStack::Pop( globalLockHandler ); 
+            CleanupStack::Pop(globalLockHandler);
             delete iGlobalLockHandler;
             iGlobalLockHandler = globalLockHandler;
             //now possible deletion of iGlobalLockHandler in leave situation is handled
@@ -286,39 +283,38 @@
             }
         else
             {
-            CleanupStack::PopAndDestroy( globalLockHandler );   
+            CleanupStack::PopAndDestroy(globalLockHandler);
             }
         }
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartUpdate() end");
     }
 
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::SetVisibleL
 // 
 // -----------------------------------------------------------------------------
 //  
-void IAUpdateEngine::SetVisibleL( bool aVisible )
+void IAUpdateEngine::SetVisibleL(bool /*aVisible*/)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetVisibleL() begin");
-    IAUPDATE_TRACE_1("[IAUPDATE] visible: %d", aVisible );
+    //IAUPDATE_TRACE_1("[IAUPDATE] visible: %d", aVisible );
     /*if ( aVisible )
-        {
-        if ( iEikonEnv->RootWin().OrdinalPosition() != 0 || iEikonEnv->RootWin().OrdinalPriority() != ECoeWinPriorityNormal )
-            {
-            iEikonEnv->RootWin().SetOrdinalPosition( 0, ECoeWinPriorityNormal );
-            }
-        
-        StatusPane()->MakeVisible( ETrue );
-        iMainView  = CIAUpdateMainView::NewL( ClientRect() ); 
-        AddViewL( iMainView );
-        ActivateLocalViewL( TUid::Uid( EIAUpdateMainViewId ) );
-        }
-    else
-        {
-        iEikonEnv->RootWin().SetOrdinalPosition( -1, ECoeWinPriorityNeverAtFront );
-        StatusPane()->MakeVisible( EFalse );
-        }*/
+     {
+     if ( iEikonEnv->RootWin().OrdinalPosition() != 0 || iEikonEnv->RootWin().OrdinalPriority() != ECoeWinPriorityNormal )
+     {
+     iEikonEnv->RootWin().SetOrdinalPosition( 0, ECoeWinPriorityNormal );
+     }
+     
+     StatusPane()->MakeVisible( ETrue );
+     iMainView  = CIAUpdateMainView::NewL( ClientRect() ); 
+     AddViewL( iMainView );
+     ActivateLocalViewL( TUid::Uid( EIAUpdateMainViewId ) );
+     }
+     else
+     {
+     iEikonEnv->RootWin().SetOrdinalPosition( -1, ECoeWinPriorityNeverAtFront );
+     StatusPane()->MakeVisible( EFalse );
+     }*/
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetVisibleL() end");
     }
 
@@ -327,7 +323,7 @@
 // 
 // -----------------------------------------------------------------------------
 // 
-void IAUpdateEngine::SetClientWgId( int aWgId )
+void IAUpdateEngine::SetClientWgId(int aWgId)
     {
     IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateEngine::SetClientWgId() wgId %d", aWgId );
     mWgId = aWgId;
@@ -342,33 +338,31 @@
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ClientInBackgroundL() begin");
     bool inBackground = false;
-    if ( mWgId > 0 )
+    if (mWgId > 0)
         {
-        CArrayFixFlat<int>*  wgArray = new( ELeave ) CArrayFixFlat<int>(10);  
-        CleanupStack::PushL( wgArray );
-        User::LeaveIfError( iEikEnv->WsSession().WindowGroupList( 0, wgArray ) );  
+        CArrayFixFlat<int>* wgArray = new (ELeave) CArrayFixFlat<int> (10);
+        CleanupStack::PushL(wgArray);
+        User::LeaveIfError(iEikEnv->WsSession().WindowGroupList(0, wgArray));
         int ownWgId = iEikEnv->RootWin().Identifier();
-        if ( ( wgArray->At( 0 ) != ownWgId ) && ( wgArray->At( 0 ) != mWgId  ) )
+        if ((wgArray->At(0) != ownWgId) && (wgArray->At(0) != mWgId))
             {
             inBackground = true;
             }
-        CleanupStack::PopAndDestroy( wgArray );  
+        CleanupStack::PopAndDestroy(wgArray);
         }
     IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateEngine::ClientInBackgroundL() inBackground: %d", inBackground );
-    return inBackground;  
+    return inBackground;
     }
 
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::handleAllClientsClosed()
 // 
 // -----------------------------------------------------------------------------
 //
 void IAUpdateEngine::handleAllClientsClosed()
-{
-    qApp->quit(); 
-}
-
+    {
+    qApp->quit();
+    }
 
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::dialogFinished
@@ -379,36 +373,44 @@
     {
     DialogState dialogState = mDialogState;
     mDialogState = NoDialog;
-    
-    switch ( dialogState )
+
+    switch (dialogState)
         {
         case Results:
             mUiRefreshAllowed = true;
-            if ( iController->ResultsInfo().iRebootAfterInstall )
+            if (iController->ResultsInfo().iRebootAfterInstall)
                 {
                 ShowRebootDialogL();
                 }
             else
                 {
-                DoPossibleApplicationClose();
+                if (!DoPossibleApplicationClose())
+                    {
+                    iController->RefreshNodeList();
+                    RefreshUI();
+                    }
                 }
             break;
-        case RebootQuery:    
-            if (action == mPrimaryAction )
+        case RebootQuery:
+            if (action == mPrimaryAction)
                 {
                 RStarterSession startersession;
-                if( startersession.Connect() == KErrNone )
+                if (startersession.Connect() == KErrNone)
                     {
-                    startersession.Reset( RStarterSession::EUnknownReset );
+                    startersession.Reset(RStarterSession::EUnknownReset);
                     startersession.Close();
                     }
                 }
             else
                 {
-                DoPossibleApplicationClose();
+                if (!DoPossibleApplicationClose())
+                    {
+                    iController->RefreshNodeList();
+                    RefreshUI();
+                    }
                 }
             break;
-        case ShowUpdateQuery:    
+        case ShowUpdateQuery:
             if (action == mPrimaryAction)
                 {
                 IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::dialogFinished() Now");
@@ -417,46 +419,45 @@
             else if (action == mSecondaryAction)
                 {
                 IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::dialogFinished() Later");
-                CIAUpdateQueryHistory* updateQueryHistory = CIAUpdateQueryHistory::NewL();
-                CleanupStack::PushL( updateQueryHistory );
-                updateQueryHistory->SetTimeL( mUpdatequeryUid );
-                CleanupStack::PopAndDestroy( updateQueryHistory );
+                CIAUpdateQueryHistory* updateQueryHistory =
+                        CIAUpdateQueryHistory::NewL();
+                CleanupStack::PushL(updateQueryHistory);
+                updateQueryHistory->SetTimeL(mUpdatequeryUid);
+                CleanupStack::PopAndDestroy(updateQueryHistory);
                 }
-            InformRequestObserver( KErrNone );
+            InformRequestObserver(KErrNone);
             break;
-        default: 
+        default:
             break;
         }
     }
 
-
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::StartupComplete
 // 
 // -----------------------------------------------------------------------------
 //    
-void IAUpdateEngine::StartupComplete( TInt aError )
+void IAUpdateEngine::StartupComplete(TInt aError)
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupComplete() begin"); 
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupComplete() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] error code: %d", aError);
-    
-    if( aError != KErrNone ) 
-        {  
-        HandleLeaveErrorWithoutLeave( aError );
+
+    if (aError != KErrNone)
+        {
+        HandleLeaveErrorWithoutLeave(aError);
         }
     else
         {
         TRAPD( err, StartupCompleteL() );
-        if( err != KErrNone ) 
-           {  
-           HandleLeaveErrorWithoutLeave( err );
-           }
+        if (err != KErrNone)
+            {
+            HandleLeaveErrorWithoutLeave(err);
+            }
         }
- 
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupComplete() end");    
+
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupComplete() end");
     }
-    
+
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::StartupCompleteL
 // 
@@ -464,23 +465,23 @@
 //    
 void IAUpdateEngine::StartupCompleteL()
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupCompleteL() begin"); 
-    
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupCompleteL() begin");
+
     delete iGlobalLockHandler;
     iGlobalLockHandler = NULL;
     iGlobalLockHandler = CIAUpdateGlobalLockHandler::NewL();
-    if ( !iGlobalLockHandler->InUseByAnotherInstanceL() )
+    if (!iGlobalLockHandler->InUseByAnotherInstanceL())
         {
         bool totalSilent(false);
-        if ( mRequestType == IAUpdateUiDefines::ECheckUpdates )
+        if (mRequestType == IAUpdateUiDefines::ECheckUpdates)
             {
-            if ( iController->Filter() )
+            if (iController->Filter())
                 {
-                if ( iController->Filter()->FilterParams() )
+                if (iController->Filter()->FilterParams())
                     {
-                    if ( iController->Filter()->FilterParams()->Refresh() )
+                    if (iController->Filter()->FilterParams()->Refresh())
                         {
-                        if ( !iController->ForcedRefresh() )
+                        if (!iController->ForcedRefresh())
                             {
                             //from bgchecker, make it silent
                             totalSilent = true;
@@ -489,141 +490,139 @@
                     }
                 }
             }
-        SetDefaultConnectionMethodL( totalSilent );
+        SetDefaultConnectionMethodL(totalSilent);
         iGlobalLockHandler->SetToInUseForAnotherInstancesL(true);
-        iController->StartRefreshL();  
+        iController->StartRefreshL();
         }
     else
         {
-        RefreshCompleteL( true, KErrServerBusy );
-        }    
- 
-       
-    
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupCompleteL() end");    
+        RefreshCompleteL(true, KErrServerBusy);
+        }
+
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::StartupCompleteL() end");
     }
 
- 
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::HandleLeaveErrorL
 // 
 // -----------------------------------------------------------------------------
 //        
-void IAUpdateEngine::HandleLeaveErrorL( TInt aError )
+void IAUpdateEngine::HandleLeaveErrorL(TInt aError)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HandleLeaveErrorL() begin");
     //removal of iGlobalLockHandler releases possible global operation lock to other IAD instances
     delete iGlobalLockHandler;
     iGlobalLockHandler = NULL;
     // client request is completed before leave in case of leave error
-    if ( aError != KErrNone ) 
-        {   
-        InformRequestObserver( aError );
-        User::Leave( aError );
+    if (aError != KErrNone)
+        {
+        InformRequestObserver(aError);
+        User::Leave(aError);
         }
-    
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HandleLeaveErrorL() end");
     }
 
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::HandleLeaveErrorWithoutLeave
 // 
 // -----------------------------------------------------------------------------
 //  
-void IAUpdateEngine::HandleLeaveErrorWithoutLeave( TInt aError )
+void IAUpdateEngine::HandleLeaveErrorWithoutLeave(TInt aError)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HandleLeaveErrorWithoutLeave() begin");
     //removal of iGlobalLockHandler releases possible global operation lock to other IAD instances
     delete iGlobalLockHandler;
     iGlobalLockHandler = NULL;
-    if ( aError != KErrNone ) 
+    if (aError != KErrNone)
         {
-        InformRequestObserver( aError );
+        InformRequestObserver(aError);
         }
-    if ( aError == KErrDiskFull )
+    if (aError == KErrDiskFull)
         {
         //TRAP_IGNORE( ShowGlobalErrorNoteL( aError ) );
         }
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HandleLeaveErrorWithoutLeave end");
     }
 
+// -----------------------------------------------------------------------------
+// IAUpdateEngine::RefreshUI
+// 
+// -----------------------------------------------------------------------------
+// 
+void IAUpdateEngine::RefreshUI()
+    {
+    emit refresh(iController->Nodes(), iController->FwNodes(), KErrNone);
+    }
 
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::RefreshCompleteL
 // 
 // -----------------------------------------------------------------------------
 //      
-void IAUpdateEngine::RefreshCompleteL( TBool /*aWithViewActivation*/, TInt aError )
+void IAUpdateEngine::RefreshCompleteL(TBool /*aWithViewActivation*/,
+        TInt aError)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::RefreshCompleteL() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] error code: %d", aError );
     //removal of iGlobalLockHandler releases possible global operation lock to other IAD instances
     delete iGlobalLockHandler;
-    iGlobalLockHandler = NULL;   
-   
-    if ( mRequestType == IAUpdateUiDefines::ECheckUpdates )
+    iGlobalLockHandler = NULL;
+
+    if (mRequestType == IAUpdateUiDefines::ECheckUpdates)
         {
-        InformRequestObserver( aError );
+        InformRequestObserver(aError);
         }
-    else 
-        {    
-        emit refresh( iController->Nodes(), iController->FwNodes(), aError );   
+    else
+        {
+        emit refresh(iController->Nodes(), iController->FwNodes(), aError);
         //if ( aWithViewActivation)
-          //  {
-          //  ActivateLocalViewL( TUid::Uid( EIAUpdateMainViewId ) );
-          //  }
+        //  {
+        //  ActivateLocalViewL( TUid::Uid( EIAUpdateMainViewId ) );
+        //  }
         CIAUpdateAgreement* agreement = CIAUpdateAgreement::NewLC();
         bool agreementAccepted = agreement->AgreementAcceptedL();
-        if ( iController->ForcedRefresh() )    
+        if (iController->ForcedRefresh())
             {
-            if ( !agreementAccepted )
+            if (!agreementAccepted)
                 {
                 agreement->SetAgreementAcceptedL();
                 }
             }
-        CleanupStack::PopAndDestroy( agreement );
+        CleanupStack::PopAndDestroy(agreement);
         // By calling CIdle possible waiting dialog can be closed before
         // automatic check where a new dialog may be launched
         delete iIdleAutCheck;
         iIdleAutCheck = NULL;
-        iIdleAutCheck = CIdle::NewL( CActive::EPriorityIdle ); 
-        iIdleAutCheck->Start( TCallBack( AutomaticCheckCallbackL, this ) );
-        } 
- 
-  
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::RefreshCompleteL() end");        
+        iIdleAutCheck = CIdle::NewL(CActive::EPriorityIdle);
+        iIdleAutCheck->Start(TCallBack(AutomaticCheckCallbackL, this));
+        }
+
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::RefreshCompleteL() end");
     }
 
-
-
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::UpdateCompleteL
 // 
 // -----------------------------------------------------------------------------
 //     
-void IAUpdateEngine::UpdateCompleteL( TInt aError )    
+void IAUpdateEngine::UpdateCompleteL(TInt aError)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::UpdateCompleteL begin");
     IAUPDATE_TRACE_1("[IAUPDATE] error code: %d", aError );
     //removal of iGlobalLockHandler releases possible global operation lock to other IAD instances
     delete iGlobalLockHandler;
-    iGlobalLockHandler = NULL;  
-    if ( mRequestType != IAUpdateUiDefines::ENoRequest )
+    iGlobalLockHandler = NULL;
+    if (mRequestType != IAUpdateUiDefines::ENoRequest)
         {
-        InformRequestObserver( aError );
+        InformRequestObserver(aError);
         }
-    
-    emit refresh( iController->Nodes(), iController->FwNodes(), KErrNone );
-         
+
     ShowResultsDialogL();
-                
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::UpdateCompleteL end");
     }
 
-
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::ShowResultsDialogL
 // 
@@ -631,16 +630,17 @@
 //   
 void IAUpdateEngine::ShowResultsDialogL()
     {
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() begin"); 
-                
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() begin");
+
     mUiRefreshAllowed = false;
     mResultsDialog = new IAUpdateResultsDialog(this);
-    mResultsDialog->showResults(iController->ResultsInfo(),this,SLOT(dialogFinished(HbAction*)));
+    mResultsDialog->showResults(iController->ResultsInfo(), this,
+            SLOT(dialogFinished(HbAction*)));
     mDialogState = Results;
-    
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowResultsDialogL() end");
     }
-    
+
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::ShowRebootDialogL
 // 
@@ -649,14 +649,15 @@
 void IAUpdateEngine::ShowRebootDialogL()
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowRebootDialogL() begin");
-    
-    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+
+    HbMessageBox *messageBox = new HbMessageBox(
+            HbMessageBox::MessageTypeQuestion);
     messageBox->setText(QString("Phone restart needed. Restart now?"));
     int actionCount = messageBox->actions().count();
-    for (int i=actionCount-1; i >= 0; i--)
-    { 
+    for (int i = actionCount - 1; i >= 0; i--)
+        {
         messageBox->removeAction(messageBox->actions().at(i));
-    }
+        }
     mPrimaryAction = NULL;
     mPrimaryAction = new HbAction("Ok");
     HbAction *secondaryAction = NULL;
@@ -668,87 +669,85 @@
     messageBox->setAttribute(Qt::WA_DeleteOnClose);
     messageBox->open(this, SLOT(dialogFinished(HbAction*)));
     mDialogState = RebootQuery;
-    
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowRebootDialogL() end");
     }
 
-
-
-
-
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::InformRequestObserver
 // 
 // -----------------------------------------------------------------------------
 //      
-void IAUpdateEngine::InformRequestObserver( int aError )
+void IAUpdateEngine::InformRequestObserver(int aError)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::InformRequestObserver() begin");
-        
+
     //if ( iRequestObserver )
-    if ( mRequestIssued )    
+    if (mRequestIssued)
         {
-        if ( iController->ClosingAllowedByClient() )
+        if (iController->ClosingAllowedByClient())
             {
-            if ( mRequestType != IAUpdateUiDefines::ENoRequest )
+            if (mRequestType != IAUpdateUiDefines::ENoRequest)
                 {
-//                if ( iRequestType == IAUpdateUiDefines::EUpdateQuery && iUpdateNow )
-//                    {
-//                  if ( !iBackgroundTimer )
-//                        {
-//                        iBackgroundTimer = CIAUpdateUITimer::NewL( *this, CIAUpdateUITimer::EBackgroundDelay );
-//                        }
-//                 if ( !iBackgroundTimer->IsActive() )
-//                        {
-//                        iBackgroundTimer->After( 500000 );
-//                        }
-//                    }
-//                 else
-//                    {
-                      iEikEnv->RootWin().SetOrdinalPosition( -1, ECoeWinPriorityNeverAtFront );
-//                    }
+                //                if ( iRequestType == IAUpdateUiDefines::EUpdateQuery && iUpdateNow )
+                //                    {
+                //                  if ( !iBackgroundTimer )
+                //                        {
+                //                        iBackgroundTimer = CIAUpdateUITimer::NewL( *this, CIAUpdateUITimer::EBackgroundDelay );
+                //                        }
+                //                 if ( !iBackgroundTimer->IsActive() )
+                //                        {
+                //                        iBackgroundTimer->After( 500000 );
+                //                        }
+                //                    }
+                //                 else
+                //                    {
+                iEikEnv->RootWin().SetOrdinalPosition(-1,
+                        ECoeWinPriorityNeverAtFront);
+                //                    }
                 }
             }
-        
-        switch ( mRequestType )
+
+        switch (mRequestType)
             {
             case IAUpdateUiDefines::ENoRequest:
                 {
-                mServiceProvider->completeLauncherLaunch( aError );
+                mServiceProvider->completeLauncherLaunch(aError);
                 break;
                 }
             case IAUpdateUiDefines::ECheckUpdates:
                 {
-                mServiceProvider->completeCheckUpdates( iController->CountOfAvailableUpdates(), aError );
+                mServiceProvider->completeCheckUpdates(
+                        iController->CountOfAvailableUpdates(), aError);
                 break;
                 }
             case IAUpdateUiDefines::EShowUpdates:
                 {
-                CIAUpdateResult* result( NULL );
+                CIAUpdateResult* result(NULL);
                 TRAPD( error, result = CIAUpdateResult::NewL() )
-                if ( result )
+                if (result)
                     {
-                    TIAUpdateResultsInfo resultsInfo( iController->ResultsInfo() );
-                    IAUPDATE_TRACE_3("[IAUPDATE] IAUpdateEngine::InformRequestObserver succeed: %d failed: %d  cancelled: %d", 
-                                                  resultsInfo.iCountSuccessfull, 
-                                                  resultsInfo.iCountFailed, 
-                                                  resultsInfo.iCountCancelled );
-                    result->SetSuccessCount( resultsInfo.iCountSuccessfull );
-                    result->SetFailCount( resultsInfo.iCountFailed );
-                    result->SetCancelCount( resultsInfo.iCountCancelled );    
-                    mServiceProvider->completeShowUpdates( result, aError );
+                    TIAUpdateResultsInfo resultsInfo(
+                            iController->ResultsInfo());
+                    IAUPDATE_TRACE_3("[IAUPDATE] IAUpdateEngine::InformRequestObserver succeed: %d failed: %d  cancelled: %d",
+                            resultsInfo.iCountSuccessfull,
+                            resultsInfo.iCountFailed,
+                            resultsInfo.iCountCancelled );
+                    result->SetSuccessCount(resultsInfo.iCountSuccessfull);
+                    result->SetFailCount(resultsInfo.iCountFailed);
+                    result->SetCancelCount(resultsInfo.iCountCancelled);
+                    mServiceProvider->completeShowUpdates(result, aError);
                     // Ownership of result is transferred here.
                     }
                 else
                     {
-                    mServiceProvider->completeShowUpdates( NULL, error );
+                    mServiceProvider->completeShowUpdates(NULL, error);
                     }
                 break;
                 }
             case IAUpdateUiDefines::EUpdateQuery:
                 {
-                mServiceProvider->completeUpdateQuery( mUpdateNow, aError );
+                mServiceProvider->completeUpdateQuery(mUpdateNow, aError);
                 break;
                 }
             default:
@@ -759,326 +758,315 @@
 
         mRequestIssued = false;
         }
-        
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::InformRequestObserver() end");
     }
 
-
 // ---------------------------------------------------------------------------
 // IAUpdateEngine::SetDefaultConnectionMethodL
 // Sets the connection method for the update network connection.
 // ---------------------------------------------------------------------------
 //
-void IAUpdateEngine::SetDefaultConnectionMethodL( bool aTotalSilent )
+void IAUpdateEngine::SetDefaultConnectionMethodL(bool aTotalSilent)
     {
-    if ( aTotalSilent )
+    if (aTotalSilent)
         {
         // from back ground checker, choose the IAP to make the internet access silent
         IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() begin");
 
-           uint connectionMethodId( 0 );
-           int connMethodId( 0 );
+        uint connectionMethodId(0);
+        int connMethodId(0);
+
+        // Let's first check whether cenrep contains SNAP id other than zero
+        CRepository* cenrep(CRepository::NewLC(KCRUidIAUpdateSettings));
+        User::LeaveIfError(cenrep->Get(KIAUpdateAccessPoint, connMethodId));
+        CleanupStack::PopAndDestroy(cenrep);
+        cenrep = NULL;
 
-           // Let's first check whether cenrep contains SNAP id other than zero
-           CRepository* cenrep( CRepository::NewLC( KCRUidIAUpdateSettings ) );
-           User::LeaveIfError(  
-               cenrep->Get( KIAUpdateAccessPoint, connMethodId ) );
-           CleanupStack::PopAndDestroy( cenrep ); 
-           cenrep = NULL;
+        RCmManager cmManager;
+        cmManager.OpenL();
+        CleanupClosePushL(cmManager);
+
+        if (connMethodId == -1)
+            {
+            IAUPDATE_TRACE("[IAUPDATE] user chooses default connection, use IAP logic");
+
+            //check what is the default connection by users     
+
+            TCmDefConnValue DCSetting;
+            cmManager.ReadDefConnL(DCSetting);
 
-           RCmManagerExt cmManagerExt;
-           cmManagerExt.OpenL();
-           CleanupClosePushL( cmManagerExt );
-           
-           if ( connMethodId == -1 )
-               {
-               IAUPDATE_TRACE("[IAUPDATE] user chooses default connection, use IAP logic");
-               
-               //check what is the default connection by users     
-               
-               TCmDefConnValue DCSetting;
-               cmManagerExt.ReadDefConnL( DCSetting );
-              
-               
-               switch ( DCSetting.iType )
-                   {
-                   case ECmDefConnAlwaysAsk:
-                   case ECmDefConnAskOnce:
-                       {
-                       //go with the best IAP under internet snap
-                       connectionMethodId = GetBestIAPInAllSNAPsL( cmManagerExt );
-                       break;
-                       }
-                   case ECmDefConnDestination:
-                       {
-                       //go with the best IAP under this snap
-                       connectionMethodId = GetBestIAPInThisSNAPL( cmManagerExt, DCSetting.iId );
-                       break;
-                       }
-                   case ECmDefConnConnectionMethod:
-                       {
-                       //go with the best IAP under this snap
-                       connectionMethodId = DCSetting.iId;
-                       break;
-                       }
-                   }
-               }
-           else if ( connMethodId == 0 )
-               {
-               //no choice from user, we go with the best IAP under Internent SNAP
-               connectionMethodId = GetBestIAPInAllSNAPsL( cmManagerExt );
-               }
-           else
-               {
-               IAUPDATE_TRACE("[IAUPDATE] use chooses a snap");
-               // It was some SNAP value
-               connectionMethodId = GetBestIAPInThisSNAPL( cmManagerExt, connMethodId );
-               }
+            switch (DCSetting.iType)
+                {
+                case ECmDefConnAlwaysAsk:
+                case ECmDefConnAskOnce:
+                    {
+                    //go with the best IAP under internet snap
+                    connectionMethodId = GetBestIAPInAllSNAPsL(cmManager);
+                    break;
+                    }
+                case ECmDefConnDestination:
+                    {
+                    //go with the best IAP under this snap
+                    connectionMethodId = GetBestIAPInThisSNAPL(cmManager,
+                            DCSetting.iId);
+                    break;
+                    }
+                case ECmDefConnConnectionMethod:
+                    {
+                    //go with the best IAP under this snap
+                    connectionMethodId = DCSetting.iId;
+                    break;
+                    }
+                }
+            }
+        else if (connMethodId == 0)
+            {
+            //no choice from user, we go with the best IAP under Internent SNAP
+            connectionMethodId = GetBestIAPInAllSNAPsL(cmManager);
+            }
+        else
+            {
+            IAUPDATE_TRACE("[IAUPDATE] use chooses a snap");
+            // It was some SNAP value
+            connectionMethodId = GetBestIAPInThisSNAPL(cmManager,
+                    connMethodId);
+            }
 
-           CleanupStack::PopAndDestroy( &cmManagerExt ); 
-           
-           if ( connectionMethodId != 0 )
-               {
-               TIAUpdateConnectionMethod connectionMethod( 
-                   connectionMethodId, 
-                   TIAUpdateConnectionMethod::EConnectionMethodTypeAccessPoint );
+        CleanupStack::PopAndDestroy(&cmManager);
+
+        if (connectionMethodId != 0)
+            {
+            TIAUpdateConnectionMethod
+                    connectionMethod(
+                            connectionMethodId,
+                            TIAUpdateConnectionMethod::EConnectionMethodTypeAccessPoint);
 
-               iController->SetDefaultConnectionMethodL( connectionMethod );
-               }
-           else
-               {
-               //In the totally silent case, if no usable IAP, we complete the check update with 0 updates.
-               //the bgchecker will try again later after 1 month. 
-               //The LEAVE will be catched up later and complete the request from background checker.
-               User::LeaveIfError( KErrNotFound );
-               
-               //the following code will pop up dialog to ask from user, just for proto
-              /* connectionMethodId = 0;               
-               TIAUpdateConnectionMethod connectionMethod( 
-                   connectionMethodId, TIAUpdateConnectionMethod::EConnectionMethodTypeDefault );
-
-               iController->SetDefaultConnectionMethodL( connectionMethod );*/
-               }
-           
-
-
-           IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() end");
+            iController->SetDefaultConnectionMethodL(connectionMethod);
+            }
+        else
+            {
+            //In the totally silent case, if no usable IAP, we complete the check update with 0 updates.
+            //the bgchecker will try again later after 1 month. 
+            //The LEAVE will be catched up later and complete the request from background checker.
+            User::LeaveIfError(KErrNotFound);
+            }
+        IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() end");
         }
     else
         {
         // from grid, use the old logic
         IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() begin");
-                  uint connectionMethodId( 0 );
-                  int connMethodId( 0 );
+        uint connectionMethodId(0);
+        int connMethodId(0);
+
+        // Set initial value to always ask
+        int connectionMethodType(
+                TIAUpdateConnectionMethod::EConnectionMethodTypeAlwaysAsk);
+        bool needSaving(false);
 
-                  // Set initial value to always ask
-                  int connectionMethodType( TIAUpdateConnectionMethod::EConnectionMethodTypeAlwaysAsk );
-                  bool needSaving(false);
+        // Let's first check whether cenrep contains SNAP id other than zero
+        CRepository* cenrep(CRepository::NewLC(KCRUidIAUpdateSettings));
+        User::LeaveIfError(cenrep->Get(KIAUpdateAccessPoint, connMethodId));
+        CleanupStack::PopAndDestroy(cenrep);
+        cenrep = NULL;
+
+        if (connMethodId == -1)
+            {
+            IAUPDATE_TRACE("[IAUPDATE] user chooses default connection, use IAP logic");
 
-                  // Let's first check whether cenrep contains SNAP id other than zero
-                  CRepository* cenrep( CRepository::NewLC( KCRUidIAUpdateSettings ) );
-                  User::LeaveIfError(  
-                      cenrep->Get( KIAUpdateAccessPoint, connMethodId ) );
-                  CleanupStack::PopAndDestroy( cenrep ); 
-                  cenrep = NULL;
-                    
-                  if ( connMethodId == -1 )
-                      {
-                      IAUPDATE_TRACE("[IAUPDATE] user chooses default connection, use IAP logic");
-                                            
-                      connectionMethodId = 0;
-                      connectionMethodType = TIAUpdateConnectionMethod::EConnectionMethodTypeDefault;
-                      }
-                  else if ( connMethodId == 0 )
-                      {
-                      
-                      IAUPDATE_TRACE("[IAUPDATE] use chooses nothing, use internal IAP logic");
-                      //if nothing is set by user, use our new logic
-                      //SetDefaultConnectionMethod2L();
-                      //return;
-                      // CenRep didn't contain any SNAP id. Let's try Internet SNAP then.
-                          
-                      RCmManagerExt cmManagerExt;
-                      cmManagerExt.OpenL();
-                      CleanupClosePushL( cmManagerExt );
-                      iDestIdArray.Reset();
-                      cmManagerExt.AllDestinationsL( iDestIdArray );
+            connectionMethodId = 0;
+            connectionMethodType
+                    = TIAUpdateConnectionMethod::EConnectionMethodTypeDefault;
+            }
+        else if (connMethodId == 0)
+            {
+            IAUPDATE_TRACE("[IAUPDATE] use chooses nothing, use internal IAP logic");
+            //if nothing is set by user, use our new logic
+            //SetDefaultConnectionMethod2L();
+            //return;
+            // CenRep didn't contain any SNAP id. Let's try Internet SNAP then.
+
+            RCmManager cmManager;
+            cmManager.OpenL();
+            CleanupClosePushL(cmManager);
+            iDestIdArray.Reset();
+            cmManager.AllDestinationsL(iDestIdArray);
+
+            for (int i = 0; i < iDestIdArray.Count(); i++)
+                {
+                RCmDestination dest = cmManager.DestinationL(iDestIdArray[i]);
+                CleanupClosePushL(dest);
 
-                      for ( int i = 0; i< iDestIdArray.Count(); i++ )
-                          {
-                          RCmDestinationExt dest = cmManagerExt.DestinationL( iDestIdArray[i] );
-                          CleanupClosePushL( dest );
-                           
-                          if ( dest.MetadataL( CMManager::ESnapMetadataInternet ) )
-                              {
-                              // Check whether Internet SNAP contains any IAP.
-                              if ( dest.ConnectionMethodCount() > 0 )
-                                  {
-                                  connectionMethodId = iDestIdArray[i];
-                                  needSaving = true;
-                                  IAUPDATE_TRACE_1("[IAUPDATE] connectionMethodId: %d", connectionMethodId );
-                                  }
-                              CleanupStack::PopAndDestroy( &dest ); 
-                              break;
-                              }
-                               
-                          CleanupStack::PopAndDestroy( &dest ); 
-                          }
-                      iDestIdArray.Reset();
-                      CleanupStack::PopAndDestroy( &cmManagerExt ); 
-                      }
-                  else
-                      {
-                      IAUPDATE_TRACE("[IAUPDATE] use chooses a snap");
-                      // It was some SNAP value
-                      connectionMethodId = connMethodId;
-                      }
-                  
-                  if ( connectionMethodId > 0)
-                      {
-                      // We have now some valid SNAP id, either from CenRep or Internet SNAP
-                      connectionMethodType = TIAUpdateConnectionMethod::EConnectionMethodTypeDestination;
-                      // Save to cenrep if needed
-                      if ( needSaving )
-                          {
-                          cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
-                          int err = cenrep->StartTransaction( CRepository::EReadWriteTransaction );
-                          User::LeaveIfError( err );
-                          cenrep->CleanupCancelTransactionPushL();
-                          
-                          connMethodId = connectionMethodId;
-                          err = cenrep->Set( KIAUpdateAccessPoint, connMethodId );
-                          User::LeaveIfError( err );
-                          TUint32 ignore = KErrNone;
-                          User::LeaveIfError( cenrep->CommitTransaction( ignore ) );
-                          CleanupStack::PopAndDestroy(); // CleanupCancelTransactionPushL()
-                          CleanupStack::PopAndDestroy( cenrep );            
-                          }
-                      }
+                if (dest.MetadataL(CMManager::ESnapMetadataInternet))
+                    {
+                    // Check whether Internet SNAP contains any IAP.
+                    if (dest.ConnectionMethodCount() > 0)
+                        {
+                        connectionMethodId = iDestIdArray[i];
+                        needSaving = true;
+                        IAUPDATE_TRACE_1("[IAUPDATE] connectionMethodId: %d", connectionMethodId );
+                        }
+                    CleanupStack::PopAndDestroy(&dest);
+                    break;
+                    }
+
+                CleanupStack::PopAndDestroy(&dest);
+                }
+            iDestIdArray.Reset();
+            CleanupStack::PopAndDestroy(&cmManager);
+            }
+        else
+            {
+            IAUPDATE_TRACE("[IAUPDATE] use chooses a snap");
+            // It was some SNAP value
+            connectionMethodId = connMethodId;
+            }
 
-                  TIAUpdateConnectionMethod connectionMethod( 
-                      connectionMethodId, 
-                      static_cast< TIAUpdateConnectionMethod::TConnectionMethodType >( connectionMethodType ) );
-
-                  iController->SetDefaultConnectionMethodL( connectionMethod );
+        if (connectionMethodId > 0)
+            {
+            // We have now some valid SNAP id, either from CenRep or Internet SNAP
+            connectionMethodType
+                    = TIAUpdateConnectionMethod::EConnectionMethodTypeDestination;
+            // Save to cenrep if needed
+            if (needSaving)
+                {
+                cenrep = CRepository::NewLC(KCRUidIAUpdateSettings);
+                int err = cenrep->StartTransaction(
+                        CRepository::EReadWriteTransaction);
+                User::LeaveIfError(err);
+                cenrep->CleanupCancelTransactionPushL();
 
-                  IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() end");
-        }
+                connMethodId = connectionMethodId;
+                err = cenrep->Set(KIAUpdateAccessPoint, connMethodId);
+                User::LeaveIfError(err);
+                TUint32 ignore = KErrNone;
+                User::LeaveIfError(cenrep->CommitTransaction(ignore));
+                CleanupStack::PopAndDestroy(); // CleanupCancelTransactionPushL()
+                CleanupStack::PopAndDestroy(cenrep);
+                }
+            }
 
+        TIAUpdateConnectionMethod
+                connectionMethod(
+                        connectionMethodId,
+                        static_cast<TIAUpdateConnectionMethod::TConnectionMethodType> (connectionMethodType));
+
+        iController->SetDefaultConnectionMethodL(connectionMethod);
+
+        IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::SetDefaultConnectionMethodL() end");
+        }
     }
 
-
 // ---------------------------------------------------------------------------
 // IAUpdateEngine::GetBestIAPInAllSNAPsL
 // Sets the best IAP from all snaps
 // ---------------------------------------------------------------------------
 //
-uint IAUpdateEngine::GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt  )
-    { 
+uint IAUpdateEngine::GetBestIAPInAllSNAPsL(RCmManager& aCmManager)
+    {
     //go with internet SNAP first.
     uint IAPID = 0;
-    IAPID = GetBestIAPInInternetSNAPL( aCmManagerExt );
-    
-    if ( IAPID )
+    IAPID = GetBestIAPInInternetSNAPL(aCmManager);
+
+    if (IAPID)
         {
         return IAPID;
         }
-    
+
     //select IAP from rest of the SNAPs
     iDestIdArray.Reset();
-    aCmManagerExt.AllDestinationsL( iDestIdArray );
-    
-    for ( int i = 0; i< iDestIdArray.Count(); i++ )
+    aCmManager.AllDestinationsL(iDestIdArray);
+
+    for (int i = 0; i < iDestIdArray.Count(); i++)
         {
-        uint SNAPID = iDestIdArray[i];                   
-        IAPID = GetBestIAPInThisSNAPL( aCmManagerExt, SNAPID );
-        if ( IAPID )
+        uint SNAPID = iDestIdArray[i];
+        IAPID = GetBestIAPInThisSNAPL(aCmManager, SNAPID);
+        if (IAPID)
             {
             break;
             }
-         }
+        }
     iDestIdArray.Reset();
     return IAPID;
     }
 
-
-
 // ---------------------------------------------------------------------------
 // IAUpdateEngine::GetBestIAPInInternetSNAPL
 // Sets the best IAP from internet snap
 // ---------------------------------------------------------------------------
 //
-uint IAUpdateEngine::GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt  )
+uint IAUpdateEngine::GetBestIAPInInternetSNAPL(RCmManager& aCmManager)
     {
     //select IAP from Internet SNAP
     iDestIdArray.Reset();
-    aCmManagerExt.AllDestinationsL( iDestIdArray );
+    aCmManager.AllDestinationsL(iDestIdArray);
     uint InternetSNAPID = 0;
-    for ( int i = 0; i< iDestIdArray.Count(); i++ )
+    for (int i = 0; i < iDestIdArray.Count(); i++)
         {
-        RCmDestinationExt dest = aCmManagerExt.DestinationL( iDestIdArray[i] );
-        CleanupClosePushL( dest );
-                                     
-        if ( dest.MetadataL( CMManager::ESnapMetadataInternet ) )
+        RCmDestination dest = aCmManager.DestinationL(iDestIdArray[i]);
+        CleanupClosePushL(dest);
+
+        if (dest.MetadataL(CMManager::ESnapMetadataInternet))
             {
             InternetSNAPID = iDestIdArray[i];
-            CleanupStack::PopAndDestroy( &dest ); 
+            CleanupStack::PopAndDestroy(&dest);
             break;
-            }                     
-         CleanupStack::PopAndDestroy( &dest ); 
-         }
+            }
+        CleanupStack::PopAndDestroy(&dest);
+        }
     iDestIdArray.Reset();
-    
-    return GetBestIAPInThisSNAPL( aCmManagerExt, InternetSNAPID );
+
+    return GetBestIAPInThisSNAPL(aCmManager, InternetSNAPID);
     }
 
-
-
 // ---------------------------------------------------------------------------
 // IAUpdateEngine::GetBestIAPInThisSNAPL
 // Sets the best IAP from the given snap
 // ---------------------------------------------------------------------------
 //
-uint IAUpdateEngine::GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, uint aSNAPID  )
+uint IAUpdateEngine::GetBestIAPInThisSNAPL(RCmManager& aCmManager,
+        uint aSNAPID)
     {
     //get all usable IAPs
     TConnMonIapInfoBuf iapInfo;
     TRequestStatus status;
-                       
+
     RConnectionMonitor connMon;
     connMon.ConnectL();
-    CleanupClosePushL( connMon );
-    
-    connMon.GetPckgAttribute( EBearerIdAll, 0, KIapAvailability,iapInfo, status );
-    User::WaitForRequest( status );
-    User::LeaveIfError( status.Int() );
-    
-    CleanupStack::PopAndDestroy( &connMon ); 
-    
-    RCmDestinationExt dest = aCmManagerExt.DestinationL( aSNAPID );
-    CleanupClosePushL( dest );
-    
+    CleanupClosePushL(connMon);
+
+    connMon.GetPckgAttribute(EBearerIdAll, 0, KIapAvailability, iapInfo,
+            status);
+    User::WaitForRequest(status);
+    User::LeaveIfError(status.Int());
+
+    CleanupStack::PopAndDestroy(&connMon);
+
+    RCmDestination dest = aCmManager.DestinationL(aSNAPID);
+    CleanupClosePushL(dest);
+
     // Check whether the SNAP contains any IAP.
-    for  (int i = 0; i < dest.ConnectionMethodCount(); i++ )
+    for (int i = 0; i < dest.ConnectionMethodCount(); i++)
         {
-        RCmConnectionMethodExt cm =  dest.ConnectionMethodL( i );
-        CleanupClosePushL( cm );
-        
-        uint iapid= cm.GetIntAttributeL( CMManager::ECmIapId );
-        
-        for ( int i = 0; i < iapInfo().iCount; i++ )
+        RCmConnectionMethod cm = dest.ConnectionMethodL(i);
+        CleanupClosePushL(cm);
+
+        uint iapid = cm.GetIntAttributeL(CMManager::ECmIapId);
+
+        for (int i = 0; i < iapInfo().iCount; i++)
             {
-            if ( iapInfo().iIap[i].iIapId == iapid )
+            if (iapInfo().iIap[i].iIapId == iapid)
                 {
-                CleanupStack::PopAndDestroy( 2 ); //cm & dest;
+                CleanupStack::PopAndDestroy(2); //cm & dest;
                 return iapid;
                 }
-            }    
-                                                                                 
-        CleanupStack::PopAndDestroy( &cm );
+            }
+
+        CleanupStack::PopAndDestroy(&cm);
         }
-    
-    CleanupStack::PopAndDestroy( &dest ); 
+
+    CleanupStack::PopAndDestroy(&dest);
     return 0;
     }
 
@@ -1093,28 +1081,31 @@
     CIAUpdateQueryHistory* updateQueryHistory = CIAUpdateQueryHistory::NewL();
     // Get the delay information from the controller that has read it from
     // the config file.
-    updateQueryHistory->SetDelay( iController->ConfigData().QueryHistoryDelayHours() );
-    CleanupStack::PushL( updateQueryHistory );
-    bool isDelayed( updateQueryHistory->IsDelayedL( mUpdatequeryUid ) );
-    CleanupStack::PopAndDestroy( updateQueryHistory );
-    if ( !isDelayed )
+    updateQueryHistory->SetDelay(
+            iController->ConfigData().QueryHistoryDelayHours());
+    CleanupStack::PushL(updateQueryHistory);
+    bool isDelayed(updateQueryHistory->IsDelayedL(mUpdatequeryUid));
+    CleanupStack::PopAndDestroy(updateQueryHistory);
+    if (!isDelayed)
         {
-        if ( ClientInBackgroundL() )
+        if (ClientInBackgroundL())
             {
-            iEikEnv->RootWin().SetOrdinalPosition( -1, ECoeWinPriorityNormal );
+            iEikEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNormal);
             }
         else
             {
-            iEikEnv->RootWin().SetOrdinalPosition( 0, ECoeWinPriorityNormal );    
+            iEikEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNormal);
             }
- 
-        HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion); 
-        messageBox->setText(QString("Application update is available from Nokia. Update?"));
+
+        HbMessageBox *messageBox = new HbMessageBox(
+                HbMessageBox::MessageTypeQuestion);
+        messageBox->setText(QString(
+                "Application update is available from Nokia. Update?"));
         int actionCount = messageBox->actions().count();
-        for (int i=actionCount-1; i >= 0; i--)
-        { 
+        for (int i = actionCount - 1; i >= 0; i--)
+            {
             messageBox->removeAction(messageBox->actions().at(i));
-        }
+            }
         mPrimaryAction = NULL;
         mPrimaryAction = new HbAction("Now");
         mSecondaryAction = NULL;
@@ -1128,31 +1119,29 @@
         }
     else
         {
-        InformRequestObserver( KErrNone );
+        InformRequestObserver(KErrNone);
         }
-   
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::ShowUpdateQueryL() end");
     }
 
-
-
 // -----------------------------------------------------------------------------
 // IAUpdateEngine::HideApplicationInFSWL
 // 
 // -----------------------------------------------------------------------------
 //  
-void IAUpdateEngine::HideApplicationInFSWL( bool aHide ) const
+void IAUpdateEngine::HideApplicationInFSWL(bool aHide) const
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HideApplicationInFSW() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] hide: %d", aHide );
     int id = iEikEnv->RootWin().Identifier();
 
-    CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC( 
-            iEikEnv->WsSession(), id );
-    
-    wgName->SetHidden( aHide );
-    wgName->SetWindowGroupName( iEikEnv->RootWin() );    
-    CleanupStack::PopAndDestroy( wgName ); 
+    CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(
+            iEikEnv->WsSession(), id);
+
+    wgName->SetHidden(aHide);
+    wgName->SetWindowGroupName(iEikEnv->RootWin());
+    CleanupStack::PopAndDestroy(wgName);
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::HideApplicationInFSW() end");
     }
 
@@ -1160,10 +1149,10 @@
 // IAUpdateEngine::UpdateQueryCallbackL
 // ---------------------------------------------------------------------------
 //
-TInt IAUpdateEngine::UpdateQueryCallbackL( TAny* aPtr )
+TInt IAUpdateEngine::UpdateQueryCallbackL(TAny* aPtr)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::UpdateQueryCallbackL() begin");
-    IAUpdateEngine* engine = static_cast<IAUpdateEngine*>( aPtr ); 
+    IAUpdateEngine* engine = static_cast<IAUpdateEngine*> (aPtr);
     //TRAPD( err, engine->ShowUpdateQueryL() );
     TRAP_IGNORE( engine->ShowUpdateQueryL() );
     //if ( err != KErrNone )
@@ -1172,36 +1161,36 @@
     //    }
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::UpdateQueryCallbackL() end");
     return KErrNone;
-    }    
+    }
 
 // ---------------------------------------------------------------------------
 // IAUpdateEngine::AutomaticCheckCallbackL
 // ---------------------------------------------------------------------------
 //    
-    
-TInt IAUpdateEngine::AutomaticCheckCallbackL( TAny* aPtr )    
+
+TInt IAUpdateEngine::AutomaticCheckCallbackL(TAny* aPtr)
     {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::AutomaticCheckCallbackL() begin");
-    IAUpdateEngine* engine= static_cast<IAUpdateEngine*>( aPtr ); 
-    
+    IAUpdateEngine* engine = static_cast<IAUpdateEngine*> (aPtr);
+
     int err = KErrNone;
-    if ( !engine->iAutomaticCheck )
+    if (!engine->iAutomaticCheck)
         {
-        TRAP( err, engine->iAutomaticCheck = CIAUpdateAutomaticCheck::NewL() ); 
+        TRAP( err, engine->iAutomaticCheck = CIAUpdateAutomaticCheck::NewL() );
         }
-    if ( err != KErrNone )
+    if (err != KErrNone)
         {
-        engine->HandleLeaveErrorL( err );
+        engine->HandleLeaveErrorL(err);
         }
     else
         {
         TRAP( err, engine->iAutomaticCheck->AcceptAutomaticCheckL() );
-        if ( err != KErrNone )
+        if (err != KErrNone)
             {
-            engine->HandleLeaveErrorL( err );
-            }   
-        } 
-  
+            engine->HandleLeaveErrorL(err);
+            }
+        }
+
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateEngine::AutomaticCheckCallbackL() end");
     return KErrNone;
     }
@@ -1210,18 +1199,25 @@
 // IAUpdateEngine::DoPossibleApplicationClose()
 // ---------------------------------------------------------------------------
 //  
-void IAUpdateEngine::DoPossibleApplicationClose()
+bool IAUpdateEngine::DoPossibleApplicationClose()
     {
     //exit from result view if there are no update left
-    if ( iController->Nodes().Count() == 0 && iController->FwNodes().Count() == 0 )
+    bool toBeClosed = false;
+    if (iController->Nodes().Count() == 0 && iController->FwNodes().Count()
+            == 0)
+        {
+        toBeClosed = true;
+        }
+    else if (mStartedFromApplication
+            && iController->ResultsInfo().iCountCancelled == 0
+            && iController->ResultsInfo().iCountFailed == 0)
+        {
+        toBeClosed = true;
+        }
+    if (toBeClosed)
         {
         qApp->quit();
         }
-    else if ( mStartedFromApplication && 
-        iController->ResultsInfo().iCountCancelled == 0 &&
-        iController->ResultsInfo().iCountFailed == 0 )
-        {
-        qApp->quit();
-        }
+    return toBeClosed;
     }
-            
+
--- a/iaupdate/IAD/ui/src/iaupdatefirsttimedatefile.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* 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 module contains the implementation of CIAUpdateFirstTimeDateFile 
-*                class  member functions.
-*
-*/
-
-
-
-
-#include <bautils.h>
-#include <s32file.h>
-#include <sysutil.h>
-
-#include "iaupdatefirsttimedatefile.h"
-
-
-const TInt KDrive( EDriveC );
-const TInt KSizeOfFile( 8 );
-    
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CIAUpdateFirstTimeDateFile* CIAUpdateFirstTimeDateFile::NewL( 
-    const TDesC& aFile )
-    {
-    CIAUpdateFirstTimeDateFile* self =
-        CIAUpdateFirstTimeDateFile::NewLC( aFile );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CIAUpdateFirstTimeDateFile* CIAUpdateFirstTimeDateFile::NewLC( 
-    const TDesC& aFile )
-    {
-    CIAUpdateFirstTimeDateFile* self =
-        new( ELeave) CIAUpdateFirstTimeDateFile();
-    CleanupStack::PushL( self );
-    self->ConstructL( aFile );
-    return self;    
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::CIAUpdateFirstTimeDateFile
-//
-// -----------------------------------------------------------------------------
-//
-CIAUpdateFirstTimeDateFile::CIAUpdateFirstTimeDateFile()
-: CBase(),
-  iFirstTime( 0 )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeDateFile::ConstructL( const TDesC& aFile )
-    {
-    User::LeaveIfError( iFsSession.Connect() );
-    User::LeaveIfError( 
-        iFsSession.SetSessionToPrivate( KDrive ) );
-    
-    User::LeaveIfError( iFsSession.SessionPath( iPath ) );
-    BaflUtils::EnsurePathExistsL( iFsSession, iPath );
-    iPath.Append( aFile );
-    
-    // Read data from the file if the file exists.
-    // Otherwise, let default values remain.
-    ReadDataL(); 
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::~CIAUpdateFirstTimeDateFile
-//
-// -----------------------------------------------------------------------------
-//
-CIAUpdateFirstTimeDateFile::~CIAUpdateFirstTimeDateFile()
-    {
-    iFsSession.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::ReadDataL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CIAUpdateFirstTimeDateFile::ReadDataL()
-	{
-	RFile file;
-    TInt err = file.Open( iFsSession, iPath, EFileRead|EFileShareAny );
-    if ( err == KErrNotFound )
-    	{
-    	// File did not exist. 
-    	// So, nothing to do here anymore.
-    	return EFalse;
-    	}
-    User::LeaveIfError( err );
-    	
-    CleanupClosePushL( file );
-    
-    RFileReadStream stream( file, 0 );
-    CleanupClosePushL( stream );
-
-    InternalizeL( stream );
-
-    CleanupStack::PopAndDestroy( &stream );
-    CleanupStack::PopAndDestroy( &file );
-
-    return ETrue;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::WriteDataL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeDateFile::WriteDataL()
-	{
-	TDriveUnit driveUnit( KDrive );
-	if ( SysUtil::DiskSpaceBelowCriticalLevelL( 
-	        &iFsSession, KSizeOfFile, driveUnit ) )
-	    {
-		User::Leave( KErrDiskFull );
-	    }
-	
-	RFile file;
-    User::LeaveIfError( 
-        file.Replace( iFsSession, iPath, EFileWrite|EFileShareAny ) );
-    CleanupClosePushL( file );
-    
-    RFileWriteStream stream( file, 0 );
-    CleanupClosePushL( stream );
-
-    ExternalizeL( stream );
-    
-    stream.CommitL();
-    
-    CleanupStack::PopAndDestroy( &stream );
-    CleanupStack::PopAndDestroy( &file );
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::FirstTime
-//
-// -----------------------------------------------------------------------------
-//
-const TTime& CIAUpdateFirstTimeDateFile::FirstTime() const
-    {
-    return iFirstTime;
-    }
-    
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::SetCurrentFirstTime
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeDateFile::SetCurrentFirstTime()
-    {
-    TTime universalTime;
-    universalTime.UniversalTime();
-    iFirstTime = universalTime;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::InternalizeL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeDateFile::InternalizeL( RReadStream& aStream )
-	{
-	// If you make changes here, 
-	// remember to update ExternalizeL accordingly!!!
-
-	TInt64 firstTime( 0 );
-	aStream >> firstTime;
-    iFirstTime = firstTime;
- 	}
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateFirstTimeDateFile::ExternalizeL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeDateFile::ExternalizeL( RWriteStream& aStream )
-	{
-	// If you make changes here, 
-	// remember to update InternalizeL accordingly!!!
-
-	TInt64 firstTime( FirstTime().Int64() );
-	aStream << firstTime;
-	}
--- a/iaupdate/IAD/ui/src/iaupdatefirsttimeinfo.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatefirsttimeinfo.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -20,7 +20,6 @@
 
 //INCLUDES
 #include "iaupdatefirsttimeinfo.h"
-#include "iaupdatefirsttimedatefile.h"
 
 #include <bautils.h>  // bafl.lib 
 #include <s32file.h>  // estor.lib
@@ -108,19 +107,8 @@
     iAgreementAccepted = ETrue;
     WriteDataL();
     }
-    
-// ---------------------------------------------------------------------------
-// CIAUpdateFirstTimeInfo::SetAgreementAskedL
-// Set Nokia agreement as asked (prompted) to an user
-// ---------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeInfo::SetAgreementAskedL()
-    {
-    ReadDataL();
-    iAgreementAsked = ETrue;
-    WriteDataL();
-    }
-        
+  
+       
 // ---------------------------------------------------------------------------
 // CIAUpdateFirstTimeInfo::SetAutomaticUpdatesAskedL
 // Set automatic update checks as prompted to an use
@@ -132,26 +120,6 @@
 	iAutomaticUpdateChecksAsked = ETrue;
     WriteDataL();
     }
-    
-// ---------------------------------------------------------------------------
-// CIAUpdateFirstTimeInfo::SetFirstTimeIfNotSetL
-// 
-// ---------------------------------------------------------------------------
-//
-void CIAUpdateFirstTimeInfo::SetFirstTimeIfNotSetL()
-    {
-	if ( !AutomaticUpdateChecksAskedL() )
-	    {
-		CIAUpdateFirstTimeDateFile* firstTimeDateFile = 
-		      CIAUpdateFirstTimeDateFile::NewLC( KIAUpdateFirstTimeDateFile );
-		if ( firstTimeDateFile->FirstTime().Int64() == 0 )
-		    {
-			firstTimeDateFile->SetCurrentFirstTime();
-			firstTimeDateFile->WriteDataL();
-		    }
-		CleanupStack::PopAndDestroy( firstTimeDateFile );   
-	    }
-    }
 
 // ---------------------------------------------------------------------------
 // CIAUpdateFirstTimeInfo::AgreementAcceptedL
@@ -164,18 +132,6 @@
     return iAgreementAccepted;
     }
 
-
-// ---------------------------------------------------------------------------
-// CIAUpdateFirstTimeInfo::AgreementAskedL
-// Is Nokia agreement of Application Update already asked 
-// ---------------------------------------------------------------------------
-//
-TBool CIAUpdateFirstTimeInfo::AgreementAskedL()
-    {
-	ReadDataL();
-	return iAgreementAsked;
-    }
-
 // ---------------------------------------------------------------------------
 // CIAUpdateFirstTimeInfo::AutomaticUpdateChecksAskedL
 // Is activation for automatic update cheks from network already asked 
@@ -187,37 +143,6 @@
     return iAutomaticUpdateChecksAsked;
     }
 
-// ---------------------------------------------------------------------------
-// CIAUpdateFirstTimeInfo::FirstTimeDelayL
-// 
-// ---------------------------------------------------------------------------
-//    
-TBool CIAUpdateFirstTimeInfo::FirstTimeDelayL()
-    {
-    TBool firstTimeDelay = EFalse;
-    if ( !AutomaticUpdateChecksAskedL() )
-	    {
-		CIAUpdateFirstTimeDateFile* firstTimeDateFile = 
-		      CIAUpdateFirstTimeDateFile::NewL( KIAUpdateFirstTimeDateFile );
-    
-        TTime firstTime( firstTimeDateFile->FirstTime() );
-  
-        delete firstTimeDateFile;
-  
-        TTime expireTime( firstTime );
-
-        expireTime += KFirstTimeDelayInDays;
-    
-        TTime universalTime;
-        universalTime.UniversalTime();
-
-        if ( universalTime < expireTime && universalTime >= firstTime )
-            {
-        	firstTimeDelay = ETrue;
-            }
-	    }
-    return firstTimeDelay;	
-    }
 
 // -----------------------------------------------------------------------------
 // CIAUpdateFirstTimeInfo::ReadDataL
@@ -231,7 +156,6 @@
     if ( err == KErrNotFound )
     	{
     	iAgreementAccepted = EFalse;
-	    iAgreementAsked = EFalse;
 	    iAutomaticUpdateChecksAsked = EFalse; 
     	}
     else
@@ -282,7 +206,6 @@
 void CIAUpdateFirstTimeInfo::InternalizeL( RReadStream& aStream )
 	{
 	iAgreementAccepted = aStream.ReadInt32L();
-	iAgreementAsked = aStream.ReadInt32L();
 	iAutomaticUpdateChecksAsked = aStream.ReadInt32L();
 	}
 
@@ -295,7 +218,6 @@
 void CIAUpdateFirstTimeInfo::ExternalizeL( RWriteStream& aStream )
 	{
 	aStream.WriteInt32L( iAgreementAccepted );
-	aStream.WriteInt32L( iAgreementAsked );	
 	aStream.WriteInt32L( iAutomaticUpdateChecksAsked );
 	}
     
--- a/iaupdate/IAD/ui/src/iaupdatemainview.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatemainview.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -17,8 +17,12 @@
 */
 
 #include <hbaction.h>
-#include <QgraphicsWidget>
+#include <QGraphicsWidget>
+#include <QGraphicsLayout>
+#include <QGraphicsLayoutItem>
+#include <QGraphicsLinearLayout>
 
+#include <hbdockwidget.h>
 #include <hblistwidget.h>
 #include <hblistviewitem.h>
 #include <hblistwidgetitem.h>
@@ -27,7 +31,9 @@
 #include <hbdocumentloader.h>
 #include <xqconversions.h>
 #include <hbmessagebox.h>
-#include <hbtextitem.h>
+#include <hblabel.h>
+#include <hbgroupbox.h>
+#include <hbdataform.h>
 
 #include "iaupdatemainview.h"
 #include "iaupdateengine.h"
@@ -48,11 +54,17 @@
 IAUpdateMainView::IAUpdateMainView(IAUpdateEngine *engine):
 mEngine(engine)        
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::IAUpdateMainView() begin");
+    mFwListView = NULL;
+    mApplicationUpdatesGroupBox = NULL;;
+    mFwNSUGroupBox = NULL;
+    mContentDataForm = NULL;
     mDialogUtil = NULL;
     mDialogState = NoDialog;
     mPrimaryAction = NULL;
     mNode = NULL;
     mSelectionUpdate = false;
+    mSelectionConnect = false;
     
     HbDocumentLoader loader;
     bool ok = false;
@@ -62,15 +74,15 @@
     Q_ASSERT_X(ok, "Software update", "Invalid docml file");
     // Create the view from DocML
     
-    HbView* widget = qobject_cast<HbView*>(loader.findWidget("view"));
-    Q_ASSERT_X(widget != 0, "Software update", "View not found");
-    QString viewTitle(widget->title());
+    HbView* loadedWidget = qobject_cast<HbView*>(loader.findWidget("view"));
+    Q_ASSERT_X(loadedWidget != 0, "Software update", "View not found");
+    QString viewTitle(loadedWidget->title());
     // Set the IAUpdateMainView view to be the widget that was loaded from the xml
-    setWidget(widget);
+    setWidget(loadedWidget);
     setTitle(viewTitle);
       
     HbToolBar *toolBar = qobject_cast< HbToolBar*>( loader.findWidget("viewToolbar") );
-    setToolBar(toolBar);
+    //setToolBar(toolBar);
     
     HbMenu *menu = qobject_cast< HbMenu*>( loader.findWidget("viewMenu") );
     setMenu(menu);
@@ -83,21 +95,45 @@
     connect(action, SIGNAL(triggered()), this, SLOT(handleStartUpdate()));
     connect(action_1, SIGNAL(triggered()), this, SLOT(handleSettings()));
     connect(action_2, SIGNAL(triggered()), this, SLOT(handleDisclaimer()));
-
+        
+    mContent = qobject_cast< HbWidget*>( loader.findWidget("content") );
+           
     mListView = qobject_cast<HbListWidget*>( loader.findWidget("listWidget") );
     mListView->setSelectionMode( HbAbstractItemView::MultiSelection );
     
     connect( mListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
             this, SLOT( handleDetails( HbAbstractViewItem *, const QPointF & ) ) ); 
-    
+        
     HbListViewItem *prototype = mListView->listItemPrototype();
 
     prototype->setGraphicsSize(HbListViewItem::LargeIcon);
+    
+    HbDockWidget *dock = new HbDockWidget(this);
+    HbWidget *dockContainer = new HbWidget(dock);
+    QGraphicsLinearLayout *dockLayout = new QGraphicsLinearLayout(dockContainer);
+    dockLayout->setOrientation(Qt::Vertical);
+    dockContainer->setLayout(dockLayout);
+    
+    mSelections = new HbGroupBox(dockContainer);
+    mSelections->setHeading("Selected 0/0 (0 kB)");
+    
+    dockLayout->addItem( mSelections);
+    
+    dockLayout->addItem(toolBar);
+    
+    dock->setWidget(dockContainer);
+    
+    setDockWidget(dock);
 
+
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::IAUpdateMainView() end");
 }
     
 IAUpdateMainView::~IAUpdateMainView()
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::~IAUpdateMainView() begin");
+    
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::~IAUpdateMainView() end");
 }
 
 // -----------------------------------------------------------------------------
@@ -105,236 +141,41 @@
 // Refreshes update list
 // -----------------------------------------------------------------------------
 //    
-void IAUpdateMainView::refresh( const RPointerArray<MIAUpdateNode> &nodes,
-                                const RPointerArray<MIAUpdateFwNode> &fwNodes,
-                                int /*error*/ )
-    {   
-    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh begin");
-       
-    mAllNodes.Reset();
-        
-    if ( fwNodes.Count() > 0 )
-        {
-        IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh hard code importance");
-        //hardcode the importance of firmware as Critical
-        for ( TInt i = 0; i < fwNodes.Count(); i++ )
-             {
-             fwNodes[i]->Base().SetImportance( MIAUpdateBaseNode::ECritical );
-             }
-         
-        //either NSU or FOTA available
-        if ( fwNodes.Count() == 1 )
-            {
-            IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh either NSU or FOTA available");
-            MIAUpdateAnyNode* node = fwNodes[0];
-            mAllNodes.Append( node );
-            }
+void IAUpdateMainView::refresh(const RPointerArray<MIAUpdateNode> &nodes,
+                               const RPointerArray<MIAUpdateFwNode> &fwNodes,
+                               int error)
+{   
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh() begin");
+    removeCurrentContentLayout();
         
-        //both NSU and FOTA available, show only FOTA node
-        if ( fwNodes.Count() == 2 )
-            {
-            IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh both NSU and FOTA available");
-            MIAUpdateAnyNode* node1 = fwNodes[0];
-            MIAUpdateFwNode* fwnode = static_cast<MIAUpdateFwNode*>( node1 );
-            if ( fwnode->FwType() == MIAUpdateFwNode::EFotaDp2  )
-                {
-                mAllNodes.Append( node1 );
-                }
-            else
-                {
-                MIAUpdateAnyNode* node2 = fwNodes[1];
-                mAllNodes.Append( node2 );
-                }
-            }
-        }
+    refreshFirmwareUpdates(fwNodes);
+    
+    refreshApplicationUpdates(nodes);
     
-   
-    for( int i = 0; i < nodes.Count(); ++i ) 
-        {
-        MIAUpdateAnyNode* node = nodes[i];
-        mAllNodes.Append( node );
-        }
-        
-    mListView->clear();
-    QItemSelectionModel *selectionModel = mListView->selectionModel();  
-    selectionModel->clear();
-    HbIcon icon(QString(":/icons/qgn_menu_swupdate"));
-    
-    for( int j = 0; j < mAllNodes.Count(); ++j ) 
+    if (nodes.Count() == 0 && fwNodes.Count() == 0 && 
+        error != KErrCancel && error != KErrAbort)
+    {    
+        if (!mContentDataForm)
         {
-        MIAUpdateAnyNode* node = mAllNodes[j];
-        int sizeInBytes = node->Base().ContentSizeL();
-
-        int size = 0;
-        TBool shownInMegabytes = EFalse;        
-        if ( sizeInBytes >= KMaxShownInKiloBytes )
-            {
-            shownInMegabytes = ETrue;
-            size = sizeInBytes / KMegaByte;
-            if ( sizeInBytes % KMegaByte != 0 )
-                {
-                size++;
-                }
-            }
-        else 
-            {
-            size = sizeInBytes / KKiloByte;
-            if ( sizeInBytes % KKiloByte != 0 )
-                {
-                size++;
-                }  
-            }
-        QString sizeString;
-        sizeString.setNum(size);        
-        QString importanceDescription;
-        switch( node->Base().Importance() )
-            {        
-            case MIAUpdateBaseNode::EMandatory:
-                {
-                importanceDescription = "Required ";
-                importanceDescription.append(sizeString);
-                if ( shownInMegabytes )
-                    {
-                    importanceDescription.append(" MB" );
-                    }
-                else 
-                    {
-                    importanceDescription.append(" kB" );
-                    }  
-                break;
-                }
-            
-            
-            case MIAUpdateBaseNode::ECritical:
-                {
-                bool isNSU = false;
-                if( node->NodeType() == MIAUpdateAnyNode::ENodeTypeFw )
-                    {
-                    MIAUpdateFwNode* fwnode = static_cast<MIAUpdateFwNode*>( node );          
-                    if ( fwnode->FwType() == MIAUpdateFwNode::EFotiNsu )
-                        {
-                        isNSU = true;
-                        }
-                    }
-                
-                importanceDescription = "Important ";
-                if ( !size || isNSU )
-                    {
-                    //for firmware when size info is not provided by server
-                    }
-                else
-                    {
-                    importanceDescription.append(sizeString);
-                    if ( shownInMegabytes )
-                        {
-                        importanceDescription.append(" MB" );
-                        }
-                    else 
-                        {
-                        importanceDescription.append(" kB" );
-                        } 
-                    }
-     
-                break;
-                }
+            mContentDataForm  = new HbDataForm(mContent); 
+        }
+        QGraphicsLinearLayout *linearLayout = (QGraphicsLinearLayout*) mContent->layout();
+        linearLayout->addItem(mContentDataForm);
+        QString formText;
         
-            case MIAUpdateBaseNode::ERecommended:
-                {
-                importanceDescription = "Recommended ";
-                importanceDescription.append(sizeString);
-                if ( shownInMegabytes )
-                    {
-                    importanceDescription.append(" MB" );
-                    }
-                else 
-                    {
-                    importanceDescription.append(" kB" );
-                    }  
-                break;
-                }
-        
-            case MIAUpdateBaseNode::ENormal:
-                {
-                importanceDescription = "Optional ";
-                importanceDescription.append(sizeString);
-                if ( shownInMegabytes )
-                    {
-                     importanceDescription.append(" MB" );
-                    }
-                else 
-                    {
-                    importanceDescription.append(" kB" );
-                    }  
-                break;
-                }
-
-            default:
-                {
-                break;
-                }
-            }
-            
-            //AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr );    
-            
-            HbListWidgetItem *item = new HbListWidgetItem();    
-            QString name = XQConversions::s60DescToQString(node->Base().Name());
-            if ( node->NodeType() == MIAUpdateAnyNode::ENodeTypeFw ) 
-                {
-                name.append(" DEVICE SOFTWARE");
-                }
-            item->setText(name);
-            item->setSecondaryText(importanceDescription);
-            item->setIcon(icon);
-             mListView->addItem(item); 
- 
-            if ( node->Base().IsSelected() )
-                {
-                int count = mListView->count();
-                QModelIndex modelIndex = mListView->model()->index(count-1,0);
-                selectionModel->select(modelIndex, QItemSelectionModel::Select);
-                }
-
-               
-            
-        /*if ( nodes.Count() == 0 )
-            {
-            HBufC* emptyText = NULL;
-            if ( aError )
-                {
-                if ( aError == KErrCancel || aError == KErrAbort )
-                    {
-                    emptyText = KNullDesC().AllocLC();
-                    }
-                else
-                    {
-                    emptyText = StringLoader::LoadLC( R_IAUPDATE_REFRESH_FAILED );  
-                    }
-                }
-            else
-                {
-                emptyText = StringLoader::LoadLC( R_IAUPDATE_TEXT_NO_UPDATES ); 
-                }
-            
-            iListBox->View()->SetListEmptyTextL( *emptyText );
-            CleanupStack::PopAndDestroy( emptyText );
-            iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
-                    CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );  
-            }
+        if (error == KErrNone)
+        {
+            formText = QString("Applications are up to date");
+        }
         else
-            {
-            if ( iListBox->CurrentItemIndex() == KErrNotFound )
-                {
-                iListBox->SetCurrentItemIndex( aNodes.Count() - 1 );
-                }
-            }*/
-            
-        //iListBox->HandleItemAdditionL();
+        {
+            formText = QString("Refreshing failed. Try again later.");
         }
-     connect(selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
-                    this, SLOT(handleSelectionChanged(QItemSelection,QItemSelection)));     
-    
-     IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh end");
-     }
+        mContentDataForm->setDescription(formText);
+    }
+    updateSelectionInfoInDock();  
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refresh() end");
+}
 
 
 
@@ -342,31 +183,21 @@
 void IAUpdateMainView::handleStartUpdate()
 {
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleStartUpdate() begin");
-    bool firmwareUpdate = false; 
-    RPointerArray<MIAUpdateAnyNode> selectedNodes;
-    getSelectedNodes(selectedNodes);
-    if (selectedNodes.Count() > 0)
-        {
-        if ( selectedNodes[0]->NodeType() == MIAUpdateAnyNode::ENodeTypeFw )
-            {
-            //the marking logic will make sure firmware won't be marked with normal sis updates
-            //at the same time.
-            firmwareUpdate = true;
-            }
-        }
-    selectedNodes.Close();
-    //mEngine->StartUpdate(firmwareUpdate);
+    mEngine->StartUpdate(fotaSelected());
     IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleStartUpdate() end");
 }
 
 
 void IAUpdateMainView::handleSettings()
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleSettings() begin");
     emit toSettingView();
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleSettings() end");
 }
 
 void IAUpdateMainView::handleDisclaimer()
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleDisclaimer() begin");
     if (!mDialogUtil)
     {
         mDialogUtil = new IAUpdateDialogUtil(this);
@@ -376,22 +207,38 @@
         HbAction *primaryAction = new HbAction("OK");
         mDialogUtil->showAgreement(primaryAction);
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleDisclaimer() end");
 }
 
-void IAUpdateMainView::handleDetails( HbAbstractViewItem * item, const QPointF & )
+void IAUpdateMainView::handleDetails(HbAbstractViewItem * item, const QPointF &)
 {
- 
-    
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleDetails() begin");
     int ind = item->modelIndex().row();
-    if (getNode(ind) != NULL)
+    if (getApplicationNode(ind) != NULL)
     {    
-        showDetails(*getNode(ind));
+        showDetails(*getApplicationNode(ind));
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleDetails() end");
+}
+
+void IAUpdateMainView::handleFotaDetails(HbAbstractViewItem *, const QPointF &)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleFotaDetails begin");
+    //only one FOTA item in a list, just use it
+    for (int i = 0; i < mFwNodes.Count(); i++)
+    {
+        if (mFwNodes[i]->FwType() == MIAUpdateFwNode::EFotaDp2)
+        {
+            showDetails(*mFwNodes[i]);
+        }
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleFotaDetails end");
 }
 
 
 void IAUpdateMainView::handleSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleSelectionChanged begin");
     if (!mSelectionUpdate)
     {
         bool changedItemFound = false; 
@@ -411,11 +258,38 @@
             }
         }
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleSelectionChanged end");
+}
+
+void IAUpdateMainView::handleFwSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleFwSelectionChanged begin");
+    if (!mSelectionUpdate)
+    {
+        bool changedItemFound = false; 
+        QModelIndexList indexList = selected.indexes();
+        for (int i = 0; !changedItemFound && i < indexList.count(); ++i)
+        {    
+            changedItemFound = true;
+            markFotaItem(true);
+        }
+        if (!changedItemFound)
+        {
+            indexList = deselected.indexes();
+            for (int i = 0; !changedItemFound && i < indexList.count(); ++i)
+            {    
+                changedItemFound = true;
+                markFotaItem(false);
+            }
+        }
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::handleFwSelectionChanged end");
 }
 
 
 void IAUpdateMainView::dialogFinished(HbAction *action)
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::dialogFinished begin");
     DialogState dialogState = mDialogState;
     mDialogState = NoDialog;
     
@@ -427,6 +301,7 @@
                 updateSelectionsToNodeArray(*mNode,mMark);
             }
             updateSelectionsToList();
+            updateSelectionInfoInDock();
             break;
         case CannotOmit:    
             break;
@@ -435,225 +310,264 @@
         default: 
             break;
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::dialogFinished end");
+}
+
+bool IAUpdateMainView::fotaSelected() const
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::fotaSelected() begin");
+    bool selected = false;
+    for (int i = 0; i < mFwNodes.Count() && !selected; ++i)
+    {
+        if ( mFwNodes[i]->FwType() == MIAUpdateFwNode::EFotaDp2 && mFwNodes[i]->Base().IsSelected() )
+        {    
+            selected = true;
+        }
+    }
+    if (selected)
+        {
+        IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::fotaSelected() Fota item is selected");
+        }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::fotaSelected() end");
+    return selected;
 }
 
 
-void IAUpdateMainView::getSelectedNodes(RPointerArray<MIAUpdateAnyNode> &selectedNodes) const
-{
-    for (int i = 0; i < mAllNodes.Count(); ++i)
-    {
-        if (mAllNodes[i]->Base().IsSelected())
-        {
-            selectedNodes.Append(mAllNodes[i]);
-        }
-    }
-}
 
 void IAUpdateMainView::markListItem(bool mark, int index)
 {
+    IAUPDATE_TRACE_2("[IAUPDATE] IAUpdateMainView::markListItem() begin mark: %d index %d", mark, index);
     if (mark)
     {
         //It's Mark Command
-        RPointerArray<MIAUpdateAnyNode> selectedNodes;
-        getSelectedNodes(selectedNodes); 
+        if (fotaSelected())
+        {    
+            //FOTA item is selected, unmark FOTA item
+            //FOTA item and application update items can't be selected at the same time 
+            markFotaItem(false);
+        }    
+    }
+       
+    bool accepted = false;
         
-        //There are selected items already and type are different with the current one
-        if (selectedNodes.Count() > 0 && (mAllNodes[index]->NodeType() != selectedNodes[0]->NodeType()))
-        {       
-            // firmware item and normal sis items can't be selected at the same time
-            // unmark the selected nodes.
-            for (int i = 0; i < selectedNodes.Count(); i++)
-            {                
-                int index = mAllNodes.Find(selectedNodes[i]);
-                mAllNodes[index]->Base().SetSelected(false);
+    if(index > -1)
+    {
+        accepted = true;
+        MIAUpdateNode* node = mNodes[index];
+        RPointerArray<MIAUpdateNode> mands;
+        RPointerArray<MIAUpdateNode> deps;
+           
+        if (mark)
+        {
+            TRAPD(err,IAUpdateDepUtils::GetDependenciesL(*node, mNodes, deps));
+            if (err != KErrNone)
+            {
+                deps.Close();
+                updateSelectionsToList();
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markListItem() return end");
+                return;
+            }
+            if (!getMandatoryNodes(mands))
+                {
+                // error when creating mandatory node list
+                mands.Close();
+                updateSelectionsToList();
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markListItem() return end");
+                return;
+                }
+        }
+        else
+        {
+            //mandatory item is not allowed to be unmarked
+            if (mNodes[index]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
+            {
+                //show dialog  
+                showUpdateCannotOmitDialog();
+                updateSelectionsToList();
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markListItem() return end");
+                return;
+            }
+            TRAPD(err,IAUpdateDepUtils::GetDependantsL(*node, mNodes, deps));  
+            if (err != KErrNone)
+            {
+                deps.Close();
+                updateSelectionsToList();
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markListItem() return end");
+                return;
+            }
+            // item is not allowed to be unmarked if its dependant is mandatory
+            bool mandatoryDependantFound = false;
+            for(int i = 0; i < deps.Count() && !mandatoryDependantFound; i++)
+            {
+                if (deps[i]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
+                {
+                    mandatoryDependantFound = true;
+                }
+            }
+            if (mandatoryDependantFound)
+            {
+                showUpdateCannotOmitDialog();
+                deps.Close();
+                updateSelectionsToList();
+                IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markListItem() return end");
+                return;
             }
         }
-        selectedNodes.Close();
-    }
-    
-    //there is no selected items or the type is the same with the current one
-    
-    if (mAllNodes[index]->NodeType() == MIAUpdateAnyNode::ENodeTypeFw )
-    {
-        mAllNodes[index]->Base().SetSelected(mark);   
-        updateSelectionsToList();
-        return;
-    }
-    
-    if (mAllNodes[index]->NodeType() == MIAUpdateAnyNode::ENodeTypeNormal )
-    {
-        bool accepted = false;
-        
-        if(index > -1)
+             
+        int depCount = deps.Count();
+           
+        if (depCount > 0)
         {
-            accepted = true;
-            
-            MIAUpdateNode* node = static_cast<MIAUpdateNode*>(mAllNodes[index]);
-            RPointerArray<MIAUpdateAnyNode> mands;
-            RPointerArray<MIAUpdateNode> deps;
-           
+            QString text;
+            QString names;
+            MIAUpdateNode* depNode = NULL;
+            QString separator(",");
+                       
+            for(int i = 0; i < depCount; i++)  
+            {
+                depNode = deps[i];
+                if (i > 0)
+                {
+                    names.append(separator);
+                    names.append(QString(" "));
+                }
+                names.append(XQConversions::s60DescToQString(depNode->Base().Name()));
+            }
+
             if (mark)
             {
-                TRAPD(err,IAUpdateDepUtils::GetDependenciesL(*node, mAllNodes, deps));
-                if (err != KErrNone)
+                if (depCount > 1) 
                 {
-                    deps.Close();
-                    updateSelectionsToList();
-                    return;
+                    text.append("This update needs also updates "); 
+                    text.append(names);
+                    text.append(" for working");
+                } 
+                else
+                {
+                    text.append("This update needs also \""); 
+                    text.append(names);
+                    text.append("\" for working");
+                    }
                 }
-                if (!getMandatoryNodes(mands))
+            else
+            {
+                if (depCount > 1) 
+                {
+                    text.append("Updates "); 
+                    text.append(names);
+                    text.append(" need this update for working");
+                } 
+                else
                 {
-                    // error when creating mandatory node list
-                    mands.Close();
-                    updateSelectionsToList();
-                    return;
-                }
+                    text.append("Update \""); 
+                    text.append(names);
+                    text.append("\" needs this update for working");
+                }   
+            }
+                
+            if (mark && mNodes[index]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
+            {
+                // depencencies of mandatory update are also selected without showing dialog
+                accepted = true;
             }
             else
             {
-                //mandatory item is not allowed to be unmarked
-                if (mAllNodes[index]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
-                {
-                    //show dialog  
-                    showUpdateCannotOmitDialog();
-                    updateSelectionsToList();
-                    return;
-                }
-                
-                //CleanupClosePushL( deps );
-                TRAPD(err,IAUpdateDepUtils::GetDependantsL(*node, mAllNodes, deps));  
-                if (err != KErrNone)
-                {
-                    deps.Close();
-                    updateSelectionsToList();
-                    return;
-                }
-                // item is not allowed to be unmarked if its dependant is mandatory
-                bool mandatoryDependantFound = false;
-                for(int i = 0; i < deps.Count() && !mandatoryDependantFound; i++)
-                {
-                    if (deps[i]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
-                    {
-                        mandatoryDependantFound = true;
-                    }
-                }
-                if (mandatoryDependantFound)
-                {
-                    showUpdateCannotOmitDialog();
-                    deps.Close();
-                    updateSelectionsToList();
-                    return;
-                }
-            }
-             
-            int depCount = deps.Count();
-           
-            if (depCount > 0)
-            {
-                QString text;
-                QString names;
-                MIAUpdateNode* depNode = NULL;
-                QString separator(",");
-                       
-                for(int i = 0; i < depCount; i++)  
-                {
-                    depNode = deps[i];
-                    if (i > 0)
-                    {
-                        names.append(separator);
-                        names.append(QString(" "));
-                    }
-                    names.append(XQConversions::s60DescToQString(depNode->Base().Name()));
-                }
-                
-
-                if (mark)
-                {
-                    if (depCount > 1) 
-                    {
-                        text.append("This update needs also updates "); 
-                        text.append(names);
-                        text.append(" for working");
-                        //resourceId = R_IAUPDATE_DEPENDENCY_MARK_MANY;
-                    } 
-                    else
-                    {
-                        text.append("This update needs also \""); 
-                        text.append(names);
-                        text.append("\" for working");
-                        //resourceId = R_IAUPDATE_DEPENDENCY_MARK_ONE;    
-                    }
-                }
-                else
-                {
-                    if (depCount > 1) 
-                    {
-                        text.append("Updates "); 
-                        text.append(names);
-                        text.append(" need this update for working");
-                        //resourceId = R_IAUPDATE_DEPENDENCY_UNMARK_MANY;
-                    } 
-                    else
-                    {
-                        text.append("Update \""); 
-                        text.append(names);
-                        text.append("\" needs this update for working");
-                        //resourceId = R_IAUPDATE_DEPENDENCY_UNMARK_ONE;  
-                    }   
-                }
-                
-                if (mark && mAllNodes[index]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
-                {
-                    // depencencies of mandatory update are also selected without showing dialog
-                    accepted = true;
-                }
-                else
-                {
-                    mNode = node;
-                    mMark = mark;
-                    showDependenciesFoundDialog(text);
-                    return;
-                }
-            }
-            if (accepted)
-            {    
-                updateSelectionsToNodeArray(*node, mark);   
+                mNode = node;
+                mMark = mark;
+                accepted = false;
+                showDependenciesFoundDialog(text);
             }
         }
-        
+        if (accepted)
+        {    
+            updateSelectionsToNodeArray(*node, mark);   
+        }
     }
-    updateSelectionsToList();
+    if (accepted)
+    {    
+        updateSelectionsToList();
+        updateSelectionInfoInDock();
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markListItem() end");
 }       
-    
+
+
+void IAUpdateMainView::markFotaItem(bool mark)
+{
+    IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateMainView::markFotaItem() begin mark: %d", mark);
+    if (mark)
+    {
+        //It's Mark Command
+                
+        //if some of application update item(s) are selected, unmark them
+        //FOTA item and application update items can't be selected at the same time 
+        bool deselected = false;
+        for (int i = 0; i < mNodes.Count(); ++i)
+        {
+            if (mNodes[i]->Base().IsSelected())
+            {
+                mNodes[i]->Base().SetSelected(false);
+            }
+        } 
+        if (deselected)
+        {    
+            // umnmarked items to be updated also to UI
+            updateSelectionsToList();
+        }    
+    }
+    for (int j = 0; j < mFwNodes.Count(); ++j)
+    {    
+        if (mFwNodes[j]->FwType() == MIAUpdateFwNode::EFotaDp2)
+        {
+            mFwNodes[j]->Base().SetSelected(mark);
+            if (mark)
+            {
+                mFwListView->selectionModel()->select(mFwListView->model()->index(0,0),QItemSelectionModel::Select);
+            }
+            else
+            {
+                mFwListView->selectionModel()->select(mFwListView->model()->index(0,0),QItemSelectionModel::Deselect);
+            }
+        }
+    }
+    updateSelectionInfoInDock();
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::markFotaItem() end");
+}
+
+
+
+
+
 void IAUpdateMainView::updateSelectionsToNodeArray(MIAUpdateNode &node, bool mark)   
-{    
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::updateSelectionsToNodeArray() begin");
     RPointerArray<MIAUpdateNode> deps;  
     TInt err = KErrNone;
     if (mark)
     {
-        TRAP(err,IAUpdateDepUtils::GetDependenciesL(node, mAllNodes, deps));
+        TRAP(err,IAUpdateDepUtils::GetDependenciesL(node, mNodes, deps));
     }
     else
     {
-        TRAP(err,IAUpdateDepUtils::GetDependantsL(node, mAllNodes, deps)); 
+        TRAP(err,IAUpdateDepUtils::GetDependantsL(node, mNodes, deps)); 
     }
     if (err  == KErrNone )
     {    
         int depCount = deps.Count(); 
         for(int i = 0; i < depCount; i++)
         {
-            int depNodeInd = mAllNodes.Find(deps[i]);
-            mAllNodes[depNodeInd]->Base().SetSelected(mark);
+            int depNodeInd = mNodes.Find(deps[i]);
+            mNodes[depNodeInd]->Base().SetSelected(mark);
         }
         deps.Close();
-        int nodeInd = mAllNodes.Find(&node);
-        mAllNodes[nodeInd]->Base().SetSelected(mark);
+        int nodeInd = mNodes.Find(&node);
+        mNodes[nodeInd]->Base().SetSelected(mark);
     }                
     
     //mark all of the mandatory items
     if ( mark )
     {    
-        RPointerArray<MIAUpdateAnyNode> mands;    
+        RPointerArray<MIAUpdateNode> mands;    
         if (getMandatoryNodes(mands))
         {
             int mandCount = mands.Count();
@@ -661,14 +575,14 @@
             {
                 for(int i = 0; i < mandCount; i++)
                 {
-                    int mandNodeInd = mAllNodes.Find(mands[i]);
-                    mAllNodes[mandNodeInd]->Base().SetSelected(mark);
-                    if (mAllNodes[mandNodeInd]->NodeType() == MIAUpdateAnyNode::ENodeTypeNormal)
+                    int mandNodeInd = mNodes.Find(mands[i]);
+                    mNodes[mandNodeInd]->Base().SetSelected(mark);
+                    if (mNodes[mandNodeInd]->NodeType() == MIAUpdateAnyNode::ENodeTypeNormal)
                     {
                         // mark also all dependencies of a mandatory item
-                        MIAUpdateNode* dependencyNode = static_cast<MIAUpdateNode*>(mAllNodes[mandNodeInd]);
+                        MIAUpdateNode* dependencyNode = mNodes[mandNodeInd];
                         RPointerArray<MIAUpdateNode> dependencies;
-                        TRAPD(err,IAUpdateDepUtils::GetDependenciesL(*dependencyNode, mAllNodes, dependencies));
+                        TRAPD(err,IAUpdateDepUtils::GetDependenciesL(*dependencyNode, mNodes, dependencies));
                         if (err)
                         {
                             dependencies.Close(); 
@@ -677,8 +591,8 @@
                         }
                         for(int j = 0; j < dependencies.Count(); j++)
                         {
-                            int depNodeInd = mAllNodes.Find(dependencies[j]);
-                            mAllNodes[depNodeInd]->Base().SetSelected(true);
+                            int depNodeInd = mNodes.Find(dependencies[j]);
+                            mNodes[depNodeInd]->Base().SetSelected(true);
                         }
                         dependencies.Close();
                     }
@@ -686,28 +600,32 @@
             }
         }
         mands.Close();
-    }  
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::updateSelectionsToNodeArray() end");
 }
 
 
-bool IAUpdateMainView::getMandatoryNodes(RPointerArray<MIAUpdateAnyNode> &mandNodes) const
+bool IAUpdateMainView::getMandatoryNodes(RPointerArray<MIAUpdateNode> &mandNodes) const
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::getMandatoryNodes() begin");
     bool ret = true;
-    for(int i = 0; i < mAllNodes.Count(); ++i)
+    for(int i = 0; i < mNodes.Count(); ++i)
     {
-        if (mAllNodes[i]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
+        if (mNodes[i]->Base().Importance() == MIAUpdateBaseNode::EMandatory)
         {
-            if (mandNodes.Append(mAllNodes[i]) != KErrNone)
+            if (mandNodes.Append(mNodes[i]) != KErrNone)
             {
                 ret = false; 
             }
         }
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::getMandatoryNodes() end");
     return ret;
 }
 
 void IAUpdateMainView::showUpdateCannotOmitDialog()
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::showUpdateCannotOmitDialog() begin");
     HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
     messageBox->setText(QString("This required update cannot be omitted"));
     int actionCount = messageBox->actions().count();
@@ -722,11 +640,18 @@
     messageBox->setAttribute(Qt::WA_DeleteOnClose);
     mDialogState = CannotOmit;
     messageBox->open(this, SLOT(dialogFinished(HbAction*)));
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::showUpdateCannotOmitDialog() end");
 }
 
 void IAUpdateMainView::showDependenciesFoundDialog(QString &text)
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::showDependenciesFoundDialog() begin");
     HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+    HbLabel *label = new HbLabel(messageBox);
+    label->setHtml(QString("Depencencies"));
+    messageBox->setHeadingWidget(label);
+    //messageBox->setIconVisible(false);
+        
     messageBox->setText(text);
     int actionCount = messageBox->actions().count();
     for (int i=actionCount-1; i >= 0; i--)
@@ -743,17 +668,19 @@
     messageBox->setAttribute(Qt::WA_DeleteOnClose);
     mDialogState = Dependencies;
     messageBox->open(this, SLOT(dialogFinished(HbAction*)));
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::showDependenciesFoundDialog() end");
 }
 
 void IAUpdateMainView::updateSelectionsToList()
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::updateSelectionsToList() begin");
     mSelectionUpdate = true;
-    for(int i = 0; i < mAllNodes.Count(); ++i)
+    for(int i = 0; i < mNodes.Count(); ++i)
     {
-        if ( mAllNodes[i]->Base().IsSelected() != mListView->selectionModel()->isSelected(mListView->model()->index(i,0)))
+        if ( mNodes[i]->Base().IsSelected() != mListView->selectionModel()->isSelected(mListView->model()->index(i,0)))
         {    
             QItemSelectionModel::SelectionFlag selectionFlag;
-            if ( mAllNodes[i]->Base().IsSelected())
+            if ( mNodes[i]->Base().IsSelected())
             {
                 selectionFlag = QItemSelectionModel::Select;
             }
@@ -765,47 +692,47 @@
         }
     }
     mSelectionUpdate = false;
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::updateSelectionsToList() end");
 }
 
 
-MIAUpdateAnyNode* IAUpdateMainView::getNode(int index) const
+MIAUpdateNode* IAUpdateMainView::getApplicationNode(int index) const
 {
-    MIAUpdateAnyNode *currentNode = NULL;
+    IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateMainView::getApplicationNode() begin index: %d", index);
+    MIAUpdateNode *currentNode = NULL;
      
-    if (index >= 0 && index < mAllNodes.Count())
+    if (index >= 0 && index < mNodes.Count())
     {
-        currentNode = mAllNodes[index];
+        currentNode = mNodes[index];
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::getApplicationNode() end");
     return currentNode;
 }
                 
 void IAUpdateMainView::showDetails(MIAUpdateAnyNode& node)
 {  
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::showDetails() begin");
     HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    HbLabel *label = new HbLabel(messageBox);
+    label->setHtml(QString("Details"));
+    messageBox->setHeadingWidget(label);
+       
     messageBox->setIconVisible(false);
             
     QString text;
     constructDetailsText(node,text); 
     messageBox->setText(text);
-    int actionCount = messageBox->actions().count();
-    
-    for (int i=actionCount-1; i >= 0; i--)
-    { 
-        messageBox->removeAction(messageBox->actions().at(i));
-    }
-    HbAction *okAction = NULL;
-    okAction = new HbAction("Ok");
-    messageBox->addAction(okAction);
     messageBox->setTimeout(HbPopup::NoTimeout);
     messageBox->setAttribute(Qt::WA_DeleteOnClose);
     mDialogState = Details;
-    messageBox->open(this, SLOT(dialogFinished(HbAction*)));                
+    messageBox->open(this, SLOT(dialogFinished(HbAction*)));    
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::showDetails() end");
 }                
         
 
 void IAUpdateMainView::constructDetailsText(MIAUpdateAnyNode &node, QString &text)
 {
-    
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::constructDetailsText() begin");
     text.append(QString("Name:"));
     text.append(QString("<br />"));
     QString name = XQConversions::s60DescToQString(node.Base().Name());
@@ -868,10 +795,12 @@
         fileSizeText(contentSize, textFileSize);
         text.append(textFileSize);
     }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::constructDetailsText() end");
 }
 
 void IAUpdateMainView::versionText(const TIAUpdateVersion &version, QString &versionText)
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::versionText() begin");
     QString stringMajor;
     stringMajor.setNum(version.iMajor);
     versionText.append(stringMajor);
@@ -884,10 +813,12 @@
     stringBuild.setNum(version.iBuild);
     versionText.append(stringBuild);
     versionText.append(QString(")"));
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::versionText() end");
 }
 
 void IAUpdateMainView::fileSizeText(int fileSize, QString &text)
 {
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::fileSizeText() begin");
     int size = 0;
     QString stringUnit;
     
@@ -911,4 +842,343 @@
         }
     text.setNum(size);
     text.append(stringUnit); 
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::fileSizeText() end");
 }
+
+void IAUpdateMainView::setImportance(MIAUpdateAnyNode *node, QString &importanceDescription)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::setImportance() begin");
+    int sizeInBytes = node->Base().ContentSizeL();
+    int size = 0;
+    bool shownInMegabytes = false;        
+    if (sizeInBytes >= KMaxShownInKiloBytes)
+    {
+        shownInMegabytes = true;
+        size = sizeInBytes / KMegaByte;
+        if (sizeInBytes % KMegaByte != 0)
+        {
+           size++;
+        }
+    }
+    else 
+    {
+        size = sizeInBytes / KKiloByte;
+        if (sizeInBytes % KKiloByte != 0)
+        {
+            size++;
+        }  
+    }
+    QString sizeString;
+    sizeString.setNum(size);     
+    switch(node->Base().Importance())
+    {        
+        case MIAUpdateBaseNode::EMandatory:
+        {
+            importanceDescription = "Required ";
+            importanceDescription.append(sizeString);
+            if (shownInMegabytes)
+            {
+                importanceDescription.append(" MB" );
+            }
+            else 
+            {
+                importanceDescription.append(" kB" );
+            }  
+            break;
+        }
+                
+        case MIAUpdateBaseNode::ECritical:
+        {
+            bool isNSU = false;
+            if(node->NodeType() == MIAUpdateAnyNode::ENodeTypeFw)
+            {
+                MIAUpdateFwNode *fwnode = static_cast<MIAUpdateFwNode*>(node);          
+                if (fwnode->FwType() == MIAUpdateFwNode::EFotiNsu)
+                {
+                   isNSU = true;
+                }
+            }
+            importanceDescription = "Important ";
+            if (!size || isNSU)
+            {
+                //for firmware when size info is not provided by server
+            }
+            else
+            {
+                importanceDescription.append(sizeString);
+                if (shownInMegabytes)
+                {
+                    importanceDescription.append(" MB" );
+                }
+                else 
+                {
+                    importanceDescription.append(" kB" );
+                } 
+            }
+            break;
+        }
+            
+        case MIAUpdateBaseNode::ERecommended:
+        {
+            importanceDescription = "Recommended ";
+            importanceDescription.append(sizeString);
+            if (shownInMegabytes)
+            {
+                importanceDescription.append(" MB" );
+            }
+            else 
+            {
+                importanceDescription.append(" kB" );
+            }  
+            break;
+        }
+            
+        case MIAUpdateBaseNode::ENormal:
+        {
+            importanceDescription = "Optional ";
+            importanceDescription.append(sizeString);
+            if (shownInMegabytes)
+            {
+                importanceDescription.append(" MB" );
+            }
+            else 
+            {
+                importanceDescription.append(" kB" );
+            }  
+            break;
+        }
+
+        default:
+        {
+            break;
+        }
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::setImportance() end");
+}    
+
+void IAUpdateMainView::removeCurrentContentLayout()
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::removeCurrentContentLayout() begin");
+    int itemCount = mContent->layout()->count();
+    for (int i = 0; i < itemCount; i++)    
+    {
+        mContent->layout()->removeAt(i);
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::removeCurrentContentLayout() end");    
+}
+
+void IAUpdateMainView::refreshFirmwareUpdates(const RPointerArray<MIAUpdateFwNode> &fwNodes)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshFirmwareUpdates() begin");
+    mFwNodes.Reset();
+            
+    for (int i = 0; i < fwNodes.Count(); i++)
+    {
+        MIAUpdateFwNode *fwnode = (fwNodes[i]);
+        mFwNodes.Append(fwnode);
+        fwnode->Base().SetImportance(MIAUpdateBaseNode::ECritical);
+        if (fwnode->FwType() == MIAUpdateFwNode::EFotaDp2)
+        {
+            refreshFotaUpdate(*fwnode );
+        }
+        else if (fwNodes.Count() == 1 && fwnode->FwType() == MIAUpdateFwNode::EFotiNsu)
+        {
+            refreshNsuUpdate();
+        }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshFirmwareUpdates() end");    
+    }    
+}
+
+void IAUpdateMainView::refreshFotaUpdate(MIAUpdateFwNode& fwNode)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshFotaUpdate() begin");
+    if (!mFwListView)
+    {
+        mFwListView  = new HbListWidget(mContent);
+        mFwListView->setSelectionMode( HbAbstractItemView::MultiSelection );
+        connect( mFwListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
+        this, SLOT( handleFotaDetails( HbAbstractViewItem *, const QPointF & ) ) ); 
+        mFwListView->listItemPrototype()->setGraphicsSize(HbListViewItem::LargeIcon);   
+        mFwListView->listItemPrototype()->setStretchingStyle(HbListViewItem::NoStretching);
+        connect(mFwListView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+        this, SLOT(handleFwSelectionChanged(QItemSelection,QItemSelection)));     
+    }
+    QGraphicsLinearLayout *linearLayout = (QGraphicsLinearLayout*) mContent->layout();
+    linearLayout->addItem(mFwListView);
+    mFwListView->clear();
+    QItemSelectionModel *selectionModel = mFwListView->selectionModel();  
+    selectionModel->clear();
+    HbListWidgetItem *fwItem = new HbListWidgetItem();
+    QString name(XQConversions::s60DescToQString(fwNode.Base().Name()));
+    name.append(" DEVICE SOFTWARE");
+    fwItem->setText(name);
+    QString importanceDescription;
+    setImportance(&fwNode, importanceDescription);
+    fwItem->setSecondaryText(importanceDescription);
+    HbIcon icon(QString(":/icons/qgn_menu_swupdate"));
+    fwItem->setIcon(icon);
+    if (fwNode.Base().IsSelected())
+    {
+        QModelIndex modelIndex = mFwListView->model()->index(0,0);
+        selectionModel->select(modelIndex, QItemSelectionModel::Select);
+    }
+    mFwListView->addItem(fwItem); 
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshFotaUpdate() end");
+}
+
+void IAUpdateMainView::refreshNsuUpdate()
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshNsuUpdate() begin");
+    if (!mFwNSUGroupBox)
+    {
+        mFwNSUGroupBox = new HbGroupBox(mContent);
+        mFwNSUGroupBox->setHeading("Device software available");
+        HbDataForm *dataForm  = new HbDataForm(mFwNSUGroupBox); 
+        mFwNSUGroupBox->setContentWidget(dataForm);
+        dataForm->setDescription("Use your PC to update the device software ([version %L]) from address www.nokia.com/softwareupdate");
+    }
+    QGraphicsLinearLayout *linearLayout = (QGraphicsLinearLayout*) mContent->layout();
+    linearLayout->addItem(mFwNSUGroupBox);
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshNsuUpdate() end");
+}
+
+void IAUpdateMainView::refreshApplicationUpdates(const RPointerArray<MIAUpdateNode> &nodes)
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshApplicationUpdates() begin");
+    if (nodes.Count() > 0)
+    {
+        if (!mApplicationUpdatesGroupBox)
+        {
+            mApplicationUpdatesGroupBox = new HbGroupBox(mContent);
+            mApplicationUpdatesGroupBox->setHeading("Application updates");
+        }
+        QGraphicsLinearLayout *linearLayout = (QGraphicsLinearLayout*) mContent->layout();
+        linearLayout->addItem(mApplicationUpdatesGroupBox);
+        linearLayout->addItem(mListView);
+    }
+    mListView->clear();
+    QItemSelectionModel *selectionModel = mListView->selectionModel();  
+    selectionModel->clear();
+    HbIcon icon(QString(":/icons/qgn_menu_swupdate"));
+    mNodes.Reset();
+    for(int i = 0; i < nodes.Count(); ++i) 
+    {
+        MIAUpdateNode *node = nodes[i];
+        mNodes.Append(node);
+        QString importanceDescription;
+        MIAUpdateNode::TUIUpdateState uiState = node->UiState();
+        if (uiState == MIAUpdateNode::ENormal)
+        {
+            setImportance(node, importanceDescription);
+        }
+        else if (uiState == MIAUpdateNode::EUpdated)
+        {
+            importanceDescription = "Updated";
+        }
+        else if (uiState == MIAUpdateNode::EFailed)
+        {
+            importanceDescription = "Failed";
+        }
+        else if (uiState == MIAUpdateNode::EDownloaded)
+        {
+            importanceDescription = "Downloaded";
+        }
+        HbListWidgetItem *item = new HbListWidgetItem();    
+        QString name;
+        if (uiState == MIAUpdateNode::EDownloading)
+        {
+            name = QString("Downloading ");
+        }
+        else if (uiState == MIAUpdateNode::EInstalling)
+        {
+            name = QString("Installing ");
+        }
+        name.append(XQConversions::s60DescToQString(node->Base().Name()));
+        item->setText(name);
+        item->setSecondaryText(importanceDescription);
+        item->setIcon(icon);
+        mListView->addItem(item); 
+         
+        if (node->Base().IsSelected())
+        {
+            int count = mListView->count();
+            QModelIndex modelIndex = mListView->model()->index(count-1,0);
+            selectionModel->select(modelIndex, QItemSelectionModel::Select);
+        }
+    }
+    if (!mSelectionConnect)
+    {    
+        mSelectionConnect = connect(selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+                        this, SLOT(handleSelectionChanged(QItemSelection,QItemSelection)));     
+    }
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::refreshApplicationUpdates() end");
+}
+
+void IAUpdateMainView::updateSelectionInfoInDock()
+{
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::updateSelectionInfoInDock() begin");
+    int countOfSelectedItems = 0;
+    int countOfAllItems = 0;
+    int selectedSizeInBytes = 0;
+    for (int i = 0; i < mFwNodes.Count(); ++i)
+    {
+        if (mFwNodes[i]->FwType() == MIAUpdateFwNode::EFotaDp2)
+        {
+            countOfAllItems++;
+            if (mFwNodes[i]->Base().IsSelected())
+            {
+                countOfSelectedItems++;
+                selectedSizeInBytes += mFwNodes[i]->Base().ContentSizeL();
+            }
+        }
+    } 
+    countOfAllItems += mNodes.Count();
+    for (int j = 0; j < mNodes.Count(); ++j)
+    {    
+        if (mNodes[j]->Base().IsSelected())
+        {
+            countOfSelectedItems++;
+            selectedSizeInBytes += mNodes[j]->Base().ContentSizeL();
+        }
+    }    
+    
+    int selectedSize = 0;
+    QString unit;
+    if (selectedSizeInBytes >= KMaxShownInKiloBytes)
+    {
+        unit = "MB";
+        selectedSize = selectedSizeInBytes / KMegaByte;
+        if (selectedSizeInBytes % KMegaByte != 0)
+        {
+            selectedSize++;
+        }
+    }
+    else 
+    {
+        unit = "kB";
+        selectedSize = selectedSizeInBytes / KKiloByte;
+        if (selectedSizeInBytes % KKiloByte != 0)
+        {
+            selectedSize++;
+        }
+    }
+    QString selectionString; 
+    selectionString.append("Selected ");
+    QString numText;
+    numText.setNum(countOfSelectedItems);
+    selectionString.append(numText);
+    selectionString.append("/");
+    numText.setNum(countOfAllItems);
+    selectionString.append(numText);
+    if (selectedSize > 0)
+    {
+        selectionString.append(" (");
+        numText.setNum(selectedSize);
+        selectionString.append(numText);
+        selectionString.append(" ");
+        selectionString.append(unit);
+        selectionString.append(")");
+    }
+    mSelections->setHeading(selectionString);
+    IAUPDATE_TRACE("[IAUPDATE] IAUpdateMainView::updateSelectionInfoInDock() end");
+}
--- a/iaupdate/IAD/ui/src/iaupdatenodefilter.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatenodefilter.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -72,6 +72,7 @@
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::~CIAUpdateNodeFilter() begin");
 
     delete iFilterParams;
+    iStoredNodes.Reset();
 
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::~CIAUpdateNodeFilter() end");
     }
@@ -212,7 +213,14 @@
                     {
                     for ( TInt i = 0; i < aFwNodes.Count(); ++i )   
                         {
-                        aFwNodes[i]->Base().SetSelected( ETrue );
+                        if ( aFwNodes[i]->FwType() == MIAUpdateFwNode::EFotiNsu )
+                            {
+                            aFwNodes[i]->Base().SetSelected( EFalse ); 
+                            }
+                        else
+                            {
+                            aFwNodes[i]->Base().SetSelected( ETrue );
+                            }
                         }
                     for ( TInt i = 0; i < aNodes.Count(); ++i )   
                         {
@@ -231,7 +239,14 @@
                 {
                 for ( TInt i = 0; i < aFwNodes.Count(); ++i )   
                     {
-                    aFwNodes[i]->Base().SetSelected( ETrue );
+                    if ( aFwNodes[i]->FwType() == MIAUpdateFwNode::EFotiNsu )
+                        {
+                        aFwNodes[i]->Base().SetSelected( EFalse ); 
+                        }
+                    else
+                        {
+                        aFwNodes[i]->Base().SetSelected( ETrue );
+                        }
                     }
                 for ( TInt i = 0; i < aNodes.Count(); ++i )   
                     {
@@ -400,16 +415,9 @@
     RPointerArray<MIAUpdateNode> deps;
     CleanupClosePushL( deps );
     
-    RPointerArray<MIAUpdateAnyNode> allNodes;
-    CleanupClosePushL( allNodes );
-    for( TInt i = 0; i < aAllNodes.Count(); ++i ) 
-        {
-        MIAUpdateAnyNode* node = aAllNodes[i];
-        User::LeaveIfError( allNodes.Append( node ) );
-        }
-    
-    IAUpdateDepUtils::GetDependenciesL( aNode, allNodes, deps );    
-    CleanupStack::PopAndDestroy( &allNodes );
+        
+    IAUpdateDepUtils::GetDependenciesL( aNode, aAllNodes, deps );    
+
     TInt depCount = deps.Count();
     for( TInt i = 0; i < depCount; i++ )
         {
@@ -421,7 +429,80 @@
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() end");
     }
 
+// -----------------------------------------------------------------------------
+// CIAUpdateNodeFilter::StoreNodeListL
+// 
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateNodeFilter::StoreNodeListL( const RPointerArray< MIAUpdateNode >& aNodes )
+    {
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::StoreNodeListL() begin");
+    iStoredNodes.Reset();
+    for( TInt i = 0; i < aNodes.Count(); ++i )
+        {
+        iStoredNodes.AppendL( aNodes[i] ); 
+        }
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::StoreNodeListL() end");
+    }
 
+// -----------------------------------------------------------------------------
+// CIAUpdateNodeFilter::RestoreNodeListL
+// 
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateNodeFilter::RestoreNodeListL( RPointerArray< MIAUpdateNode >& aNodes) const
+    {
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::RestoreNodeListL() begin");   
+    aNodes.Reset();
+    for( TInt i = 0; i < iStoredNodes.Count(); ++i )
+        {
+        aNodes.AppendL( iStoredNodes[i] ); 
+        }
+    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::RestoreNodeListL() end");   
+    }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateNodeFilter::SortSelectedNodesFirstL
+// 
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateNodeFilter::SortSelectedNodesFirstL( 
+                          const RPointerArray<MIAUpdateNode>& aSelectedNodes, 
+                          RPointerArray< MIAUpdateNode >& aNodes )
+    {
+    for ( TInt i = aNodes.Count() - 1 ; i >= 0 ; --i )
+        {
+        MIAUpdateNode* node( aNodes[ i ] );
+        if ( node->Base().IsSelected() )
+            {
+            aNodes.Remove( i );        
+            }
+        }
+    for ( TInt j = aSelectedNodes.Count() -1 ; j >= 0 ; --j )
+        {
+        aNodes.InsertL( aSelectedNodes[j], 0 ); 
+        }
+    }
+ 
+// -----------------------------------------------------------------------------
+// CIAUpdateNodeFilter::SortThisNodeFirstL
+// 
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateNodeFilter::SortThisNodeFirstL( const MIAUpdateNode* aFirstNode, 
+                                              RPointerArray< MIAUpdateNode >& aNodes)
+    {
+    TBool removed = EFalse; 
+    for ( TInt i = aNodes.Count() - 1 ; i >= 0 && !removed ; --i )
+        {
+        if ( aNodes[ i ] == aFirstNode )
+            {
+            aNodes.Remove( i );      
+            removed = ETrue;
+            }
+        }
+    aNodes.InsertL( aFirstNode, 0 );
+    }
 
 
 // -----------------------------------------------------------------------------
--- a/iaupdate/IAD/ui/src/iaupdateresultsdialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateresultsdialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -19,9 +19,8 @@
 
 // INCLUDE FILES
 
-#include <hbaction.h>
-#include <hbdialog.h>
-#include <hbtextitem.h>
+#include <hbmessagebox.h>
+#include <hblabel.h>
 
 #include "iaupdateresultsdialog.h"
 #include "iaupdateresultsinfo.h"
@@ -38,20 +37,22 @@
 {
 }
 
-void IAUpdateResultsDialog::showResults(const TIAUpdateResultsInfo &param, QObject* receiver, const char* member )
+void IAUpdateResultsDialog::showResults(const TIAUpdateResultsInfo &param, QObject *receiver, const char *member)
 {
+    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    
+    HbLabel *label = new HbLabel(messageBox);
+    label->setHtml(QString("Update results"));
+    messageBox->setHeadingWidget(label);
+    
+    messageBox->setIconVisible(false);
+            
     QString buf;
     constructText(param,buf);
-    HbDialog *dialog = new HbDialog;
-    HbTextItem *text = new HbTextItem(dialog);
-    text->setFontSpec(HbFontSpec(HbFontSpec::Primary));
-    text->setText(buf);
-    dialog->setContentWidget(text);
-    HbAction *primaryAction = new HbAction("Ok");    
-    dialog->addAction(primaryAction);
-    dialog->setTimeout(HbPopup::NoTimeout);
-    dialog->setAttribute(Qt::WA_DeleteOnClose);
-    dialog->open(receiver, member);
+    messageBox->setText(buf);
+    messageBox->setTimeout(HbPopup::NoTimeout);
+    messageBox->setAttribute(Qt::WA_DeleteOnClose);
+    messageBox->open(receiver, member);
     return;  
 }
 
@@ -69,7 +70,7 @@
         stringCount.setNum(param.iCountSuccessfull);    
         buf.append(stringCount);
         buf.append(" updates successful");
-        buf.append("\n");
+        buf.append("<br />");
         return;
     } 
   
@@ -86,7 +87,7 @@
         {
             buf.append(" applications updated"); 
         }
-        buf.append("\n");
+        buf.append("<br />");
     }
     
     if (param.iCountCancelled != 0)
@@ -102,7 +103,7 @@
         {
             buf.append(" updates cancelled");
         }
-        buf.append("\n");
+        buf.append("<br />");
     }
 
     if (param.iCountFailed != 0)
@@ -118,13 +119,13 @@
         {
             buf.append(" updates failed");
         }
-        buf.append("\n");
+        buf.append("<br />");
     }
     
     if (param.iFileInUseError)
     {
     	buf.append("Close all applications and try again.");
-    	buf.append("\n");
+    	buf.append("<br />");
     }
 } 
 
--- a/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -26,8 +26,13 @@
 
 #include "iaupdatesettingdialog.h"
 #include "iaupdateprivatecrkeys.h"
+#include "iaupdate.hrh"
 
 
+const TInt KAutoUpdateOn( 0 );
+const TInt KAutoUpdateOff( 1 );
+const TInt KAutoUpdateOnInHomeNetwork( 2 );
+
 /*
 Constructor. It creates a formwidget on the view. 
 */
@@ -190,7 +195,24 @@
     
     // Set auto update check
     value = mAutoUpdateItem->contentWidgetData(QString("currentIndex")).toInt();
+    
+    // Convert ist index index to setting value
+    switch ( value )
+         {
+         case KAutoUpdateOn:
+             value = EIAUpdateSettingValueDisableWhenRoaming;
+             break;
+         case KAutoUpdateOff:
+             value = EIAUpdateSettingValueDisable;
+             break;
+         case KAutoUpdateOnInHomeNetwork:
+             value = EIAUpdateSettingValueEnable;
+             break;
+         default: 
+             break;
+         }
     err = cenrep->Set( KIAUpdateAutoUpdateCheck, value ); 
+    
     User::LeaveIfError( err );
     
     TUint32 ignore = KErrNone;
@@ -238,6 +260,23 @@
     // set auto update value
     int value = 0;
     User::LeaveIfError( cenrep->Get( KIAUpdateAutoUpdateCheck, value ) );
+    
+    // map cenrep value to index
+    switch ( value )
+         {
+         case EIAUpdateSettingValueEnable:
+             value = KAutoUpdateOn; // On 
+             break;
+         case EIAUpdateSettingValueDisable:
+             value = KAutoUpdateOff; // Off
+             break;
+         case EIAUpdateSettingValueDisableWhenRoaming:
+             value = KAutoUpdateOnInHomeNetwork; // On in home network
+             break;
+         default: 
+             break;
+         }
+    
     mAutoUpdateItem->setContentWidgetData("currentIndex", value);
     
    
--- a/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -482,7 +482,12 @@
         // controller can handle situations as a whole and not as one item at the
         // time.
         iController->StartingUpdatesL();
-            
+        
+        //Store current node list before update
+        iFilter->StoreNodeListL( iNodes );
+        
+        iFilter->SortSelectedNodesFirstL( iSelectedNodesArray, iNodes );
+                    
         iFileInUseError = EFalse;
         // Set the node index to -1 because ContinueUpdateL increases it by one
         // in the beginning of the function. So, we can use the ContinueUpdateL
@@ -546,7 +551,8 @@
             // Only update items that have not been installed yet.
             if ( !selectedNode->IsInstalled() )
                 {
-                IAUPDATE_TRACE("[IAUPDATE] Item not installed yet");    
+                IAUPDATE_TRACE("[IAUPDATE] Item not installed yet"); 
+                iFilter->SortThisNodeFirstL( selectedNode, iNodes );
                 if ( !selectedNode->IsDownloaded() )
                     {
                     // Because content has not been downloaded or installed yet,
@@ -555,11 +561,8 @@
                     selectedNode->DownloadL( *this );
                     iState = EDownloading;
                     iClosingAllowedByClient = ETrue;
-                    selectedNode->SetDownloading( ETrue);
-                    /*ShowUpdatingDialogL( R_IAUPDATE_DOWNLOADING_NOTE,
-                                         selectedNode->Base().Name(),
-                                         iNodeIndex + 1,
-                                         iSelectedNodesArray.Count() );*/ 
+                    selectedNode->SetUiState( MIAUpdateNode::EDownloading );
+                    iObserver.RefreshUI();
                     nextUpdate = EFalse;
                     }
                 else
@@ -570,13 +573,8 @@
                     selectedNode->InstallL( *this );
                     iState = EInstalling;
                     iClosingAllowedByClient = EFalse;
-                    /*CIAUpdateAppUi* appUi = 
-                        static_cast< CIAUpdateAppUi* >( iEikEnv->EikAppUi() );
-                    appUi->StartWGListChangeMonitoring();
-                    ShowUpdatingDialogL( R_IAUPDATE_INSTALLING_NOTE,
-                                         selectedNode->Base().Name(),
-                                         iNodeIndex + 1,
-                                         iSelectedNodesArray.Count() ); */
+                    selectedNode->SetUiState( MIAUpdateNode::EInstalling );
+                    iObserver.RefreshUI();
                     nextUpdate = EFalse;                     
                     }      
                 }
@@ -610,14 +608,9 @@
             
     aNode.InstallL( *this );
     iState = EInstalling;
-    /*CIAUpdateAppUi* appUi = static_cast<CIAUpdateAppUi*>( iEikEnv->EikAppUi() );
-    appUi->StartWGListChangeMonitoring();
-    iClosingAllowedByClient = EFalse;
-    ShowUpdatingDialogL( R_IAUPDATE_INSTALLING_NOTE,
-                         aNode.Base().Name(),
-                         iNodeIndex + 1,
-                         iSelectedNodesArray.Count()  ); */
-    
+    aNode.SetUiState( MIAUpdateNode::EInstalling );
+    iObserver.RefreshUI();
+        
 	IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::StartInstallL() end");
     }
 
@@ -1651,10 +1644,10 @@
                 CleanupStack::Pop( nodeId );
                 
                 }
-
-            if ( iFwNodes.Count() > 0 )
+            
+	    	for ( TInt j = 0; j < iFwNodes.Count(); ++j )
                 {
-                MIAUpdateFwNode* fwNode( iFwNodes[ 0 ] );
+                MIAUpdateFwNode* fwNode( iFwNodes[ j ] );
                 CIAUpdateNodeId* nodeId = CIAUpdateNodeId::NewLC();
                 nodeId->SetIdL( fwNode->Base().MetaId() );
                 nodeId->SetNamespaceL( fwNode->Base().MetaNamespace() );
@@ -1937,10 +1930,16 @@
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateUiController::InstallCompleteL() begin");
     IAUPDATE_TRACE_1("[IAUPDATE] error code: %d", aError );
 
-    // In release mode, we do not need the aError info, because
-    // success counters are counted by using the last operation error info
-    // when counter info is asked. In debug mode the error code is logged above.
-    (void)aError;
+    if ( aError == KErrNone )
+        {
+        aNode.SetUiState( MIAUpdateNode::EUpdated );   
+        iObserver.RefreshUI();
+        }
+    else
+        {
+        aNode.SetUiState( MIAUpdateNode::EFailed );
+        iObserver.RefreshUI();
+        }
     
     // pass UID of installed package to starter
     if ( iStarter )
@@ -1985,17 +1984,7 @@
 
     iState = EIdle;
     iClosingAllowedByClient = EFalse;
-
-    // Remove installed nodes from the node array.
-	for ( TInt i = iNodes.Count() - 1; i >= 0; --i ) 
-        {   
-        MIAUpdateNode* node = iNodes[ i ];
-        if ( node->IsInstalled() ) 
-            {
-            iNodes.Remove( i );
-            }
-        }
-    
+       
     TInt error( aError );
     TBool selfUpdaterStarted( EFalse );
 
@@ -2054,9 +2043,12 @@
         // completion or timer will call the callback later. But, that callback
         // will be ignored in CIAUpdateUiController::ServerReportSent because
         // iState is already then changed from ESendingReport to something else. 
-        const TInt KServerReportMaxWaitTime( 10000000 );
-        iController->FinishedUpdatesL( ETrue, KServerReportMaxWaitTime );
-        iState = ESendingReport;
+        
+        //const TInt KServerReportMaxWaitTime( 10000000 );         //Commented TEMP 
+        //iController->FinishedUpdatesL( ETrue, KServerReportMaxWaitTime ); //Commented TEMP
+        //iState = ESendingReport;  //Commented temporarily
+        EndUpdateFlowL( KErrNone );  //TEMP
+        return;                      //TEMP  
         }
 
     // When reports are sent, EndUpdateFlowL is called via the callback functions
@@ -2727,6 +2719,32 @@
     }
 
 // ---------------------------------------------------------------------------
+// CIAUpdateUiController::RefreshNodeList
+// 
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateUiController::RefreshNodeList()
+    {
+    // Restore list after update, that nodes are shown in original sequence
+    iFilter->RestoreNodeListL( iNodes );
+    // Remove installed nodes from the node array.
+    // Set temp UI state to normal for remaining nodes 
+    for ( TInt i = iNodes.Count() - 1; i >= 0; --i ) 
+        {   
+        MIAUpdateNode* node = iNodes[ i ];
+        if ( node->IsInstalled() ) 
+            {
+            iNodes.Remove( i );
+            }
+        else
+            {
+            node->SetUiState( MIAUpdateNode::ENormal );        
+            }
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
 // CIAUpdateUiController::ParamsWriteFileL
 // 
 // ---------------------------------------------------------------------------
--- a/iaupdate/IAD/updater/group/iaupdater.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/group/iaupdater.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -34,6 +34,10 @@
 
 MW_LAYER_SYSTEMINCLUDE
 
+SYSTEMINCLUDE     /epoc32/include/mw/hb
+SYSTEMINCLUDE     /epoc32/include/mw/hb/hbcore 
+SYSTEMINCLUDE     /epoc32/include/mw/hb/hbwidgets
+
 USERINCLUDE     ../inc
 USERINCLUDE     ../updaterfiles/inc
 USERINCLUDE     ../../loc
@@ -55,12 +59,15 @@
 LIBRARY         apmime.lib
 LIBRARY         apparc.lib
 LIBRARY         sisregistryclient.lib
-LIBRARY         swinstcli.lib
 LIBRARY         estor.lib
 LIBRARY         commonengine.lib
 LIBRARY         ws32.lib 
 LIBRARY         ecom.lib
 
+LIBRARY         sif.lib
+LIBRARY         hbcore.lib
+LIBRARY         hbwidgets.lib
+
 // Updater files dll
 LIBRARY         iaupdaterfiles.lib
 
--- a/iaupdate/IAD/updater/inc/iaupdaterdialog.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/inc/iaupdaterdialog.h	Thu Jun 24 12:37:54 2010 +0300
@@ -25,30 +25,26 @@
 #include <f32file.h>
 #include <barsc.h>
 
+#include <hbdeviceprogressdialogsymbian.h>
+
 // FORWARD DECLARATIONS
 class MIAUpdaterCancelObserver;
-
 /**
 * Class for showing the global note dialog when installing self update.
-* 
-*  @code   
-*  @endcode
-*  @lib 
-*  @since S60 
 */
-class CIAUpdaterDialog : public CActive
+class CIAUpdaterDialog : public CBase,
+                         public MHbDeviceProgressDialogObserver
     {
 public:  
         
     /**
      * Two-phased constructor.
      */
-    static CIAUpdaterDialog* NewL( RFs& aFs, MIAUpdaterCancelObserver& aObserver ); 
-
+    static CIAUpdaterDialog* NewL( MIAUpdaterCancelObserver& aObserver );
     /**
      * Two-phased constructor.
      */
-    static CIAUpdaterDialog* NewLC( RFs& aFs, MIAUpdaterCancelObserver& aObserver );
+    static CIAUpdaterDialog* NewLC( MIAUpdaterCancelObserver& aObserver );
 
             
     /**
@@ -73,60 +69,59 @@
      */
     void CancelWaitingNoteL();
 
+    /**
+     * From base class MHbDeviceProgressDialogObserver
+     */
+    void ProgressDialogCancelled(
+        const CHbDeviceProgressDialogSymbian* aProgressDialog);
+    
+    /**
+    * From base class MHbDeviceProgressDialogObserver
+    */
+    void ProgressDialogClosed(
+         const CHbDeviceProgressDialogSymbian* aProgressDialog);
+
+
 
 private:
 
     /**
      * Constructor.
      */  
-    CIAUpdaterDialog( RFs& aFs, MIAUpdaterCancelObserver& aObserver );
+    CIAUpdaterDialog( MIAUpdaterCancelObserver& aObserver );
      
     /**
      * 2nd phase constructor.
      */
     void ConstructL();
 
-
-    /**
-     * Read resource string.
-     * @since 
-     * @param aResourceId Id of the resource.
-     * @return Resource buffer.
-     */
-    HBufC* ReadResourceLC( TInt aResourceId );    
-        
-private: // from CActive
-
+    
     /**
-     * Cancels async request 
-     * @see CActive::DoCancel
-     *
+     * Destroy wait note.
      */
-    void DoCancel();
-
-    /**
-     * When the server side has finished operation, the CActive object will
-     * be informed about it, and as a result RunL will be called. This function
-     * well inform the observer that the operation has been completed.
-     * @see CActive::RunL
-     *
-     */
-    void RunL();
+    void CIAUpdaterDialog::DestroyGlobalWaitNote();
+    
 
 private: // data
 
-    // Resource file.
-    //RResourceFile iResourceFile;
-
-    // File server handle.        
-    RFs& iFs;        
-                   
-    //CAknGlobalNote* iNote;
+    /**
+     * Not owned, install observer.
+     */
+    MIAUpdaterCancelObserver* iObserver; 
+    /**
+    * Own, Global wait note.
+    */
+    CHbDeviceProgressDialogSymbian* iGlobalWaitNote;
     
-    // Dialog id for canceling dialog. 
-    TInt iNoteId;
-        
-    MIAUpdaterCancelObserver* iObserver; //not owned
+    /**
+    * Own, resouce of global note.
+    */
+    HBufC* iGlobalResource;
+    
+    /**
+     * Check Load Success .ts file successfully or not
+     */
+    TBool iIsResolverSuccess;
         
     };
 
--- a/iaupdate/IAD/updater/inc/iaupdatersilentlauncher.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/inc/iaupdatersilentlauncher.h	Thu Jun 24 12:37:54 2010 +0300
@@ -24,14 +24,12 @@
 #include <f32file.h>
 #include <SWInstApi.h>
 
+#include <usif/sif/sif.h>
+
 
 /**
  * Class that handles the launching of silent installation.
  *
- *  @code   
- *  @endcode
- *  @lib 
- *  @since S60 
  */ 
 class CIAUpdaterSilentLauncher : public CBase
     {
@@ -81,13 +79,13 @@
      * @return SwiUI::TInstallOptions Options that are used for
      * silent installation.
      */
-    SwiUI::TInstallOptions SilentInstallOptionsL() const;
+    void  UsifSilentInstallOptionsL( Usif::COpaqueNamedParams * aOptions );
 
 private: //  Data
-        
-    SwiUI::RSWInstSilentLauncher iLauncher;   
     
-    SwiUI::TInstallOptionsPckg iOptionsPckg;   
+    Usif::RSoftwareInstall iLauncher;
+    Usif::COpaqueNamedParams* iOptionsPckg; 
+    Usif::COpaqueNamedParams* iResults;
 
     RFs& iFs;        
     
--- a/iaupdate/IAD/updater/sis/Rd.cer	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/sis/Rd.cer	Thu Jun 24 12:37:54 2010 +0300
@@ -1,17 +1,17 @@
------BEGIN CERTIFICATE-----
-MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD
-ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z
-NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl
-cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT
-rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa
-gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI
-f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL
-BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud
-IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD
-ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd
-IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE
-IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G
-CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9
-Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT
-7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR
------END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD
+ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z
+NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl
+cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT
+rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa
+gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI
+f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL
+BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud
+IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD
+ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd
+IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE
+IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G
+CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9
+Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT
+7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR
+-----END CERTIFICATE-----
--- a/iaupdate/IAD/updater/sis/Rd.pem	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/sis/Rd.pem	Thu Jun 24 12:37:54 2010 +0300
@@ -1,15 +1,15 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4
-6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh
-7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB
-gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX
-pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB
-yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j
-KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003
-iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3
-2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+
-9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0
-aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO
-TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8
-mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ=
------END RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4
+6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh
+7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB
+gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX
+pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB
+yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j
+KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003
+iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3
+2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+
+9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0
+aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO
+TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8
+mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ=
+-----END RSA PRIVATE KEY-----
--- a/iaupdate/IAD/updater/src/iaupdaterdialog.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/src/iaupdaterdialog.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -22,6 +22,12 @@
 #include "iaupdatercancelobserver.h"
 #include "iaupdatedebug.h"
 
+#include <hbtextresolversymbian.h>
+
+
+_LIT(KFilename, "iaupdate.ts");
+_LIT(KPath, "z://data");
+_LIT(KInstalling, "txt_software_info_installing_1"); 
 
 // ======== LOCAL FUNCTIONS ========
 
@@ -33,26 +39,23 @@
 // C++ default constructor 
 // -----------------------------------------------------------------------------
 //
-CIAUpdaterDialog::CIAUpdaterDialog( RFs& aFs, 
-                                    MIAUpdaterCancelObserver& aObserver )
-: CActive( CActive::EPriorityStandard ),
-  iFs( aFs ),
-  iObserver ( &aObserver ) 
+CIAUpdaterDialog::CIAUpdaterDialog( MIAUpdaterCancelObserver& aObserver )
+: iObserver ( &aObserver ) 
     {
-    CActiveScheduler::Add( this );
+
     }
 
 
+
 // -----------------------------------------------------------------------------
 // CIAUpdaterDialog::NewL
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CIAUpdaterDialog* CIAUpdaterDialog::NewL( RFs& aFs, 
-                                          MIAUpdaterCancelObserver& aObserver )
+CIAUpdaterDialog* CIAUpdaterDialog::NewL( MIAUpdaterCancelObserver& aObserver )
     {
     CIAUpdaterDialog* self =
-        CIAUpdaterDialog::NewLC( aFs, aObserver );
+        CIAUpdaterDialog::NewLC( aObserver );
     CleanupStack::Pop( self );
     return self;    
     }
@@ -63,11 +66,10 @@
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CIAUpdaterDialog* CIAUpdaterDialog::NewLC( RFs& aFs, 
-                                           MIAUpdaterCancelObserver& aObserver )
+CIAUpdaterDialog* CIAUpdaterDialog::NewLC( MIAUpdaterCancelObserver& aObserver )
     {
     CIAUpdaterDialog* self = 
-        new( ELeave ) CIAUpdaterDialog( aFs, aObserver );
+        new( ELeave ) CIAUpdaterDialog( aObserver );
     CleanupStack::PushL( self );
     self->ConstructL();
     return self;    
@@ -84,18 +86,8 @@
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ConstructL begin");
     
     // Get resource file path
-    /*TFileName fileName;
-    fileName.Copy( TParsePtrC( RProcess().FileName() ).Drive() );
-    fileName.Append( KDC_APP_RESOURCE_DIR );
-    fileName.Append( IAUpdaterDefs::KIAUpdaterResourceFile );
+    iIsResolverSuccess = HbTextResolverSymbian::Init(KFilename, KPath);
     
-    // Get language of resource file        
-    BaflUtils::NearestLanguageFile( iFs, fileName );
-
-    // Open resource file
-    iResourceFile.OpenL( iFs, fileName );
-    iResourceFile.ConfirmSignatureL(); */   
-
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ConstructL end");
     }
 
@@ -107,9 +99,7 @@
 //
 CIAUpdaterDialog::~CIAUpdaterDialog()
     {
-    Cancel();
-    //delete iNote;
-    //iResourceFile.Close();    
+    DestroyGlobalWaitNote();
     }
 
 
@@ -118,54 +108,30 @@
 // Show global waiting note during installing.
 // -----------------------------------------------------------------------------
 // 
-void CIAUpdaterDialog::ShowWaitingNoteL( const TDesC& /*aName*/, TInt /*aIndex*/, TInt /*aTotalCount*/ )
+void CIAUpdaterDialog::ShowWaitingNoteL( const TDesC& aName, TInt /*aIndex*/, TInt /*aTotalCount*/ )
 	{	
 	IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ShowWaitingNoteL begin");
-	if ( iNoteId == 0 )
-		{ 		                             
-	    IAUPDATE_TRACE("[IAUpdater] Creating global waiting note.");
 	
-        // Get localiced string from resc. file. 
-        //HBufC* string = ReadResourceLC( R_IAUPDATER_INSTALLING ); 
-                                          
-        //HBufC* temp1 = HBufC::NewLC( string->Length() + aName.Length() );          
-        //TPtr temp1Ptr = temp1->Des();
-        
-        // Add pkg's name to string (U0).
-        //StringLoader::Format( temp1Ptr, *string, 0, aName );
-                                        
-        // Increase buffer length for the number.        
-        //HBufC* temp2 = 
-        //    HBufC::NewLC( temp1->Length() + IAUpdaterDefs::KIAUpdaterParamLen );        
-        //TPtr temp2Ptr = temp2->Des();
-         
-        // Add index number to string (N1) 
-        //StringLoader::Format( temp2Ptr, *temp1, 1, aIndex );
-                        
-        // Increase buffer length for the number.  
-        //HBufC* finalString = 
-        //    HBufC::NewLC( temp2->Length() + IAUpdaterDefs::KIAUpdaterParamLen );        
-        //TPtr finalPtr = finalString->Des();
-        
-        // Add max count number to string (N2) 
-        //StringLoader::Format( finalPtr, *temp2, 2, aTotalCount );
-        
-        //AknTextUtils::DisplayTextLanguageSpecificNumberConversion( finalPtr );         
-        //if ( !iNote )
-        //    {
-        //	iNote = CAknGlobalNote::NewL();   
-    	//    iNote->SetSoftkeys( R_AVKON_SOFTKEYS_CANCEL );
-        //    }
-     	
-	//    IAUPDATE_TRACE("[IAUpdater] Showing global waiting note.");
-    	//iNoteId = iNote->ShowNoteL( iStatus, EAknGlobalWaitNote, *finalString );
-    	SetActive();    	    	
-     
-    	//CleanupStack::PopAndDestroy( finalString );
-    	//CleanupStack::PopAndDestroy( temp2 );
-    	//CleanupStack::PopAndDestroy( temp1 );
-    	//CleanupStack::PopAndDestroy( string );
-		}
+	DestroyGlobalWaitNote();
+    
+    iGlobalWaitNote = CHbDeviceProgressDialogSymbian::NewL(
+            CHbDeviceProgressDialogSymbian::EWaitDialog );
+    
+    // loc: Load string 
+    iGlobalResource = HbTextResolverSymbian::LoadL( KInstalling, aName );
+    if ( iGlobalResource )
+        iGlobalWaitNote->SetTextL( iGlobalResource->Des() );
+
+    // Icon ?
+    //iGlobalWaitNote->SetIconNameL(const TDesC& aIconName);
+    
+    // Button ?
+    iGlobalWaitNote->SetButton(ETrue);
+    
+    iGlobalWaitNote->SetObserver( this );
+    iGlobalWaitNote->SetAutoClose(EFalse);
+    iGlobalWaitNote->ShowL();
+    
 	IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::ShowWaitingNoteL end");
 	}
 
@@ -178,50 +144,39 @@
 void CIAUpdaterDialog::CancelWaitingNoteL()
 	{
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::CancelWaitingNoteL begin");
-	
-	/*if ( iNoteId != 0 )
-		{
-        IAUPDATE_TRACE("[IAUpdater] Cancel waiting note.");
-	    iNote->CancelNoteL( iNoteId );
-	    iNoteId = 0;
-		}*/
-
+    
+    DestroyGlobalWaitNote();
+    
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterDialog::CancelWaitingNoteL end");
 	}
 
-	
-
+void CIAUpdaterDialog::ProgressDialogCancelled(
+    const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/ )
+    {
     
+    iObserver->UserCancel();
     
-// ---------------------------------------------------------------------------
-// CIAUpdaterDialog:::DoCancel
-// 
-// ---------------------------------------------------------------------------
-// 
-void CIAUpdaterDialog::DoCancel()
+    }
+
+void CIAUpdaterDialog::ProgressDialogClosed(
+    const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/ )
     {
-    TRAP_IGNORE( CancelWaitingNoteL() );
+    
     }
 
-// ---------------------------------------------------------------------------
-// CIAUpdateNetworkRegistration::RunL()
-// 
-// ---------------------------------------------------------------------------
-//
-void CIAUpdaterDialog::RunL()
+// -----------------------------------------------------------------------------
+// CIAUpdaterDialog::DestroyGlobalWaitNote
+// -----------------------------------------------------------------------------
+void CIAUpdaterDialog::DestroyGlobalWaitNote()
     {
-    IAUPDATE_TRACE_1("[IAUpdater] CIAUpdaterDialog::RunL() iStatus : %d", iStatus.Int() );
-    iNoteId = 0;
-    /*if ( iStatus.Int() == EAknSoftkeyCancel )
+    if ( iGlobalWaitNote )
         {
-    	iObserver->UserCancel();
+        iGlobalWaitNote->Close();
+        delete iGlobalWaitNote;
+        iGlobalWaitNote = NULL;
+        delete iGlobalResource;
+        iGlobalResource = NULL;
         }
-    else
-        {
-        iObserver->UserExit();	
-        }*/
     }
-
-// ======== GLOBAL FUNCTIONS ========
-
+    
 //  EOF  
--- a/iaupdate/IAD/updater/src/iaupdatermngr.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/src/iaupdatermngr.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -166,7 +166,8 @@
     TBool showing( EFalse );
     User::LeaveIfError( iFs.Connect() );
     User::LeaveIfError( iWsSession.Connect( iFs ) );
-    CIAUpdaterDialog* dialogs( CIAUpdaterDialog::NewLC( iFs, *this ) );
+    //CIAUpdaterDialog* dialogs( CIAUpdaterDialog::NewLC( iFs, *this ) );
+    CIAUpdaterDialog* dialogs( CIAUpdaterDialog::NewLC( *this ) );
     if ( count > 0 )
         {
         TInt nameIndex( 0 );
--- a/iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -43,7 +43,12 @@
 //
 void CIAUpdaterSilentLauncher::ConstructL()
     {
-    iOptionsPckg = SilentInstallOptionsL();
+    
+    iOptionsPckg = Usif::COpaqueNamedParams::NewL();
+    iResults = Usif::COpaqueNamedParams::NewL();
+    
+    UsifSilentInstallOptionsL( iOptionsPckg );    
+
     }
 
 // -----------------------------------------------------------------------------
@@ -68,6 +73,10 @@
 CIAUpdaterSilentLauncher::~CIAUpdaterSilentLauncher()
     {
     iLauncher.Close();
+    
+    delete iOptionsPckg;
+    delete iResults;
+    
     }
 
 // -----------------------------------------------------------------------------
@@ -88,7 +97,7 @@
 
     // Launch the installation   
     IAUPDATE_TRACE("[IAUpdater] Launch silent install");                    
-    iLauncher.SilentInstall( aStatus, aFile, iOptionsPckg );    
+    iLauncher.Install( aFile, *iOptionsPckg, *iResults, aStatus );
 
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::InstallL() end"); 
     }
@@ -102,71 +111,64 @@
     {
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::Cancel() begin");       
 
-    iLauncher.CancelAsyncRequest( SwiUI::ERequestSilentInstall );   
+    iLauncher.CancelOperation();
 
     IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::Cancel() end"); 
     }
 
-
 // ---------------------------------------------------------------------------
-// CIAUpdaterSilentLauncher::SilentInstallOptionsL
+// IAUpdateUtils::UsifSilentInstallOptionsL
 // 
 // ---------------------------------------------------------------------------
-//
-SwiUI::TInstallOptions CIAUpdaterSilentLauncher::SilentInstallOptionsL() const
+
+void  CIAUpdaterSilentLauncher::UsifSilentInstallOptionsL( 
+        Usif::COpaqueNamedParams * aOptions )
     {
-    IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::SilentInstallOptionsL() begin"); 
-    
-    SwiUI::TInstallOptions options;
+
+    aOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
 
-    // Upgrades are allowed        
-    options.iUpgrade = SwiUI::EPolicyAllowed;
-
+    // Upgrades are allowed 
+    aOptions->AddIntL( Usif::KSifInParam_AllowUpgrade, Usif::EAllowed );
+    
     // Install all if optional packets exist.
-    options.iOptionalItems = SwiUI::EPolicyAllowed;
-
+    aOptions->AddIntL( Usif::KSifInParam_InstallOptionalItems, Usif::EAllowed );
+    
     // Prevent online cert revocation check.
-    options.iOCSP = SwiUI::EPolicyNotAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_PerformOCSP, Usif::ENotAllowed );
     
     // See iOCSP setting above
-    options.iIgnoreOCSPWarnings = SwiUI::EPolicyAllowed;
-
+    aOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, Usif::EAllowed );
+    
     // Do not allow installation of uncertified packages.
-    options.iUntrusted = SwiUI::EPolicyNotAllowed;
-
-    // If filetexts are included in SIS package. Then, show them.
-    options.iPackageInfo = SwiUI::EPolicyUserConfirm;
+    aOptions->AddIntL( Usif::KSifInParam_AllowUntrusted, Usif::ENotAllowed );
+    
+    // If filetexts are included in SIS package, show them.
+    aOptions->AddIntL( Usif::KSifInParam_PackageInfo, Usif::EAllowed );
     
     // Automatically grant user capabilities.
-    // See also iUntrusted above.
-    options.iCapabilities = SwiUI::EPolicyAllowed;
-
+    // See also KSifInParam_AllowUntrusted above.
+    aOptions->AddIntL( Usif::KSifInParam_GrantCapabilities, Usif::EAllowed );
+    
     // Open application will be closed.
-    options.iKillApp = SwiUI::EPolicyAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, Usif::EAllowed );
     
     // Files can be overwritten.
-    options.iOverwrite = SwiUI::EPolicyAllowed;
+    aOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, Usif::EAllowed  );
+    
+    // Incompatible allowed
+    aOptions->AddIntL( Usif::KSifInParam_AllowIncompatible, Usif::EAllowed  );
     
     // This only affects Java applications.
-    options.iDownload = SwiUI::EPolicyAllowed;
-
-    // Notice! Here we use always the same drive for the IAD.
-    // So, this will not change automatically according to the disk spaces 
-    // and when new memory cards are inserted into the phone.    
-    options.iDrive = IAUpdaterDefs::KIAUpdaterDrive;
+    aOptions->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed  );
+    
+    // Where to save.
+    //aOptions->AddIntL( Usif::KSifInParam_Drive, EDriveC );
     
     // Choose the phone language.
-    options.iLang = User::Language();
-    
-    // If language is asked, then use the current phone language.
-    options.iUsePhoneLang = ETrue;
+    TLanguage lang = User::Language();
+    //aOptions->AddIntL( Usif::KSifInParam_Languages, lang ); // User::Language() );
     
-    // Does not affect SISX. This is for Java.
-    options.iUpgradeData = SwiUI::EPolicyAllowed;
-
-    IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::SilentInstallOptionsL() end"); 
-    
-    return options;
+    //aOptions->AddIntL( Usif::KSifInParam_Drive, IAUpdateUtils::DriveToInstallL( aUid, aSize ) );
     }
 
 
--- a/iaupdate/rom/iaupdate_stub.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/rom/iaupdate_stub.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,50 +1,50 @@
-;
-; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; 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: 
-;
-&EN
-
-;Header 
-#{"Application update"}, (0x2000f85a), 2, 1, 0, TYPE=SA
-
-;Localised Vendor Name
-%{"Nokia"}
-
-;Unique Vendor Name
-:"Nokia"
-
-;EXEs
-""-"z:\sys\bin\iaupdate.exe"
-""-"z:\sys\bin\iaupdatelauncher.exe"
-""-"z:\sys\bin\iaupdatebg.exe"
-
-;DLLs
-""-"z:\sys\bin\iaupdateengine.dll"
-""-"z:\sys\bin\iaupdateapi.dll"
-""-"z:\sys\bin\iaupdatefwupdate.dll"
-""-"z:\sys\bin\bgcindicatorplugin.dll"
-
-
-
-;Resources
-""-"z:\private\10003a3f\import\apps\iaupdate_reg.rs*"
-""-"z:\resource\apps\iaupdate.r*"
-""-"z:\private\10003a3f\import\apps\iaupdatelauncher_reg.rs*"
-""-"z:\resource\apps\iaupdatelauncher.r*"
-
-;Icons
-""-"z:\private\200211f4\qgn_note_swupdate_notification.svg"
-
-;Other Files
-""-"z:\private\2000F85A\iaupdateengineconfig.xml"
+;
+; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; 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: 
+;
+&EN
+
+;Header 
+#{"Application update"}, (0x2000f85a), 2, 1, 0, TYPE=SA
+
+;Localised Vendor Name
+%{"Nokia"}
+
+;Unique Vendor Name
+:"Nokia"
+
+;EXEs
+""-"z:\sys\bin\iaupdate.exe"
+""-"z:\sys\bin\iaupdatelauncher.exe"
+""-"z:\sys\bin\iaupdatebg.exe"
+
+;DLLs
+""-"z:\sys\bin\iaupdateengine.dll"
+""-"z:\sys\bin\iaupdateapi.dll"
+""-"z:\sys\bin\iaupdatefwupdate.dll"
+""-"z:\sys\bin\bgcindicatorplugin.dll"
+
+
+
+;Resources
+""-"z:\private\10003a3f\import\apps\iaupdate_reg.rs*"
+""-"z:\resource\apps\iaupdate.r*"
+""-"z:\private\10003a3f\import\apps\iaupdatelauncher_reg.rs*"
+""-"z:\resource\apps\iaupdatelauncher.r*"
+
+;Icons
+""-"z:\private\200211f4\qgn_note_swupdate_notification.svg"
+
+;Other Files
+""-"z:\private\2000F85A\iaupdateengineconfig.xml"
--- a/iaupdate/rom/iaupdater_stub.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/iaupdate/rom/iaupdater_stub.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,37 +1,37 @@
-;
-; 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: 
-;
-&EN
-
-;Header 
-#{"Software updater"}, (0x2000f85d), 1, 0, 2, TYPE=SA
-
-;Localised Vendor Name
-%{"Nokia"}
-
-;Unique Vendor Name
-:"Nokia"
-
-;EXEs
-""-"z:\sys\bin\iaupdater.exe"
-
-;DLLs
-""-"z:\sys\bin\iaupdaterfiles.dll"
-
-;Resources
-""-"z:\private\10003a3f\import\apps\iaupdater_reg.rs*"
-""-"z:\resource\apps\iaupdater.r*"
-
-
+;
+; 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: 
+;
+&EN
+
+;Header 
+#{"Software updater"}, (0x2000f85d), 1, 0, 2, TYPE=SA
+
+;Localised Vendor Name
+%{"Nokia"}
+
+;Unique Vendor Name
+:"Nokia"
+
+;EXEs
+""-"z:\sys\bin\iaupdater.exe"
+
+;DLLs
+""-"z:\sys\bin\iaupdaterfiles.dll"
+
+;Resources
+""-"z:\private\10003a3f\import\apps\iaupdater_reg.rs*"
+""-"z:\resource\apps\iaupdater.r*"
+
+
--- a/installationservices/swcomponentregistry/test/tscrdatalayer/scripts/data/nondb.db	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscrdatalayer/scripts/data/nondb.db	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,2 @@
-This file is not a database file.
+This file is not a database file.
 It is used to simulate the non-database file.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/bwins/plan_legacyU.def	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,83 @@
+EXPORTS
+	??1CPlan@Swi@@UAE@XZ @ 1 NONAME ; Swi::CPlan::~CPlan(void)
+	?AddEmbeddedApplicationL@CApplication@Swi@@QAEXPAV12@@Z @ 2 NONAME ; void Swi::CApplication::AddEmbeddedApplicationL(class Swi::CApplication *)
+	?AddFileL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 3 NONAME ; void Swi::CApplication::AddFileL(class Swi::Sis::CFileDescription const &, class TChar)
+	?AddInstallFileForProgress@CPlan@Swi@@QAEX_J@Z @ 4 NONAME ; void Swi::CPlan::AddInstallFileForProgress(long long)
+	?AddPropertyL@CApplication@Swi@@QAEXABVTProperty@12@@Z @ 5 NONAME ; void Swi::CApplication::AddPropertyL(class Swi::CApplication::TProperty const &)
+	?AddUninstallFileForProgress@CPlan@Swi@@QAEXXZ @ 6 NONAME ; void Swi::CPlan::AddUninstallFileForProgress(void)
+	?AppInfoL@CPlan@Swi@@QBEABVTAppInfo@2@XZ @ 7 NONAME ; class Swi::TAppInfo const & Swi::CPlan::AppInfoL(void) const
+	?ApplicationL@CPlan@Swi@@UBEABVCApplication@2@XZ @ 8 NONAME ; class Swi::CApplication const & Swi::CPlan::ApplicationL(void) const
+	?ControllerL@CApplication@Swi@@QBEABVCController@Sis@2@XZ @ 9 NONAME ; class Swi::Sis::CController const & Swi::CApplication::ControllerL(void) const
+	?DisplayFileOnInstallL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 10 NONAME ; void Swi::CApplication::DisplayFileOnInstallL(class Swi::Sis::CFileDescription const &, class TChar)
+	?DisplayFileOnUninstallL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 11 NONAME ; void Swi::CApplication::DisplayFileOnUninstallL(class Swi::CSisRegistryFileDescription const &)
+	?EmbeddedApplications@CApplication@Swi@@QBEABV?$RPointerArray@VCApplication@Swi@@@@XZ @ 12 NONAME ; class RPointerArray<class Swi::CApplication> const & Swi::CApplication::EmbeddedApplications(void) const
+	?FilesToAdd@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 13 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToAdd(void) const
+	?FilesToDisplayOnInstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 14 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToDisplayOnInstall(void) const
+	?FilesToDisplayOnUninstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 15 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToDisplayOnUninstall(void) const
+	?FilesToRemove@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 16 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToRemove(void) const
+	?FilesToRunOnInstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 17 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToRunOnInstall(void) const
+	?FilesToRunOnUninstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 18 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToRunOnUninstall(void) const
+	?FinalProgressBarValue@CPlan@Swi@@QBEJXZ @ 19 NONAME ; long Swi::CPlan::FinalProgressBarValue(void) const
+	?IsAugmentation@CApplication@Swi@@QBEHXZ @ 20 NONAME ; int Swi::CApplication::IsAugmentation(void) const
+	?IsInROM@CApplication@Swi@@QBEHXZ @ 21 NONAME ; int Swi::CApplication::IsInROM(void) const
+	?IsInstall@CApplication@Swi@@QBEHXZ @ 22 NONAME ; int Swi::CApplication::IsInstall(void) const
+	?IsPartialUpgrade@CApplication@Swi@@QBEHXZ @ 23 NONAME ; int Swi::CApplication::IsPartialUpgrade(void) const
+	?IsPreInstalledApp@CApplication@Swi@@QBEHXZ @ 24 NONAME ; int Swi::CApplication::IsPreInstalledApp(void) const
+	?IsPreInstalledPatch@CApplication@Swi@@QBEHXZ @ 25 NONAME ; int Swi::CApplication::IsPreInstalledPatch(void) const
+	?IsUninstall@CApplication@Swi@@QBEHXZ @ 26 NONAME ; int Swi::CApplication::IsUninstall(void) const
+	?IsUpgrade@CApplication@Swi@@QBEHXZ @ 27 NONAME ; int Swi::CApplication::IsUpgrade(void) const
+	?NewL@CApplication@Swi@@SAPAV12@XZ @ 28 NONAME ; class Swi::CApplication * Swi::CApplication::NewL(void)
+	?NewL@CPlan@Swi@@SAPAV12@XZ @ 29 NONAME ; class Swi::CPlan * Swi::CPlan::NewL(void)
+	?NewLC@CApplication@Swi@@SAPAV12@XZ @ 30 NONAME ; class Swi::CApplication * Swi::CApplication::NewLC(void)
+	?PackageL@CApplication@Swi@@QBEABVCSisRegistryPackage@2@XZ @ 31 NONAME ; class Swi::CSisRegistryPackage const & Swi::CApplication::PackageL(void) const
+	?Properties@CApplication@Swi@@QBEABV?$RArray@VTProperty@CApplication@Swi@@@@XZ @ 32 NONAME ; class RArray<class Swi::CApplication::TProperty> const & Swi::CApplication::Properties(void) const
+	?RemoveFileL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 33 NONAME ; void Swi::CApplication::RemoveFileL(class Swi::CSisRegistryFileDescription const &)
+	?RunFileOnInstallL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 34 NONAME ; void Swi::CApplication::RunFileOnInstallL(class Swi::Sis::CFileDescription const &, class TChar)
+	?RunFileOnUninstallL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 35 NONAME ; void Swi::CApplication::RunFileOnUninstallL(class Swi::CSisRegistryFileDescription const &)
+	?SetAppInfoL@CPlan@Swi@@QAEXABVTAppInfo@2@@Z @ 36 NONAME ; void Swi::CPlan::SetAppInfoL(class Swi::TAppInfo const &)
+	?SetApplication@CPlan@Swi@@UAEXPAVCApplication@2@@Z @ 37 NONAME ; void Swi::CPlan::SetApplication(class Swi::CApplication *)
+	?SetApplicationInformationL@CPlan@Swi@@QAEXABVTDesC16@@0ABVTVersion@@@Z @ 38 NONAME ; void Swi::CPlan::SetApplicationInformationL(class TDesC16 const &, class TDesC16 const &, class TVersion const &)
+	?SetAugmentation@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 39 NONAME ; void Swi::CApplication::SetAugmentation(class Swi::Sis::CController const &)
+	?SetController@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 40 NONAME ; void Swi::CApplication::SetController(class Swi::Sis::CController const &)
+	?SetController@CApplication@Swi@@QAEXVTUid@@@Z @ 41 NONAME ; void Swi::CApplication::SetController(class TUid)
+	?SetInROM@CApplication@Swi@@QAEXXZ @ 42 NONAME ; void Swi::CApplication::SetInROM(void)
+	?SetInstall@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 43 NONAME ; void Swi::CApplication::SetInstall(class Swi::Sis::CController const &)
+	?SetOptionsL@CUserSelections@Swi@@QAEXABV?$RArray@H@@@Z @ 44 NONAME ; void Swi::CUserSelections::SetOptionsL(class RArray<int> const &)
+	?SetPackageL@CApplication@Swi@@QAEXABVCSisRegistryPackage@2@@Z @ 45 NONAME ; void Swi::CApplication::SetPackageL(class Swi::CSisRegistryPackage const &)
+	?SetPartialUpgrade@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 46 NONAME ; void Swi::CApplication::SetPartialUpgrade(class Swi::Sis::CController const &)
+	?SetPreInstalledApp@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 47 NONAME ; void Swi::CApplication::SetPreInstalledApp(class Swi::Sis::CController const &)
+	?SetPreInstalledPatch@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 48 NONAME ; void Swi::CApplication::SetPreInstalledPatch(class Swi::Sis::CController const &)
+	?SetUninstallL@CApplication@Swi@@QAEXABVCSisRegistryPackage@2@@Z @ 49 NONAME ; void Swi::CApplication::SetUninstallL(class Swi::CSisRegistryPackage const &)
+	?SetUpgrade@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 50 NONAME ; void Swi::CApplication::SetUpgrade(class Swi::Sis::CController const &)
+	?AddSisStubFileL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 51 NONAME ; void Swi::CApplication::AddSisStubFileL(class Swi::CSisRegistryFileDescription const &)
+	?CanPropagate@CApplication@Swi@@QBEHXZ @ 52 NONAME ; int Swi::CApplication::CanPropogate(void) const
+	?StubDrive@CApplication@Swi@@QBE?AVTChar@@XZ @ 53 NONAME ; class TChar Swi::CApplication::StubDrive(void) const
+	?SetPreInstalledApp@CApplication@Swi@@QAEXXZ @ 54 NONAME ; void Swi::CApplication::SetPreInstalledApp(void)
+	?SetPreInstalledPatch@CApplication@Swi@@QAEXXZ @ 55 NONAME ; void Swi::CApplication::SetPreInstalledPatch(void)
+	?RemoveFileL@CApplication@Swi@@QAEXABVTDesC16@@@Z @ 56 NONAME ; void Swi::CApplication::RemoveFileL(class TDesC16 const &)
+	?FilesToRunBeforeShutdown@CPlan@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 57 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CPlan::FilesToRunBeforeShutdown(void) const
+	?RunFilesBeforeShutdownL@CPlan@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 58 NONAME ; void Swi::CPlan::RunFilesBeforeShutdownL(class Swi::CSisRegistryFileDescription const &)
+	?IsInstallSuCertBased@CApplication@Swi@@QBEHXZ @ 59 NONAME ; int Swi::CApplication::IsInstallSuCertBased(void) const
+	?SetInstallSuCertBased@CApplication@Swi@@QAEXXZ @ 60 NONAME ; void Swi::CApplication::SetInstallSuCertBased(void)
+	?AddFileL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 61 NONAME ; void Swi::CApplication::AddFileL(class Swi::CSisRegistryFileDescription const &)
+	?FilesToSkipOnInstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 62 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToSkipOnInstall(void) const
+	?SkipFileOnInstallL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 63 NONAME ; void Swi::CApplication::SkipFileOnInstallL(class Swi::Sis::CFileDescription const &, class TChar)
+	?SetDrmProtected@CApplication@Swi@@QAEXH@Z @ 64 NONAME ; void Swi::CApplication::SetDrmProtected(int)
+	?IsDrmProtected@CApplication@Swi@@QBEHXZ @ 65 NONAME ; int Swi::CApplication::IsDrmProtected(void) const
+	?FilesToRunAfterInstall@CPlan@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 66 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CPlan::FilesToRunAfterInstall(void) const
+	?RunFileAfterInstallL@CPlan@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@H@Z @ 67 NONAME ; void Swi::CPlan::RunFileAfterInstallL(class Swi::Sis::CFileDescription const &, class TChar, int)
+	?AppArcRegFiles@CPlan@Swi@@QBEABV?$RPointerArray@VTDesC16@@@@XZ @ 68 NONAME ; class RPointerArray<class TDesC16> const & Swi::CPlan::AppArcRegFiles(void) const
+	?ContainsPlugins@CPlan@Swi@@QBEHXZ @ 69 NONAME ; int Swi::CPlan::ContainsPlugins(void) const
+	?SetContainsPlugins@CPlan@Swi@@QAEXH@Z @ 70 NONAME ; void Swi::CPlan::SetContainsPlugins(int)
+	?AddAppArcRegFileL@CPlan@Swi@@QAEXABVTDesC16@@@Z @ 71 NONAME ; void Swi::CPlan::AddAppArcRegFileL(class TDesC16 const &)
+	?ResetAppArcRegFiles@CPlan@Swi@@QAEXXZ @ 72 NONAME ; void Swi::CPlan::ResetAppArcRegFiles(void)
+	?CopyDeviceSupportedLanguagesL@CApplication@Swi@@QAEXABV?$RArray@H@@@Z @ 73 NONAME ; void Swi::CApplication::CopyDeviceSupportedLanguagesL(class RArray<int> const &)
+	?GetMatchingDeviceLanguages@CApplication@Swi@@QAEABV?$RArray@H@@XZ @ 74 NONAME ; class RArray<int> const & Swi::CApplication::GetMatchingDeviceLanguages(void)
+	?PopulateMatchingDeviceLanguagesL@CApplication@Swi@@QAEXH@Z @ 75 NONAME ; void Swi::CApplication::PopulateMatchingDeviceLanguagesL(int)
+	?IsDeviceMatchingLanguage@CApplication@Swi@@QBEHH@Z @ 76 NONAME ; int Swi::CApplication::IsDeviceMatchingLanguage(int) const
+	?SetSisHelper@CApplication@Swi@@QAEXABVRSisHelper@2@@Z @ 77 NONAME ; void Swi::CApplication::SetSisHelper(class Swi::RSisHelper const &)
+	?GetSisHelper@CApplication@Swi@@QAEAAVRSisHelper@2@XZ @ 78 NONAME ; class Swi::RSisHelper & Swi::CApplication::GetSisHelper(void)
+	?GetAffectedApps@CPlan@Swi@@QBEXAAV?$RArray@VTAppUpdateInfo@Swi@@@@@Z @ 79 NONAME ABSENT ; void Swi::CPlan::GetAffectedApps(class RArray<class Swi::TAppUpdateInfo> &) const
+	?ResetAffectedApps@CPlan@Swi@@QAEXXZ @ 80 NONAME ABSENT ; void Swi::CPlan::ResetAffectedApps(void)
+	?SetAffectedApps@CPlan@Swi@@QAEXAAV?$RArray@VTAppUpdateInfo@Swi@@@@@Z @ 81 NONAME ABSENT ; void Swi::CPlan::SetAffectedApps(class RArray<class Swi::TAppUpdateInfo> &)
+
--- a/installationservices/swi/bwins/plan_legacyu.def	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-EXPORTS
-	??1CPlan@Swi@@UAE@XZ @ 1 NONAME ; Swi::CPlan::~CPlan(void)
-	?AddEmbeddedApplicationL@CApplication@Swi@@QAEXPAV12@@Z @ 2 NONAME ; void Swi::CApplication::AddEmbeddedApplicationL(class Swi::CApplication *)
-	?AddFileL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 3 NONAME ; void Swi::CApplication::AddFileL(class Swi::Sis::CFileDescription const &, class TChar)
-	?AddInstallFileForProgress@CPlan@Swi@@QAEX_J@Z @ 4 NONAME ; void Swi::CPlan::AddInstallFileForProgress(long long)
-	?AddPropertyL@CApplication@Swi@@QAEXABVTProperty@12@@Z @ 5 NONAME ; void Swi::CApplication::AddPropertyL(class Swi::CApplication::TProperty const &)
-	?AddUninstallFileForProgress@CPlan@Swi@@QAEXXZ @ 6 NONAME ; void Swi::CPlan::AddUninstallFileForProgress(void)
-	?AppInfoL@CPlan@Swi@@QBEABVTAppInfo@2@XZ @ 7 NONAME ; class Swi::TAppInfo const & Swi::CPlan::AppInfoL(void) const
-	?ApplicationL@CPlan@Swi@@UBEABVCApplication@2@XZ @ 8 NONAME ; class Swi::CApplication const & Swi::CPlan::ApplicationL(void) const
-	?ControllerL@CApplication@Swi@@QBEABVCController@Sis@2@XZ @ 9 NONAME ; class Swi::Sis::CController const & Swi::CApplication::ControllerL(void) const
-	?DisplayFileOnInstallL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 10 NONAME ; void Swi::CApplication::DisplayFileOnInstallL(class Swi::Sis::CFileDescription const &, class TChar)
-	?DisplayFileOnUninstallL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 11 NONAME ; void Swi::CApplication::DisplayFileOnUninstallL(class Swi::CSisRegistryFileDescription const &)
-	?EmbeddedApplications@CApplication@Swi@@QBEABV?$RPointerArray@VCApplication@Swi@@@@XZ @ 12 NONAME ; class RPointerArray<class Swi::CApplication> const & Swi::CApplication::EmbeddedApplications(void) const
-	?FilesToAdd@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 13 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToAdd(void) const
-	?FilesToDisplayOnInstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 14 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToDisplayOnInstall(void) const
-	?FilesToDisplayOnUninstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 15 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToDisplayOnUninstall(void) const
-	?FilesToRemove@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 16 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToRemove(void) const
-	?FilesToRunOnInstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 17 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToRunOnInstall(void) const
-	?FilesToRunOnUninstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 18 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToRunOnUninstall(void) const
-	?FinalProgressBarValue@CPlan@Swi@@QBEJXZ @ 19 NONAME ; long Swi::CPlan::FinalProgressBarValue(void) const
-	?IsAugmentation@CApplication@Swi@@QBEHXZ @ 20 NONAME ; int Swi::CApplication::IsAugmentation(void) const
-	?IsInROM@CApplication@Swi@@QBEHXZ @ 21 NONAME ; int Swi::CApplication::IsInROM(void) const
-	?IsInstall@CApplication@Swi@@QBEHXZ @ 22 NONAME ; int Swi::CApplication::IsInstall(void) const
-	?IsPartialUpgrade@CApplication@Swi@@QBEHXZ @ 23 NONAME ; int Swi::CApplication::IsPartialUpgrade(void) const
-	?IsPreInstalledApp@CApplication@Swi@@QBEHXZ @ 24 NONAME ; int Swi::CApplication::IsPreInstalledApp(void) const
-	?IsPreInstalledPatch@CApplication@Swi@@QBEHXZ @ 25 NONAME ; int Swi::CApplication::IsPreInstalledPatch(void) const
-	?IsUninstall@CApplication@Swi@@QBEHXZ @ 26 NONAME ; int Swi::CApplication::IsUninstall(void) const
-	?IsUpgrade@CApplication@Swi@@QBEHXZ @ 27 NONAME ; int Swi::CApplication::IsUpgrade(void) const
-	?NewL@CApplication@Swi@@SAPAV12@XZ @ 28 NONAME ; class Swi::CApplication * Swi::CApplication::NewL(void)
-	?NewL@CPlan@Swi@@SAPAV12@XZ @ 29 NONAME ; class Swi::CPlan * Swi::CPlan::NewL(void)
-	?NewLC@CApplication@Swi@@SAPAV12@XZ @ 30 NONAME ; class Swi::CApplication * Swi::CApplication::NewLC(void)
-	?PackageL@CApplication@Swi@@QBEABVCSisRegistryPackage@2@XZ @ 31 NONAME ; class Swi::CSisRegistryPackage const & Swi::CApplication::PackageL(void) const
-	?Properties@CApplication@Swi@@QBEABV?$RArray@VTProperty@CApplication@Swi@@@@XZ @ 32 NONAME ; class RArray<class Swi::CApplication::TProperty> const & Swi::CApplication::Properties(void) const
-	?RemoveFileL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 33 NONAME ; void Swi::CApplication::RemoveFileL(class Swi::CSisRegistryFileDescription const &)
-	?RunFileOnInstallL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 34 NONAME ; void Swi::CApplication::RunFileOnInstallL(class Swi::Sis::CFileDescription const &, class TChar)
-	?RunFileOnUninstallL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 35 NONAME ; void Swi::CApplication::RunFileOnUninstallL(class Swi::CSisRegistryFileDescription const &)
-	?SetAppInfoL@CPlan@Swi@@QAEXABVTAppInfo@2@@Z @ 36 NONAME ; void Swi::CPlan::SetAppInfoL(class Swi::TAppInfo const &)
-	?SetApplication@CPlan@Swi@@UAEXPAVCApplication@2@@Z @ 37 NONAME ; void Swi::CPlan::SetApplication(class Swi::CApplication *)
-	?SetApplicationInformationL@CPlan@Swi@@QAEXABVTDesC16@@0ABVTVersion@@@Z @ 38 NONAME ; void Swi::CPlan::SetApplicationInformationL(class TDesC16 const &, class TDesC16 const &, class TVersion const &)
-	?SetAugmentation@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 39 NONAME ; void Swi::CApplication::SetAugmentation(class Swi::Sis::CController const &)
-	?SetController@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 40 NONAME ; void Swi::CApplication::SetController(class Swi::Sis::CController const &)
-	?SetController@CApplication@Swi@@QAEXVTUid@@@Z @ 41 NONAME ; void Swi::CApplication::SetController(class TUid)
-	?SetInROM@CApplication@Swi@@QAEXXZ @ 42 NONAME ; void Swi::CApplication::SetInROM(void)
-	?SetInstall@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 43 NONAME ; void Swi::CApplication::SetInstall(class Swi::Sis::CController const &)
-	?SetOptionsL@CUserSelections@Swi@@QAEXABV?$RArray@H@@@Z @ 44 NONAME ; void Swi::CUserSelections::SetOptionsL(class RArray<int> const &)
-	?SetPackageL@CApplication@Swi@@QAEXABVCSisRegistryPackage@2@@Z @ 45 NONAME ; void Swi::CApplication::SetPackageL(class Swi::CSisRegistryPackage const &)
-	?SetPartialUpgrade@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 46 NONAME ; void Swi::CApplication::SetPartialUpgrade(class Swi::Sis::CController const &)
-	?SetPreInstalledApp@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 47 NONAME ; void Swi::CApplication::SetPreInstalledApp(class Swi::Sis::CController const &)
-	?SetPreInstalledPatch@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 48 NONAME ; void Swi::CApplication::SetPreInstalledPatch(class Swi::Sis::CController const &)
-	?SetUninstallL@CApplication@Swi@@QAEXABVCSisRegistryPackage@2@@Z @ 49 NONAME ; void Swi::CApplication::SetUninstallL(class Swi::CSisRegistryPackage const &)
-	?SetUpgrade@CApplication@Swi@@QAEXABVCController@Sis@2@@Z @ 50 NONAME ; void Swi::CApplication::SetUpgrade(class Swi::Sis::CController const &)
-	?AddSisStubFileL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 51 NONAME ; void Swi::CApplication::AddSisStubFileL(class Swi::CSisRegistryFileDescription const &)
-	?CanPropagate@CApplication@Swi@@QBEHXZ @ 52 NONAME ; int Swi::CApplication::CanPropogate(void) const
-	?StubDrive@CApplication@Swi@@QBE?AVTChar@@XZ @ 53 NONAME ; class TChar Swi::CApplication::StubDrive(void) const
-	?SetPreInstalledApp@CApplication@Swi@@QAEXXZ @ 54 NONAME ; void Swi::CApplication::SetPreInstalledApp(void)
-	?SetPreInstalledPatch@CApplication@Swi@@QAEXXZ @ 55 NONAME ; void Swi::CApplication::SetPreInstalledPatch(void)
-	?RemoveFileL@CApplication@Swi@@QAEXABVTDesC16@@@Z @ 56 NONAME ; void Swi::CApplication::RemoveFileL(class TDesC16 const &)
-	?FilesToRunBeforeShutdown@CPlan@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 57 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CPlan::FilesToRunBeforeShutdown(void) const
-	?RunFilesBeforeShutdownL@CPlan@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 58 NONAME ; void Swi::CPlan::RunFilesBeforeShutdownL(class Swi::CSisRegistryFileDescription const &)
-	?IsInstallSuCertBased@CApplication@Swi@@QBEHXZ @ 59 NONAME ; int Swi::CApplication::IsInstallSuCertBased(void) const
-	?SetInstallSuCertBased@CApplication@Swi@@QAEXXZ @ 60 NONAME ; void Swi::CApplication::SetInstallSuCertBased(void)
-	?AddFileL@CApplication@Swi@@QAEXABVCSisRegistryFileDescription@2@@Z @ 61 NONAME ; void Swi::CApplication::AddFileL(class Swi::CSisRegistryFileDescription const &)
-	?FilesToSkipOnInstall@CApplication@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 62 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CApplication::FilesToSkipOnInstall(void) const
-	?SkipFileOnInstallL@CApplication@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@@Z @ 63 NONAME ; void Swi::CApplication::SkipFileOnInstallL(class Swi::Sis::CFileDescription const &, class TChar)
-	?SetDrmProtected@CApplication@Swi@@QAEXH@Z @ 64 NONAME ; void Swi::CApplication::SetDrmProtected(int)
-	?IsDrmProtected@CApplication@Swi@@QBEHXZ @ 65 NONAME ; int Swi::CApplication::IsDrmProtected(void) const
-	?FilesToRunAfterInstall@CPlan@Swi@@QBEABV?$RPointerArray@VCSisRegistryFileDescription@Swi@@@@XZ @ 66 NONAME ; class RPointerArray<class Swi::CSisRegistryFileDescription> const & Swi::CPlan::FilesToRunAfterInstall(void) const
-	?RunFileAfterInstallL@CPlan@Swi@@QAEXABVCFileDescription@Sis@2@VTChar@@H@Z @ 67 NONAME ; void Swi::CPlan::RunFileAfterInstallL(class Swi::Sis::CFileDescription const &, class TChar, int)
-	?AppArcRegFiles@CPlan@Swi@@QBEABV?$RPointerArray@VTDesC16@@@@XZ @ 68 NONAME ; class RPointerArray<class TDesC16> const & Swi::CPlan::AppArcRegFiles(void) const
-	?ContainsPlugins@CPlan@Swi@@QBEHXZ @ 69 NONAME ; int Swi::CPlan::ContainsPlugins(void) const
-	?SetContainsPlugins@CPlan@Swi@@QAEXH@Z @ 70 NONAME ; void Swi::CPlan::SetContainsPlugins(int)
-	?AddAppArcRegFileL@CPlan@Swi@@QAEXABVTDesC16@@@Z @ 71 NONAME ; void Swi::CPlan::AddAppArcRegFileL(class TDesC16 const &)
-	?ResetAppArcRegFiles@CPlan@Swi@@QAEXXZ @ 72 NONAME ; void Swi::CPlan::ResetAppArcRegFiles(void)
-	?CopyDeviceSupportedLanguagesL@CApplication@Swi@@QAEXABV?$RArray@H@@@Z @ 73 NONAME ; void Swi::CApplication::CopyDeviceSupportedLanguagesL(class RArray<int> const &)
-	?GetMatchingDeviceLanguages@CApplication@Swi@@QAEABV?$RArray@H@@XZ @ 74 NONAME ; class RArray<int> const & Swi::CApplication::GetMatchingDeviceLanguages(void)
-	?PopulateMatchingDeviceLanguagesL@CApplication@Swi@@QAEXH@Z @ 75 NONAME ; void Swi::CApplication::PopulateMatchingDeviceLanguagesL(int)
-	?IsDeviceMatchingLanguage@CApplication@Swi@@QBEHH@Z @ 76 NONAME ; int Swi::CApplication::IsDeviceMatchingLanguage(int) const
-	?SetSisHelper@CApplication@Swi@@QAEXABVRSisHelper@2@@Z @ 77 NONAME ; void Swi::CApplication::SetSisHelper(class Swi::RSisHelper const &)
-	?GetSisHelper@CApplication@Swi@@QAEAAVRSisHelper@2@XZ @ 78 NONAME ; class Swi::RSisHelper & Swi::CApplication::GetSisHelper(void)
-	?GetAffectedApps@CPlan@Swi@@QBEXAAV?$RArray@VTAppUpdateInfo@Swi@@@@@Z @ 79 NONAME ABSENT ; void Swi::CPlan::GetAffectedApps(class RArray<class Swi::TAppUpdateInfo> &) const
-	?ResetAffectedApps@CPlan@Swi@@QAEXXZ @ 80 NONAME ABSENT ; void Swi::CPlan::ResetAffectedApps(void)
-	?SetAffectedApps@CPlan@Swi@@QAEXAAV?$RArray@VTAppUpdateInfo@Swi@@@@@Z @ 81 NONAME ABSENT ; void Swi::CPlan::SetAffectedApps(class RArray<class Swi::TAppUpdateInfo> &)
-
--- a/installationservices/swi/bwins/sisregistryclient_v2U.def	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/bwins/sisregistryclient_v2U.def	Thu Jun 24 12:37:54 2010 +0300
@@ -197,4 +197,5 @@
 	?GetAppUidsForComponentL@RSisRegistrySession@Swi@@QAEXAAHAAV?$RArray@VTUid@@@@@Z @ 196 NONAME ; void Swi::RSisRegistrySession::GetAppUidsForComponentL(int &, class RArray<class TUid> &)
 	?GetComponentIdForPackageL@RSisRegistrySession@Swi@@QBEHABVTDesC16@@0@Z @ 197 NONAME ; int Swi::RSisRegistrySession::GetComponentIdForPackageL(class TDesC16 const &, class TDesC16 const &) const
 	?AddEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplicationRegistrationData@Usif@@ABVCSisRegistryPackage@2@@Z @ 198 NONAME ; void Swi::RSisRegistryWritableSession::AddEntryL(class Usif::CApplicationRegistrationData const &, class Swi::CSisRegistryPackage const &)
+	?SetComponentPresenceL@RSisRegistryWritableSession@Swi@@QAEXHH@Z @ 199 NONAME ; void Swi::RSisRegistryWritableSession::SetComponentPresenceL(int, int)
 
--- a/installationservices/swi/bwins/sisregistryclient_v2_legacyU.def	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/bwins/sisregistryclient_v2_legacyU.def	Thu Jun 24 12:37:54 2010 +0300
@@ -192,4 +192,10 @@
 	?GetEquivalentLanguagesL@RSisRegistryHelper@Swi@@QAEXW4TLanguage@@AAV?$RArray@W4TLanguage@@@@@Z @ 191 NONAME ; void Swi::RSisRegistryHelper::GetEquivalentLanguagesL(enum TLanguage, class RArray<enum TLanguage> &)
 	?GetMatchingSupportedLanguagesL@RSisRegistryWritableEntry@Swi@@QAEXAAV?$RArray@W4TLanguage@@@@@Z @ 192 NONAME ; void Swi::RSisRegistryWritableEntry::GetMatchingSupportedLanguagesL(class RArray<enum TLanguage> &)
 	?RegistryFilesL@RSisRegistryEntry@Swi@@QAEXAAV?$RPointerArray@VHBufC16@@@@@Z @ 193 NONAME ; void Swi::RSisRegistryEntry::RegistryFilesL(class RPointerArray<class HBufC16> &)
+	?GetComponentIdsForUidL@RSisRegistrySession@Swi@@QAEXAAVTUid@@AAV?$RArray@H@@@Z @ 194 NONAME ABSENT ; void Swi::RSisRegistrySession::GetComponentIdsForUidL(class TUid &, class RArray<int> &)
+	?UpdateEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplication@2@ABVCApplicationRegistrationData@Usif@@ABVCSisRegistryPackage@2@@Z @ 195 NONAME ABSENT ; void Swi::RSisRegistryWritableSession::UpdateEntryL(class Swi::CApplication const &, class Usif::CApplicationRegistrationData const &, class Swi::CSisRegistryPackage const &)
+	?GetAppUidsForComponentL@RSisRegistrySession@Swi@@QAEXAAHAAV?$RArray@VTUid@@@@@Z @ 196 NONAME ABSENT ; void Swi::RSisRegistrySession::GetAppUidsForComponentL(int &, class RArray<class TUid> &)
+	?GetComponentIdForPackageL@RSisRegistrySession@Swi@@QBEHABVTDesC16@@0@Z @ 197 NONAME ABSENT ; int Swi::RSisRegistrySession::GetComponentIdForPackageL(class TDesC16 const &, class TDesC16 const &) const
+	?AddEntryL@RSisRegistryWritableSession@Swi@@QAEXABVCApplicationRegistrationData@Usif@@ABVCSisRegistryPackage@2@@Z @ 198 NONAME ABSENT ; void Swi::RSisRegistryWritableSession::AddEntryL(class Usif::CApplicationRegistrationData const &, class Swi::CSisRegistryPackage const &)
+	?SetComponentPresenceL@RSisRegistryWritableSession@Swi@@QAEXHH@Z @ 199 NONAME ABSENT ; void Swi::RSisRegistryWritableSession::SetComponentPresenceL(int, int)
 
--- a/installationservices/swi/bwins/uissclientU.DEF	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/bwins/uissclientU.DEF	Thu Jun 24 12:37:54 2010 +0300
@@ -97,7 +97,7 @@
 	?UpdateProgressBarL@RUiHandler@Swi@@QAEXABVTAppInfo@2@H@Z @ 96 NONAME ; void Swi::RUiHandler::UpdateProgressBarL(class Swi::TAppInfo const &, int)
 	?NewL@CDisplayText@Swi@@SAPAV12@ABVTAppInfo@2@W4TFileTextOption@2@ABVTDesC8@@@Z @ 97 NONAME ; class Swi::CDisplayText * Swi::CDisplayText::NewL(class Swi::TAppInfo const &, enum Swi::TFileTextOption, class TDesC8 const &)
 	?NewLC@CDisplayText@Swi@@SAPAV12@ABVTAppInfo@2@W4TFileTextOption@2@ABVTDesC8@@@Z @ 98 NONAME ; class Swi::CDisplayText * Swi::CDisplayText::NewLC(class Swi::TAppInfo const &, enum Swi::TFileTextOption, class TDesC8 const &)
-	?UpdateProgressBarValueL@CProgressBarValuePublisher@Swi@@QAEXH@Z @ 99 NONAME ; void Swi::CProgressBarValuePublisher::UpdateProgressBarValueL(int)
+	?UpdateProgressBarValueL@CProgressBarValuePublisher@Swi@@QAEHH@Z @ 99 NONAME ; void Swi::CProgressBarValuePublisher::UpdateProgressBarValueL(int)
 	?SetFinalProgressBarValue@CProgressBarValuePublisher@Swi@@QAEXH@Z @ 100 NONAME ; void Swi::CProgressBarValuePublisher::SetFinalProgressBarValue(int)
 	?SetProgressBarValuePublisher@RUiHandler@Swi@@QAEXPAVCProgressBarValuePublisher@2@@Z @ 101 NONAME ; void Swi::RUiHandler::SetProgressBarValuePublisher(class Swi::CProgressBarValuePublisher *)
 	?NewL@CProgressBarValuePublisher@Swi@@SAPAV12@XZ @ 102 NONAME ; class Swi::CProgressBarValuePublisher * Swi::CProgressBarValuePublisher::NewL(void)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/eabi/plan_legacyU.def	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,89 @@
+EXPORTS
+	_ZN3Swi12CApplication10SetInstallERKNS_3Sis11CControllerE @ 1 NONAME
+	_ZN3Swi12CApplication10SetUpgradeERKNS_3Sis11CControllerE @ 2 NONAME
+	_ZN3Swi12CApplication11RemoveFileLERKNS_27CSisRegistryFileDescriptionE @ 3 NONAME
+	_ZN3Swi12CApplication11SetPackageLERKNS_19CSisRegistryPackageE @ 4 NONAME
+	_ZN3Swi12CApplication12AddPropertyLERKNS0_9TPropertyE @ 5 NONAME
+	_ZN3Swi12CApplication13SetUninstallLERKNS_19CSisRegistryPackageE @ 6 NONAME
+	_ZN3Swi12CApplication13SetControllerE4TUid @ 7 NONAME
+	_ZN3Swi12CApplication13SetControllerERKNS_3Sis11CControllerE @ 8 NONAME
+	_ZN3Swi12CApplication15SetAugmentationERKNS_3Sis11CControllerE @ 9 NONAME
+	_ZN3Swi12CApplication17RunFileOnInstallLERKNS_3Sis16CFileDescriptionE5TChar @ 10 NONAME
+	_ZN3Swi12CApplication17SetPartialUpgradeERKNS_3Sis11CControllerE @ 11 NONAME
+	_ZN3Swi12CApplication18SetPreInstalledAppERKNS_3Sis11CControllerE @ 12 NONAME
+	_ZN3Swi12CApplication19RunFileOnUninstallLERKNS_27CSisRegistryFileDescriptionE @ 13 NONAME
+	_ZN3Swi12CApplication20SetPreInstalledPatchERKNS_3Sis11CControllerE @ 14 NONAME
+	_ZN3Swi12CApplication21DisplayFileOnInstallLERKNS_3Sis16CFileDescriptionE5TChar @ 15 NONAME
+	_ZN3Swi12CApplication23AddEmbeddedApplicationLEPS0_ @ 16 NONAME
+	_ZN3Swi12CApplication23DisplayFileOnUninstallLERKNS_27CSisRegistryFileDescriptionE @ 17 NONAME
+	_ZN3Swi12CApplication4NewLEv @ 18 NONAME
+	_ZN3Swi12CApplication5NewLCEv @ 19 NONAME
+	_ZN3Swi12CApplication8AddFileLERKNS_3Sis16CFileDescriptionE5TChar @ 20 NONAME
+	_ZN3Swi12CApplication8SetInROMEv @ 21 NONAME
+	_ZN3Swi15CUserSelections11SetOptionsLERK6RArrayIiE @ 22 NONAME
+	_ZN3Swi5CPlan11SetAppInfoLERKNS_8TAppInfoE @ 23 NONAME
+	_ZN3Swi5CPlan14SetApplicationEPNS_12CApplicationE @ 24 NONAME
+	_ZN3Swi5CPlan25AddInstallFileForProgressEx @ 25 NONAME
+	_ZN3Swi5CPlan26SetApplicationInformationLERK7TDesC16S3_RK8TVersion @ 26 NONAME
+	_ZN3Swi5CPlan27AddUninstallFileForProgressEv @ 27 NONAME
+	_ZN3Swi5CPlan4NewLEv @ 28 NONAME
+	_ZN3Swi5CPlanD0Ev @ 29 NONAME
+	_ZN3Swi5CPlanD1Ev @ 30 NONAME
+	_ZN3Swi5CPlanD2Ev @ 31 NONAME
+	_ZNK3Swi12CApplication10FilesToAddEv @ 32 NONAME
+	_ZNK3Swi12CApplication10PropertiesEv @ 33 NONAME
+	_ZNK3Swi12CApplication11ControllerLEv @ 34 NONAME
+	_ZNK3Swi12CApplication11IsUninstallEv @ 35 NONAME
+	_ZNK3Swi12CApplication13FilesToRemoveEv @ 36 NONAME
+	_ZNK3Swi12CApplication14IsAugmentationEv @ 37 NONAME
+	_ZNK3Swi12CApplication16IsPartialUpgradeEv @ 38 NONAME
+	_ZNK3Swi12CApplication17IsPreInstalledAppEv @ 39 NONAME
+	_ZNK3Swi12CApplication19FilesToRunOnInstallEv @ 40 NONAME
+	_ZNK3Swi12CApplication19IsPreInstalledPatchEv @ 41 NONAME
+	_ZNK3Swi12CApplication20EmbeddedApplicationsEv @ 42 NONAME
+	_ZNK3Swi12CApplication21FilesToRunOnUninstallEv @ 43 NONAME
+	_ZNK3Swi12CApplication23FilesToDisplayOnInstallEv @ 44 NONAME
+	_ZNK3Swi12CApplication25FilesToDisplayOnUninstallEv @ 45 NONAME
+	_ZNK3Swi12CApplication7IsInROMEv @ 46 NONAME
+	_ZNK3Swi12CApplication8PackageLEv @ 47 NONAME
+	_ZNK3Swi12CApplication9IsInstallEv @ 48 NONAME
+	_ZNK3Swi12CApplication9IsUpgradeEv @ 49 NONAME
+	_ZNK3Swi5CPlan12ApplicationLEv @ 50 NONAME
+	_ZNK3Swi5CPlan21FinalProgressBarValueEv @ 51 NONAME
+	_ZNK3Swi5CPlan8AppInfoLEv @ 52 NONAME
+	_ZTIN3Swi12CApplicationE @ 53 NONAME ; #<TI>#
+	_ZTIN3Swi5CPlanE @ 54 NONAME ; #<TI>#
+	_ZTVN3Swi12CApplicationE @ 55 NONAME ; #<VT>#
+	_ZTVN3Swi5CPlanE @ 56 NONAME ; #<VT>#
+	_ZN3Swi12CApplication15AddSisStubFileLERKNS_27CSisRegistryFileDescriptionE @ 57 NONAME
+	_ZNK3Swi12CApplication12CanPropagateEv @ 58 NONAME
+	_ZNK3Swi12CApplication9StubDriveEv @ 59 NONAME
+	_ZN3Swi12CApplication18SetPreInstalledAppEv @ 60 NONAME
+	_ZN3Swi12CApplication20SetPreInstalledPatchEv @ 61 NONAME
+	_ZN3Swi12CApplication11RemoveFileLERK7TDesC16 @ 62 NONAME
+	_ZN3Swi5CPlan23RunFilesBeforeShutdownLERKNS_27CSisRegistryFileDescriptionE @ 63 NONAME
+	_ZNK3Swi5CPlan24FilesToRunBeforeShutdownEv @ 64 NONAME
+	_ZN3Swi12CApplication21SetInstallSuCertBasedEv @ 65 NONAME
+	_ZNK3Swi12CApplication20IsInstallSuCertBasedEv @ 66 NONAME
+	_ZN3Swi12CApplication18SkipFileOnInstallLERKNS_3Sis16CFileDescriptionE5TChar @ 67 NONAME
+	_ZN3Swi12CApplication8AddFileLERKNS_27CSisRegistryFileDescriptionE @ 68 NONAME
+	_ZNK3Swi12CApplication20FilesToSkipOnInstallEv @ 69 NONAME
+	_ZN3Swi12CApplication15SetDrmProtectedEi @ 70 NONAME
+	_ZNK3Swi12CApplication14IsDrmProtectedEv @ 71 NONAME
+	_ZN3Swi5CPlan19ResetAppArcRegFilesEv @ 72 NONAME
+	_ZN3Swi5CPlan20RunFileAfterInstallLERKNS_3Sis16CFileDescriptionE5TChari @ 73 NONAME
+	_ZNK3Swi5CPlan14AppArcRegFilesEv @ 74 NONAME
+	_ZNK3Swi5CPlan15ContainsPluginsEv @ 75 NONAME
+	_ZNK3Swi5CPlan22FilesToRunAfterInstallEv @ 76 NONAME
+	_ZN3Swi5CPlan17AddAppArcRegFileLERK7TDesC16 @ 77 NONAME
+	_ZN3Swi5CPlan18SetContainsPluginsEi @ 78 NONAME
+	_ZN3Swi12CApplication26GetMatchingDeviceLanguagesEv @ 79 NONAME
+	_ZN3Swi12CApplication29CopyDeviceSupportedLanguagesLERK6RArrayIiE @ 80 NONAME
+	_ZN3Swi12CApplication32PopulateMatchingDeviceLanguagesLEi @ 81 NONAME
+	_ZNK3Swi12CApplication24IsDeviceMatchingLanguageEi @ 82 NONAME
+	_ZN3Swi12CApplication12SetSisHelperERKNS_10RSisHelperE @ 83 NONAME
+	_ZN3Swi12CApplication12GetSisHelperEv @ 84 NONAME
+	_ZN3Swi5CPlan15SetAffectedAppsER6RArrayINS_14TAppUpdateInfoEE @ 85 NONAME ABSENT
+	_ZN3Swi5CPlan17ResetAffectedAppsEv @ 86 NONAME ABSENT
+	_ZNK3Swi5CPlan15GetAffectedAppsER6RArrayINS_14TAppUpdateInfoEE @ 87 NONAME ABSENT
+	
--- a/installationservices/swi/eabi/plan_legacyu.def	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-EXPORTS
-	_ZN3Swi12CApplication10SetInstallERKNS_3Sis11CControllerE @ 1 NONAME
-	_ZN3Swi12CApplication10SetUpgradeERKNS_3Sis11CControllerE @ 2 NONAME
-	_ZN3Swi12CApplication11RemoveFileLERKNS_27CSisRegistryFileDescriptionE @ 3 NONAME
-	_ZN3Swi12CApplication11SetPackageLERKNS_19CSisRegistryPackageE @ 4 NONAME
-	_ZN3Swi12CApplication12AddPropertyLERKNS0_9TPropertyE @ 5 NONAME
-	_ZN3Swi12CApplication13SetUninstallLERKNS_19CSisRegistryPackageE @ 6 NONAME
-	_ZN3Swi12CApplication13SetControllerE4TUid @ 7 NONAME
-	_ZN3Swi12CApplication13SetControllerERKNS_3Sis11CControllerE @ 8 NONAME
-	_ZN3Swi12CApplication15SetAugmentationERKNS_3Sis11CControllerE @ 9 NONAME
-	_ZN3Swi12CApplication17RunFileOnInstallLERKNS_3Sis16CFileDescriptionE5TChar @ 10 NONAME
-	_ZN3Swi12CApplication17SetPartialUpgradeERKNS_3Sis11CControllerE @ 11 NONAME
-	_ZN3Swi12CApplication18SetPreInstalledAppERKNS_3Sis11CControllerE @ 12 NONAME
-	_ZN3Swi12CApplication19RunFileOnUninstallLERKNS_27CSisRegistryFileDescriptionE @ 13 NONAME
-	_ZN3Swi12CApplication20SetPreInstalledPatchERKNS_3Sis11CControllerE @ 14 NONAME
-	_ZN3Swi12CApplication21DisplayFileOnInstallLERKNS_3Sis16CFileDescriptionE5TChar @ 15 NONAME
-	_ZN3Swi12CApplication23AddEmbeddedApplicationLEPS0_ @ 16 NONAME
-	_ZN3Swi12CApplication23DisplayFileOnUninstallLERKNS_27CSisRegistryFileDescriptionE @ 17 NONAME
-	_ZN3Swi12CApplication4NewLEv @ 18 NONAME
-	_ZN3Swi12CApplication5NewLCEv @ 19 NONAME
-	_ZN3Swi12CApplication8AddFileLERKNS_3Sis16CFileDescriptionE5TChar @ 20 NONAME
-	_ZN3Swi12CApplication8SetInROMEv @ 21 NONAME
-	_ZN3Swi15CUserSelections11SetOptionsLERK6RArrayIiE @ 22 NONAME
-	_ZN3Swi5CPlan11SetAppInfoLERKNS_8TAppInfoE @ 23 NONAME
-	_ZN3Swi5CPlan14SetApplicationEPNS_12CApplicationE @ 24 NONAME
-	_ZN3Swi5CPlan25AddInstallFileForProgressEx @ 25 NONAME
-	_ZN3Swi5CPlan26SetApplicationInformationLERK7TDesC16S3_RK8TVersion @ 26 NONAME
-	_ZN3Swi5CPlan27AddUninstallFileForProgressEv @ 27 NONAME
-	_ZN3Swi5CPlan4NewLEv @ 28 NONAME
-	_ZN3Swi5CPlanD0Ev @ 29 NONAME
-	_ZN3Swi5CPlanD1Ev @ 30 NONAME
-	_ZN3Swi5CPlanD2Ev @ 31 NONAME
-	_ZNK3Swi12CApplication10FilesToAddEv @ 32 NONAME
-	_ZNK3Swi12CApplication10PropertiesEv @ 33 NONAME
-	_ZNK3Swi12CApplication11ControllerLEv @ 34 NONAME
-	_ZNK3Swi12CApplication11IsUninstallEv @ 35 NONAME
-	_ZNK3Swi12CApplication13FilesToRemoveEv @ 36 NONAME
-	_ZNK3Swi12CApplication14IsAugmentationEv @ 37 NONAME
-	_ZNK3Swi12CApplication16IsPartialUpgradeEv @ 38 NONAME
-	_ZNK3Swi12CApplication17IsPreInstalledAppEv @ 39 NONAME
-	_ZNK3Swi12CApplication19FilesToRunOnInstallEv @ 40 NONAME
-	_ZNK3Swi12CApplication19IsPreInstalledPatchEv @ 41 NONAME
-	_ZNK3Swi12CApplication20EmbeddedApplicationsEv @ 42 NONAME
-	_ZNK3Swi12CApplication21FilesToRunOnUninstallEv @ 43 NONAME
-	_ZNK3Swi12CApplication23FilesToDisplayOnInstallEv @ 44 NONAME
-	_ZNK3Swi12CApplication25FilesToDisplayOnUninstallEv @ 45 NONAME
-	_ZNK3Swi12CApplication7IsInROMEv @ 46 NONAME
-	_ZNK3Swi12CApplication8PackageLEv @ 47 NONAME
-	_ZNK3Swi12CApplication9IsInstallEv @ 48 NONAME
-	_ZNK3Swi12CApplication9IsUpgradeEv @ 49 NONAME
-	_ZNK3Swi5CPlan12ApplicationLEv @ 50 NONAME
-	_ZNK3Swi5CPlan21FinalProgressBarValueEv @ 51 NONAME
-	_ZNK3Swi5CPlan8AppInfoLEv @ 52 NONAME
-	_ZTIN3Swi12CApplicationE @ 53 NONAME ; #<TI>#
-	_ZTIN3Swi5CPlanE @ 54 NONAME ; #<TI>#
-	_ZTVN3Swi12CApplicationE @ 55 NONAME ; #<VT>#
-	_ZTVN3Swi5CPlanE @ 56 NONAME ; #<VT>#
-	_ZN3Swi12CApplication15AddSisStubFileLERKNS_27CSisRegistryFileDescriptionE @ 57 NONAME
-	_ZNK3Swi12CApplication12CanPropagateEv @ 58 NONAME
-	_ZNK3Swi12CApplication9StubDriveEv @ 59 NONAME
-	_ZN3Swi12CApplication18SetPreInstalledAppEv @ 60 NONAME
-	_ZN3Swi12CApplication20SetPreInstalledPatchEv @ 61 NONAME
-	_ZN3Swi12CApplication11RemoveFileLERK7TDesC16 @ 62 NONAME
-	_ZN3Swi5CPlan23RunFilesBeforeShutdownLERKNS_27CSisRegistryFileDescriptionE @ 63 NONAME
-	_ZNK3Swi5CPlan24FilesToRunBeforeShutdownEv @ 64 NONAME
-	_ZN3Swi12CApplication21SetInstallSuCertBasedEv @ 65 NONAME
-	_ZNK3Swi12CApplication20IsInstallSuCertBasedEv @ 66 NONAME
-	_ZN3Swi12CApplication18SkipFileOnInstallLERKNS_3Sis16CFileDescriptionE5TChar @ 67 NONAME
-	_ZN3Swi12CApplication8AddFileLERKNS_27CSisRegistryFileDescriptionE @ 68 NONAME
-	_ZNK3Swi12CApplication20FilesToSkipOnInstallEv @ 69 NONAME
-	_ZN3Swi12CApplication15SetDrmProtectedEi @ 70 NONAME
-	_ZNK3Swi12CApplication14IsDrmProtectedEv @ 71 NONAME
-	_ZN3Swi5CPlan19ResetAppArcRegFilesEv @ 72 NONAME
-	_ZN3Swi5CPlan20RunFileAfterInstallLERKNS_3Sis16CFileDescriptionE5TChari @ 73 NONAME
-	_ZNK3Swi5CPlan14AppArcRegFilesEv @ 74 NONAME
-	_ZNK3Swi5CPlan15ContainsPluginsEv @ 75 NONAME
-	_ZNK3Swi5CPlan22FilesToRunAfterInstallEv @ 76 NONAME
-	_ZN3Swi5CPlan17AddAppArcRegFileLERK7TDesC16 @ 77 NONAME
-	_ZN3Swi5CPlan18SetContainsPluginsEi @ 78 NONAME
-	_ZN3Swi12CApplication26GetMatchingDeviceLanguagesEv @ 79 NONAME
-	_ZN3Swi12CApplication29CopyDeviceSupportedLanguagesLERK6RArrayIiE @ 80 NONAME
-	_ZN3Swi12CApplication32PopulateMatchingDeviceLanguagesLEi @ 81 NONAME
-	_ZNK3Swi12CApplication24IsDeviceMatchingLanguageEi @ 82 NONAME
-	_ZN3Swi12CApplication12SetSisHelperERKNS_10RSisHelperE @ 83 NONAME
-	_ZN3Swi12CApplication12GetSisHelperEv @ 84 NONAME
-	_ZN3Swi5CPlan15SetAffectedAppsER6RArrayINS_14TAppUpdateInfoEE @ 85 NONAME ABSENT
-	_ZN3Swi5CPlan17ResetAffectedAppsEv @ 86 NONAME ABSENT
-	_ZNK3Swi5CPlan15GetAffectedAppsER6RArrayINS_14TAppUpdateInfoEE @ 87 NONAME ABSENT
-	
--- a/installationservices/swi/eabi/sisregistryclient_v2U.def	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/eabi/sisregistryclient_v2U.def	Thu Jun 24 12:37:54 2010 +0300
@@ -220,4 +220,5 @@
 	_ZN3Swi27RSisRegistryWritableSession12UpdateEntryLERKNS_12CApplicationERKN4Usif28CApplicationRegistrationDataERKNS_19CSisRegistryPackageE @ 219 NONAME
 	_ZN3Swi27RSisRegistryWritableSession9AddEntryLERKN4Usif28CApplicationRegistrationDataERKNS_19CSisRegistryPackageE @ 220 NONAME
 	_ZNK3Swi19RSisRegistrySession25GetComponentIdForPackageLERK7TDesC16S3_ @ 221 NONAME
+	_ZN3Swi27RSisRegistryWritableSession21SetComponentPresenceLEii @ 222 NONAME
 
--- a/installationservices/swi/eabi/sisregistryclient_v2_legacyU.def	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/eabi/sisregistryclient_v2_legacyU.def	Thu Jun 24 12:37:54 2010 +0300
@@ -215,4 +215,10 @@
 	_ZN3Swi18RSisRegistryHelperC2Ev @ 214 NONAME
 	_ZN3Swi25RSisRegistryWritableEntry30GetMatchingSupportedLanguagesLER6RArrayI9TLanguageE @ 215 NONAME
 	_ZN3Swi17RSisRegistryEntry14RegistryFilesLER13RPointerArrayI7HBufC16E @ 216 NONAME
+	_ZN3Swi19RSisRegistrySession22GetComponentIdsForUidLER4TUidR6RArrayIiE @ 217 NONAME ABSENT
+	_ZN3Swi19RSisRegistrySession23GetAppUidsForComponentLERiR6RArrayI4TUidE @ 218 NONAME ABSENT
+	_ZN3Swi27RSisRegistryWritableSession12UpdateEntryLERKNS_12CApplicationERKN4Usif28CApplicationRegistrationDataERKNS_19CSisRegistryPackageE @ 219 NONAME ABSENT
+	_ZN3Swi27RSisRegistryWritableSession9AddEntryLERKN4Usif28CApplicationRegistrationDataERKNS_19CSisRegistryPackageE @ 220 NONAME ABSENT
+	_ZNK3Swi19RSisRegistrySession25GetComponentIdForPackageLERK7TDesC16S3_ @ 221 NONAME ABSENT
+	_ZN3Swi27RSisRegistryWritableSession21SetComponentPresenceLEii @ 222 NONAME ABSENT
 
--- a/installationservices/swi/inc/progressbar.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/inc/progressbar.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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 the License "Eclipse Public License v1.0"
@@ -31,11 +31,14 @@
 	const static TInt KProgressBarUninstallAmount=1;
 	
 	/// How many bytes to copy before updating the progress bar by one increment
-	const static TInt KProgressBarInstallChunkSize=32767;
+	const static TInt KProgressBarInstallChunkSize=1048576;  //1MB
 
 	/// The extra increment we add onto the end to make there always be some progress.
 	const static TInt KProgressBarEndIncrement=1;
 	
+	/// Percentage of completion required before updating the progress bar.
+    const static TInt KProgressBarIncrement=1;
+
 	/**
 	 * Utility function to get how much to update the progress bar for a certain
 	 * size of file copied. The smallest increment is KProgressBarEndIncrement since we always want to show that 
--- a/installationservices/swi/inc/sisregistrywritablesession.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/inc/sisregistrywritablesession.h	Thu Jun 24 12:37:54 2010 +0300
@@ -180,6 +180,18 @@
 	*
 	*/
 	IMPORT_C void DeactivateComponentL(TComponentId aComponentId);
+	
+	/**
+    * Sets the component presence property for a given component id (If a package contains files 
+    * installed to a removable media, the package is considered as not fully present if the same
+    * media is not present. This property will be used to filter out applications, that are not
+    * fully present, from being diaplayed in the AppLib Menu.).
+    *
+    * @param aComponentId       Identifies a installed component
+    * @param aState             True, if the component is fully present, else False.
+    *
+    */
+	IMPORT_C void SetComponentPresenceL(TComponentId aComponentId, TBool aState);
 
 	/**
 	 * Adds a registry entry representing a package containing a Layered Execution Environment
--- a/installationservices/swi/inc/swi/sisuihandler.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/inc/swi/sisuihandler.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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 the License "Eclipse Public License v1.0"
@@ -835,7 +835,7 @@
 		IMPORT_C void SetFinalProgressBarValue(TInt aValue);
 		
 		/** Updates the value of the progress bar value property by adding the given value to the current value. */
-		IMPORT_C void UpdateProgressBarValueL(TInt aValue);
+		IMPORT_C TInt UpdateProgressBarValueL(TInt aValue);
 	
 	private:
 		CProgressBarValuePublisher();
@@ -844,6 +844,8 @@
 	private:
 		TInt iCurrentProgressValue;
 		TInt iFinalProgressValue;
+		TInt iLastPercentCompletion;
+		TInt iLastProgressValue;
 		};
 #endif
 
--- a/installationservices/swi/source/backuprestore/backupsession.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/backuprestore/backupsession.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -216,7 +216,7 @@
 
 			// Appending ELangNone at the end as marker for the end of the language IDs
 			// as we also append the language ID's from other Augmentations
-			matchingSupportedLanguagesArray.Append(ELangNone);
+			matchingSupportedLanguagesArray.AppendL(ELangNone);
 
 			CleanupStack::PopAndDestroy(2, &augmentation);
 			}
--- a/installationservices/swi/source/sisregistry/client/sisregistrywritablesession.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/sisregistry/client/sisregistrywritablesession.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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 the License "Eclipse Public License v1.0"
@@ -395,4 +395,11 @@
 	TInt returnCode = SendReceive(ESetComponentState, TIpcArgs(&packageComponentId, &packageState));
 	User::LeaveIfError(returnCode);
 	}
+
+EXPORT_C void RSisRegistryWritableSession::SetComponentPresenceL(TComponentId aComponentId, TBool aState)
+    {
+    TPckgC<TComponentId> componentId(aComponentId);
+    TPckgC<TBool> componentPresence(aState);   
+    User::LeaveIfError(SendReceive(ESetComponentPresence, TIpcArgs(&componentId, &componentPresence)));
+    }
 #endif
--- a/installationservices/swi/source/sisregistry/common/sisregistryclientserver.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/sisregistry/common/sisregistryclientserver.h	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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 the License "Eclipse Public License v1.0"
@@ -74,6 +74,8 @@
 	EAddDrive,
 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	ERemoveDrive,
+#else
+	ESetComponentPresence,
 #endif
 
 	// all clients
--- a/installationservices/swi/source/sisregistry/server/scrhelperutil.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/scrhelperutil.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -423,7 +423,7 @@
 		TPtrC fileTargetPtr(fileTarget);
 		if (filenamesArray.SpecificFindInOrder(fileTargetPtr, descriptorsComparator, EArrayFindMode_First) != KErrNotFound)
 			continue; // Skip duplicates
-		filenamesArray.InsertInOrder(fileTargetPtr, descriptorsComparator);
+		filenamesArray.InsertInOrderL(fileTargetPtr, descriptorsComparator);
 		
 		if (IsWildcardFile(fileTarget))
 			{
--- a/installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserversession.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -483,7 +483,10 @@
  		break;	
 	case ESetComponentState:
  		SetComponentStateL(aMessage);
- 		break;	
+ 		break;
+	case ESetComponentPresence:
+	    SetComponentPresenceL(aMessage);
+	    break;
 	case EIsFileRegistered:
  		IsFileRegisteredL(aMessage);
  		break;			
@@ -1061,6 +1064,41 @@
 	CleanupStack::PopAndDestroy();
 	}
 
+TInt CSisRegistrySession::GetStubFilesL(const TDesC& aFileName, RPointerArray<HBufC>& aFileNames)
+    {
+    // Read the ROM stub controller
+    CFileSisDataProvider* fileProvider = CFileSisDataProvider::NewLC(iFs, aFileName);
+    Swi::Sis::CController* stubController = NULL;
+    TRAPD(errCode, stubController = Swi::Sis::CController::NewL(*fileProvider));
+    if (errCode != KErrNone)
+        {
+        // Ignore the broken stub file under the ROM stub directory.
+        DEBUG_PRINTF2(_L8("Sis Registry Server - Failed to read the stub controller. Error code %d."), errCode);
+        CleanupStack::PopAndDestroy(fileProvider);
+        return errCode;
+        }
+    CleanupStack::PushL(stubController);
+    const RPointerArray<Sis::CFileDescription>& depArray = stubController->InstallBlock().FileDescriptions();
+    // Get as many number of files as possible that can be accomodate in client allocated buffer.
+    TInt totalDepArrayCount = depArray.Count();
+    // Populate the files in to a temporary array.
+    for(TInt fileCount = 0; fileCount < totalDepArrayCount; ++fileCount )
+        {
+        // Only create a TPtrC when we know we have space available
+        HBufC* fileName = depArray[fileCount]->Target().Data().AllocL();
+        // Adding drive letter of rom if not mentioned in stub sis file
+        TPtr a=fileName->Des();
+        if (a[0] == '!')
+            a[0] = 'z';                        
+                                       
+		CleanupStack::PushL(fileName);
+		aFileNames.AppendL(fileName);
+		CleanupStack::Pop(fileName);
+		}
+    CleanupStack::PopAndDestroy(2, fileProvider);
+    return KErrNone;
+    }
+
 TInt CSisRegistrySession::GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames)
     {
     TBool stubNotFound(ETrue);
@@ -1488,6 +1526,16 @@
 	aMessage.Complete(KErrNone);
 	}
 
+void CSisRegistrySession::SetComponentPresenceL(const RMessage2& aMessage)
+    {
+    TPckgBuf<Usif::TComponentId> componentId;
+    TPckgBuf<TBool> componentPresence;
+    aMessage.ReadL(EIpcArgument0, componentId, 0);
+    aMessage.ReadL(EIpcArgument1, componentPresence, 0);
+    iScrSession.SetIsComponentPresentL(componentId(), componentPresence());
+    aMessage.Complete(KErrNone);
+    }
+
 // Helper methods
 
 TBool CSisRegistrySession::IsRegisteredL(const TUid& aUid)
@@ -1547,6 +1595,13 @@
 	return ScrHelperUtil::IsUidAndNamePresentL(iScrSession, aUid, aPackageName);
 	}
 
+
+void CSisRegistrySession::RemoveEntryL(const TComponentId aCompId)
+    {
+    iScrSession.DeleteApplicationEntriesL(aCompId);
+    iScrSession.DeleteComponentL(aCompId);
+    }
+
 void CSisRegistrySession::RemoveEntryL(const CSisRegistryPackage& aPackage)
 	{
 	DEBUG_PRINTF4(_L("Sis Registry Server - Removing the entry from Software Component Registry of package : UID: 0x%08x, Name: %S, Vendor: %S ."),
@@ -1561,8 +1616,8 @@
 			aPackage.Uid().iUid, &aPackage.Name(), &aPackage.Vendor());
 		User::Leave(KErrNotFound);
 		}
-	iScrSession.DeleteApplicationEntriesL(compId);
-	iScrSession.DeleteComponentL(compId);
+	
+	RemoveEntryL(compId);
 	}
 
 void CSisRegistrySession::RemoveCleanupInfrastructureL(const CSisRegistryObject& aObject, RStsSession& aStsSession)
@@ -1744,14 +1799,11 @@
 	return compId;
 	}
 	
-void CSisRegistrySession::AddAppsFromStubL(TComponentId aCompId, TUid aUid)
+void CSisRegistrySession::AddAppsFromStubL(TComponentId aCompId, const TDesC& aFileName)
     {
-    TInt startingFileNo = 0;
-    TInt fileCount = 0;
     RPointerArray<HBufC> romFiles;
     CleanupResetAndDestroy<RPointerArray<HBufC> >::PushL(romFiles);
-    TInt ret = GetStubFileInfoL(aUid, EGetFiles, startingFileNo, fileCount, romFiles);
-
+    TInt ret = GetStubFilesL(aFileName, romFiles);
     RPointerArray<HBufC> apparcRegFiles;
     CleanupResetAndDestroy<RPointerArray<HBufC> >::PushL(apparcRegFiles);
        
@@ -2552,16 +2604,9 @@
             // If the component being removed has registered software types, unregister them now.
             // This operation deletes MIME types mapping from AppArc and therefore is not transactional.
             UnregisterSoftwareTypesL(compId);
-
-            CSisRegistryObject* object = CSisRegistryObject::NewLC();
-            ScrHelperUtil::GetComponentL(iScrSession, compId, *object);
+                
+            RemoveEntryL(compId);           
 
-            DEBUG_PRINTF4(_L("Sis Registry Server - Removing package registry entry for UID: %08x, Name: %S, Vendor %S."),
-                object->Uid().iUid, &(object->Name()), &(object->Vendor()));
-                
-            RemoveEntryL(*object);           
-
-            CleanupStack::PopAndDestroy();
             overwriteRegEntry = ETrue;
 	        }
 	    }
@@ -2571,7 +2616,7 @@
 		{
 		// update cache or just call refresh
 		TComponentId compId = AddEntryL(*object, Usif::EScrCompHidden); // EScrCompHidden is supplied not to create any log for the ROM controller on the SCR side.
-		AddAppsFromStubL(compId, object->Uid());
+		AddAppsFromStubL(compId, aFileName);
 		
 		// store a copy of the controller
 		HBufC* name = SisRegistryUtil::BuildControllerFileNameLC(object->Uid(), object->Index(),
--- a/installationservices/swi/source/sisregistry/server/sisregistryserversession.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/sisregistry/server/sisregistryserversession.h	Thu Jun 24 12:37:54 2010 +0300
@@ -161,12 +161,14 @@
 
 	//sets a particular component's state to the requested value
 	void SetComponentStateL(const RMessage2& aMessage);
+	void SetComponentPresenceL(const RMessage2& aMessage);
 
 	// Helper methods
 	TBool IsRegisteredL(const TUid& aUid);
 	TBool IsRegisteredL(const CHashContainer& aHashContainer);
 	TBool IsRegisteredL(const TUid& aUid, const TDesC& aPackageName);
 
+	void RemoveEntryL(const Usif::TComponentId aCompId);
 	void RemoveEntryL(const CSisRegistryPackage& aPackage);
 	void RemoveCleanupInfrastructureL(const CSisRegistryObject& aObject, Usif::RStsSession& aStsSession);
 	TBool RemoveControllerL(const CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, TInt aDrive);
@@ -174,7 +176,7 @@
 	TUint FixedDrivesL() const;
 	Usif::TComponentId AddRegistryEntryL(CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, const TDesC8& aController, Usif::TScrComponentOperationType aOpType);
 	Usif::TComponentId AddEntryL(CSisRegistryObject& aObject, Usif::TScrComponentOperationType aOpType);
-	void AddAppsFromStubL(Usif::TComponentId aCompId, TUid aUid);
+	void AddAppsFromStubL(Usif::TComponentId aCompId, const TDesC& aFileName);
 	void AddControllerL(const CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, const TDesC8& aBuffer, const TInt aDrive);
 	void AddCleanupInfrastructureL(CSisRegistryObject& aObject, Usif::RStsSession& aStsSession, const TDesC8& aControllerBuffer);
 	TUint CreateSubsessionHandleL(const TUid& aPackageUid);
@@ -202,6 +204,7 @@
 	TBool IsFirmwareUpdatedL();	 
 	void  UpdateRecentFWVersionL(); 
 	TInt GetStubFileInfoL(TUid aUid, TStubExtractionMode aMode, TInt aStartingFileNo, TInt& aFileCount, RPointerArray<HBufC>& aFileNames);
+	TInt GetStubFilesL(const TDesC& aFileName, RPointerArray<HBufC>& aFileNames);
 
 private:
     friend class CSisRevocationManager;
--- a/installationservices/swi/source/swis/server/installationplanner.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/swis/server/installationplanner.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1150,27 +1150,27 @@
             CleanupStack::PushL(targetFileName);
             TParsePtrC filename(*targetFileName);	    	   
             TBool isApparcFile = EFalse;
-            TBuf<10> extension = TParsePtrC(*targetFileName).Ext();
+            HBufC* extension = TParsePtrC(*targetFileName).Ext().AllocLC();
             
-            if(!extension.Compare(KApparcRegistrationFileExtn)) // for resource files *_reg.rsc or *.rsc
+            if(!extension->Compare(KApparcRegistrationFileExtn)) // for resource files *_reg.rsc or *.rsc
                 {
                 isApparcFile = ETrue;
                 }
             else
                 {
-                TInt extnLength = extension.Length();
+                TInt extnLength = extension->Length();
                 HBufC* extn;
                 if(extnLength == 4)                            //for localizable resource files with extn like .r01
                     {
-                    extn = extension.Right(2).AllocLC();
+                    extn = extension->Right(2).AllocLC();
                     }
                 else if(extnLength == 5)
                     {
-                    extn = extension.Right(3).AllocLC();       //for localizable resource files with extn like .r101	            
+                    extn = extension->Right(3).AllocLC();       //for localizable resource files with extn like .r101	            
                     }
                 else
                     {   
-                    CleanupStack::PopAndDestroy(targetFileName);
+                    CleanupStack::PopAndDestroy(2, targetFileName);  //extension
                     continue;
                     }
     
@@ -1193,7 +1193,7 @@
                 listOfFilesToBeExtracted.AppendL(listOfFilesToBeAdded[i]);
                 totalApplicationDataSize += listOfFilesToBeAdded[i]->UncompressedLength();
                 }	    
-            CleanupStack::PopAndDestroy(targetFileName);  	    
+            CleanupStack::PopAndDestroy(2, targetFileName);  //extension	    
             }                   
             
         //Here we do extraction of rsc files ,before extracting files we check if there is an enough space on the disk(C drive)
@@ -1289,9 +1289,8 @@
                 }
             
             CleanupStack::PushL(appData);
-            TUid appuid = appData->AppUid();
-            HBufC* appname = appData->AppFile().AllocLC();
-            TBuf<100> finalAppName = TParsePtrC(*appname).NameAndExt();
+            TUid appuid = appData->AppUid();            
+            HBufC* finalAppName = TParsePtrC(appData->AppFile()).NameAndExt().AllocLC();
             const RPointerArray<Usif::CLocalizableAppInfo> aLocalizableAppInfoList = appData->LocalizableAppInfoList();
             HBufC* groupName = NULL;
             HBufC* iconFileName = NULL;
@@ -1306,7 +1305,7 @@
                     DEBUG_PRINTF2(_L("Application Group Name %S"), groupName);
                     }
                 //Since locale does not exists no need to extract, create CNativeApplicationInfo without iconFileName
-                applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, groupName?*groupName:_L(""), _L(""));  
+                applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, *finalAppName, groupName?*groupName:_L(""), _L(""));  
                 }
             else
                 {
@@ -1325,13 +1324,12 @@
                         iconFileName = captionAndIconInfo->IconFileName().AllocLC();
                     
                     if(iconFileName != NULL)
-                        {
-                        TBuf<100> finalIconFileName;
-                        finalIconFileName = TParsePtrC(*iconFileName).NameAndExt();
+                        {                        
+                        HBufC* finalIconFileName = TParsePtrC(*iconFileName).NameAndExt().AllocLC();
                         
                         _LIT(KIconFileNameFmt, "%c:\\resource\\install\\icon\\0x%08x\\%S");     // Applicaiton Uid
                         iconFile.Format(KIconFileNameFmt, TUint(systemDrive), appuid.iUid,
-                        &finalIconFileName);
+                        finalIconFileName);
                         
                         TInt err = fs.MkDirAll(iconFile);
                         if (err!= KErrNone && err != KErrAlreadyExists)
@@ -1341,7 +1339,7 @@
                         for(TInt k = 0; k < listOfFilesToBeAdded.Count() ; k++)
                             {                      
                             currentFileDescription = listOfFilesToBeAdded[k];
-                            if(TParsePtrC(currentFileDescription->Target()).NameAndExt().Compare(finalIconFileName))
+                            if(TParsePtrC(currentFileDescription->Target()).NameAndExt().Compare(*finalIconFileName))
                                 {
                                 break;
                                 }
@@ -1386,22 +1384,22 @@
                         User::LeaveIfError(iSisHelper.ExtractFileL(fs, tempIconFile, listOfFilesToBeAdded[i]->Index(), application->AbsoluteDataIndex(), UiHandler())); 	              
                         DEBUG_PRINTF(_L8("Finished extracting Icon file successfuly"));
                         //After copy the available disk space is reduced
-                        currentAvailableDriveSpace -= fileSize;
-                        CleanupStack::PopAndDestroy(2,iconFileName);  //file,iconFileSize
+                        currentAvailableDriveSpace -= fileSize;                        
+                        CleanupStack::PopAndDestroy(3,iconFileName);  //file,finalIconFileName,iconFileSize
                         
                         //Create CNativeApplicationInfo with iconFileName
-                        applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, groupName?*groupName:_L(""), iconFile);                  
+                        applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, *finalAppName, groupName?*groupName:_L(""), iconFile);                                          
                         }
                     else
                         {
                         //Since iconFileName does not exists no need to extract, create CNativeApplicationInfo without iconName
-                        applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, finalAppName, groupName?*groupName:_L(""), _L(""));  
+                        applicationInfo = Swi::CNativeComponentInfo::CNativeApplicationInfo::NewLC(appuid, *finalAppName, groupName?*groupName:_L(""), _L(""));  
                         }
                     }
                 }	    
 
             DEBUG_PRINTF2(_L("Application Uid 0x%08x"), appuid);
-            DEBUG_PRINTF2(_L("Application Name %S"), appname);
+            DEBUG_PRINTF2(_L("Application Name %S"), finalAppName);
             if(groupName)
                 DEBUG_PRINTF2(_L("Application Group Name %S"), groupName);
             if(iconFile.Length())
@@ -1410,9 +1408,9 @@
             const_cast <Sis::CController&>(aController).AddApplicationInfoL(applicationInfo);
             CleanupStack::Pop(applicationInfo);
             if(groupName)
-                CleanupStack::PopAndDestroy(3, appData);	//groupName,appName,appData
+                CleanupStack::PopAndDestroy(3, appData);	//groupName,finalAppName,appData
             else
-                CleanupStack::PopAndDestroy(2, appData);    //appName,appData
+                CleanupStack::PopAndDestroy(2, appData);    //finalAppName,appData
             languages.Close();	    
             }
               
--- a/installationservices/swi/source/swis/server/installationprocessor.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/swis/server/installationprocessor.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1236,7 +1236,7 @@
 	//if there are reg files in the package or if its an upgrade (in case of SA (with app) over SA(with no app))
 	if(iApparcRegFilesForParsing.Count() != 0 || application.IsUpgrade())
 	    {
-	    //Create the list of Application Uids which are affected by the Restore                           
+	    //Create the list of Application Uids which are affected by the Installation                           
         RArray<Usif::TComponentId> componentIds;
         CleanupClosePushL(componentIds);
         RArray<TUid> newAppUids;    
@@ -1276,11 +1276,33 @@
            {
            DEBUG_PRINTF2(_L("AppUid is 0x%x"), affectedApps[i].iAppUid);
            DEBUG_PRINTF2(_L("Action is %d"), affectedApps[i].iAction);
-           }   
-        //const_cast<CPlan&>(Plan()).ResetAffectedApps();
-        const_cast<CPlan&>(Plan()).SetAffectedApps(affectedApps);
+           }
         
-        CleanupStack::PopAndDestroy(2, &componentIds);
+        //Updating apps to be notified
+        RArray<TAppUpdateInfo> currentNotifiableApps;
+        CleanupClosePushL(currentNotifiableApps);
+        const_cast<CPlan&>(Plan()).GetAffectedApps(currentNotifiableApps);
+        TInt appCount = affectedApps.Count();
+        for(TInt k = 0; k < appCount ; ++k)
+            {
+            TInt count = currentNotifiableApps.Count();
+            TUid appUid = affectedApps[k].iAppUid;
+            //compare the apps present in the package currently being processed with the existing set of affected apps,
+            //if alredy exists then update else add it to the list
+            for(TInt index = 0; index < count ; ++index)
+               {
+               if(appUid == currentNotifiableApps[index].iAppUid)
+                   {           
+                   currentNotifiableApps.Remove(index);                                    
+                   }
+               }
+            currentNotifiableApps.AppendL(affectedApps[k]);
+            }
+        
+        const_cast<CPlan&>(Plan()).ResetAffectedApps();
+        const_cast<CPlan&>(Plan()).SetAffectedApps(currentNotifiableApps);
+        
+        CleanupStack::PopAndDestroy(3, &componentIds);
 	    }
 	CleanupStack::PopAndDestroy(&affectedApps);
 #endif
--- a/installationservices/swi/source/swis/server/restoreprocessor.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/swis/server/restoreprocessor.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -513,10 +513,29 @@
 	                }  		           
 	            }
 	        
+	        //Compare the new affected apps with the existing affected apps and update the existing affected apps if alredy present or 
+            //add to the list if it is a new app.
+            RArray<TAppUpdateInfo> existingAffectedApps;
+            CleanupClosePushL(existingAffectedApps);
+            const_cast<CPlan&>(iPlan).GetAffectedApps(existingAffectedApps);
+            TInt appCount = affectedApps.Count();
+            for(TInt k = 0; k < appCount ; ++k)
+                {
+                TInt count = existingAffectedApps.Count();
+                TUid appUid = affectedApps[k].iAppUid;
+                for(TInt index = 0; index < count ; ++index)
+                   {
+                   if(appUid == existingAffectedApps[index].iAppUid)
+                       {           
+                       existingAffectedApps.Remove(index);                                    
+                       }
+                   }
+                existingAffectedApps.AppendL(affectedApps[k]);
+                }
 	        const_cast<CPlan&>(iPlan).ResetAffectedApps();
 	        const_cast<CPlan&>(iPlan).SetAffectedApps(affectedApps);
 	        
-	        CleanupStack::PopAndDestroy(2, &componentIds);
+	        CleanupStack::PopAndDestroy(3, &componentIds);
 	        }
 	
 #else
--- a/installationservices/swi/source/swis/server/siscontentprovider.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/swis/server/siscontentprovider.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2009 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 the License "Eclipse Public License v1.0"
@@ -202,7 +202,7 @@
 	for (TInt option = 0; option < options.Count(); option++)
 		{
 		const RPointerArray<CString>& names = options[option].Names();
-		ret.Append(&names[aLanguageIndex]->Data());
+		ret.AppendL(&names[aLanguageIndex]->Data());
 		}
 
 	CleanupStack::Pop(&ret);
--- a/installationservices/swi/source/swis/server/uninstallationprocessor.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/swis/server/uninstallationprocessor.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -217,31 +217,27 @@
     TAppUpdateInfo existingAppInfo, newAppInfo;     
     TUid packageUid = application.PackageL().Uid();
     
-    Plan().GetAffectedApps(affectedApps);
-    if(affectedApps.Count() == 0)
+    // Get all existing componentsIds for the package to to be uninstalled
+    TRAPD(err,iRegistryWrapper.RegistrySession().GetComponentIdsForUidL(packageUid, componentIds));            
+    TInt count = componentIds.Count();
+    if(0 == count)
         {
-        // Get all existing componentsIds for the package to to be uninstalled
-        TRAPD(err,iRegistryWrapper.RegistrySession().GetComponentIdsForUidL(packageUid, componentIds));            
-        TInt count = componentIds.Count();
-        if(0 == count)
+        DEBUG_PRINTF(_L("ComponentIDs not found for the base package"));
+        User::Leave(KErrNotFound);
+        }
+    
+    //Get the apps for CompIds and mark them as to be uninstalled     
+    for(TInt i = 0 ; i < count; i++)
+        {
+        existingAppUids.Reset();                    
+        TRAP(err,iRegistryWrapper.RegistrySession().GetAppUidsForComponentL(componentIds[i], existingAppUids)); 
+      
+        for(TInt i = 0 ; i < existingAppUids.Count(); i++)
             {
-            DEBUG_PRINTF(_L("ComponentIDs not found for the base package"));
-            User::Leave(KErrNotFound);
+            existingAppInfo = TAppUpdateInfo(existingAppUids[i], EAppUninstalled);
+            affectedApps.Append(existingAppInfo);                   
             }
-        
-        //Get the apps for CompIds and mark them as to be upgraded      
-        for(TInt i = 0 ; i < count; i++)
-            {
-            existingAppUids.Reset();                    
-            TRAP(err,iRegistryWrapper.RegistrySession().GetAppUidsForComponentL(componentIds[i], existingAppUids)); 
-          
-            for(TInt i = 0 ; i < existingAppUids.Count(); i++)
-                {
-                existingAppInfo = TAppUpdateInfo(existingAppUids[i], EAppUninstalled);
-                affectedApps.Append(existingAppInfo);                   
-                }
-            }
-        }
+        }        
     
 	// Now that we are ready to make changes to the registry so we start a transaction
 	// Note that the commit/rollback action is subsequently taken by the later steps of the state machine	
@@ -249,28 +245,46 @@
 	iRegistryWrapper.RegistrySession().DeleteEntryL(ApplicationL().PackageL(), TransactionSession().TransactionIdL()); 
     
     componentIds.Reset();
-    TRAPD(err,iRegistryWrapper.RegistrySession().GetComponentIdsForUidL(packageUid, componentIds));            
+    TRAP(err,iRegistryWrapper.RegistrySession().GetComponentIdsForUidL(packageUid, componentIds));            
     TInt currentComponentCount = componentIds.Count();        
     
     //If there is no component assosiated with this app in the scr and there are affected apps then mark all of them as deleted. 
     RArray<TAppUpdateInfo> apps;  
     CleanupClosePushL(apps);
     Plan().GetAffectedApps(apps);
-    TInt appCount = apps.Count();
-    CleanupStack::PopAndDestroy();
+    TInt appCount = apps.Count();    
     
+    //If the there is no component assosiated with the package uid(ie it has been completely deleted) and we have affected apps 
+    //then compare the apps of the package currently being processed with the existing affected apps if alredy exists then
+    //update else add it to the list.
     if(currentComponentCount == 0 && appCount)
         {            
-        for(TInt i = 0 ; i < appCount; i++)
-           {          
-           existingAppInfo = TAppUpdateInfo(affectedApps[0].iAppUid, EAppUninstalled);
-           affectedApps.Remove(0);
-           affectedApps.Append(existingAppInfo);    
-           }
+        TInt count = affectedApps.Count();        
+        for(TInt i = 0 ; i < appCount; ++i)
+           {    
+           TUid appUid = apps[i].iAppUid;
+           TBool found = EFalse;
+           for(TInt index = 0; index < count ; ++index)
+             {
+             if(appUid == affectedApps[index].iAppUid)
+                 {                       
+                 existingAppInfo = TAppUpdateInfo(appUid, EAppUninstalled);
+                 affectedApps.Remove(index);
+                 affectedApps.Append(existingAppInfo); 
+                 found = ETrue;     
+                 break;
+                 }               
+             }
+          if(!found)
+             {
+             existingAppInfo = TAppUpdateInfo(appUid,EAppUninstalled);
+             affectedApps.Append(existingAppInfo);
+             }   
+           } 
         }
     else
         {
-        // mark the apps in the sffected list as upgraded if they are still in scr
+        // mark the apps in the affected list as upgraded if they are still in scr
         for(TInt i = 0 ; i < currentComponentCount; i++)
            {
            newAppUids.Reset();                    
@@ -289,12 +303,13 @@
                }        
            } 
         }
-    
+    CleanupStack::PopAndDestroy(&apps);
     for(TInt i = 0; i < affectedApps.Count(); i++)
         {
         DEBUG_PRINTF2(_L("AppUid is 0x%x"), affectedApps[i].iAppUid);
         DEBUG_PRINTF2(_L("Action is %d"), affectedApps[i].iAction);
         }   
+            
     const_cast<CPlan&>(Plan()).ResetAffectedApps();
     const_cast<CPlan&>(Plan()).SetAffectedApps(affectedApps);
     
--- a/installationservices/swi/source/uiss/client/sisuihandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/source/uiss/client/sisuihandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 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 the License "Eclipse Public License v1.0"
@@ -30,7 +30,7 @@
 #include "writestream.h"
 #include "swispubsubdefs.h"
 #include <e32property.h> 
-
+#include "progressbar.h"
 
 namespace Swi
 {
@@ -61,23 +61,26 @@
 		{
 		return;
 		}
-	
+	TInt progressAmount = aAmount;
+
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 	_LIT(KProgressorPanicDescriptor, "UISSCLIENT:The progress bar value publisher has not been set!");
 	__ASSERT_ALWAYS(iPublisher, User::Panic(KProgressorPanicDescriptor,KErrAbort));
-	iPublisher->UpdateProgressBarValueL(aAmount);	
+	progressAmount = iPublisher->UpdateProgressBarValueL(aAmount);	
 #endif	
 	
-	CHandleInstallEvent* event=CHandleInstallEvent::NewLC(aAppInfo, EEventUpdateProgressBar, aAmount, KNullDesC);
-	ExecuteL(*event);
-	
-	if (!event->ReturnResult())
-		{
-		User::Leave(KErrCancel);
-		}
-	CleanupStack::PopAndDestroy(event);
+	if (progressAmount != 0)
+	    {
+	    CHandleInstallEvent* event=CHandleInstallEvent::NewLC(aAppInfo, EEventUpdateProgressBar, progressAmount, KNullDesC);
+	    ExecuteL(*event);
+	        
+	    if (!event->ReturnResult())
+	        {
+	        User::Leave(KErrCancel);
+	        }
+	    CleanupStack::PopAndDestroy(event);
+	    }
 	}
-
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 EXPORT_C void RUiHandler::SetProgressBarValuePublisher(CProgressBarValuePublisher* aPublisher)
 	{
@@ -151,11 +154,19 @@
 	iFinalProgressValue = aValue;
 	}
 
-EXPORT_C void CProgressBarValuePublisher::UpdateProgressBarValueL(TInt aValue)
+EXPORT_C TInt CProgressBarValuePublisher::UpdateProgressBarValueL(TInt aValue)
 	{
 	iCurrentProgressValue += aValue;
 	TUint percentage = (iFinalProgressValue <= 0) ? 100 : (iCurrentProgressValue * 100) / iFinalProgressValue;
-	User::LeaveIfError(RProperty::Set(KUidInstallServerCategory, KUidSwiProgressBarValueKey, percentage));
+	if ((percentage - iLastPercentCompletion) >= KProgressBarIncrement)
+	    {
+	    TInt amountCompleted = iCurrentProgressValue - iLastProgressValue; 
+	    iLastProgressValue = iCurrentProgressValue;
+		iLastPercentCompletion = percentage;
+		User::LeaveIfError(RProperty::Set(KUidInstallServerCategory, KUidSwiProgressBarValueKey, percentage));
+	    return amountCompleted;
+	    }
+	return 0;
 	}	 
 #endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 } // namespace Swi
--- a/installationservices/swi/test/hw_hidden/Bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*
-*/
-
-
-
-PRJ_MMPFILES
-
-HelloWorld.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/hw_hidden/bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,22 @@
+/*
+* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+
+PRJ_MMPFILES
+
+HelloWorld.mmp
--- a/installationservices/swi/test/swicaptests/registrycaptest.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/test/swicaptests/registrycaptest.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 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 the License "Eclipse Public License v1.0"
@@ -492,6 +492,19 @@
 
 	TRAP(err, session.RecoverL());
 	CheckFailL(err, _L("RecoverL"));
+	
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	TRAP(err, session.SetComponentPresenceL(1, EFalse));
+	CheckFailL(err, _L("SetComponentPresenceL"));
+	
+	// Negative tests
+	//TRAP(err, session.SetComponentPresenceL(1234, EFalse));
+	//CheckFailL(err, _L("SetComponentPresenceL Negative 1"));
+    //TRAP(err, session.SetComponentPresenceL(0, EFalse));
+    //CheckFailL(err, _L("SetComponentPresenceL Negative 2"));    
+    //TRAP(err, session.SetComponentPresenceL(-1, EFalse));
+    //CheckFailL(err, _L("SetComponentPresenceL Negative 3"));
+#endif
 
 	CleanupStack::PopAndDestroy(&session);
 	}
--- a/installationservices/swi/test/swicaptests/scripts/swicaptests.ini	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/test/swicaptests/scripts/swicaptests.ini	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,14 @@
 [swicaptests]
 DllName=swicaptests.dll
+
+[simple]
+sis=z:\tswi\tsis\data\simple.sis
+script=z:\tswi\tuiscriptadaptors\scripts\simple.xml
+numexist=1
+exist0=C:\Documents\InstTest\file1.txt
+
+[u_simple]
+uid=80000001
+script=z:\tswi\tuiscriptadaptors\scripts\uninstall.xml
+numnonexist=1
+nonexist0=C:\Documents\InstTest\file1.txt
--- a/installationservices/swi/test/swicaptests/scripts/swicaptests.script	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swi/test/swicaptests/scripts/swicaptests.script	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of the License "Eclipse Public License v1.0"
@@ -18,7 +18,8 @@
 PRINT Run all SWIS capability tests
 
 LOAD_SUITE aprcaptestframework
-
+LOAD_SUITE tuiscriptadaptors
+LOAD_SUITE tscr // To delete the SCR DB
 
 //! @SYMTestCaseID 		API-SEC-SWI-CapTests-I-0001
 //! @SYMTestCaseDesc 		Runs the whole suite of test cases for SWI interfaces. Both negtive and positive tests are included
@@ -28,13 +29,21 @@
 //! @SYMTestExpectedResults 	KErrPermissionDenied received on calls which should fail
 //! @SYMDevelopedForRelease 	Yankee
 
-
 START_TESTCASE API-SEC-SWI-CapTests-I-0001
 
 RUN_UTILS MkDir c:\tswi\
 RUN_UTILS MkDir c:\tswi\swicaptests
 RUN_UTILS MkDir c:\tswi\swicaptests\data
 RUN_UTILS CopyFile z:\tswi\swicaptests\data\testdoc.txt c:\tswi\swicaptests\data\testdoc.txt
+
+// Delete the existing DB and install a test pacakage (so that ComponentId of 1 is valid)
+RUN_TEST_STEP 100 tscr SCRDeleteDbFile z:\tusif\tscr\tscr.ini db_file
+RUN_TEST_STEP 100 tuiscriptadaptors InstallStep z:\tswi\swicaptests\scripts\swicaptests.ini simple
+
 RUN_TEST_STEP 100 aprcaptestframework RunThoroughCapabilityChecks z:\tswi\swicaptests\scripts\swicaptests.ini swicaptests
 
+// Uninstall the test pacakage and delete the DB so that it does not interfere with remaining tests
+RUN_TEST_STEP 100 tuiscriptadaptors UninstallStep z:\tswi\swicaptests\scripts\swicaptests.ini u_simple
+RUN_TEST_STEP 100 tscr SCRDeleteDbFile z:\tusif\tscr\tscr.ini db_file
+
 END_TESTCASE API-SEC-SWI-CapTests-I-0001
Binary file installationservices/swi/test/testexes/interpretsis_testcase/01/icon24.BMP has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/01/icon24.bmp has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/03/icon24.BMP has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/03/icon24.bmp has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/04/icon24.BMP has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/04/icon24.bmp has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/24/icon24.BMP has changed
Binary file installationservices/swi/test/testexes/interpretsis_testcase/24/icon24.bmp has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_AppUi.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,80 @@
+// 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:
+// HelloWorld_CExampleAppUi.cpp
+// Source file for the implementation of the 
+// application UI class - CExampleAppUi
+//
+
+#include "interpretsis_testcase.h"
+
+//             The second phase constructor of the application UI class.
+//             The application UI creates and owns the one and only view.
+// 
+void CExampleAppUi::ConstructL()
+    {
+	           // BaseConstructL() completes the UI framework's
+	           // construction of the App UI.
+    BaseConstructL();
+	           // Create the single application view in which to
+	           // draw the text "Hello World!", passing into it
+	           // the rectangle available to it.
+	iAppView = CExampleAppView::NewL(ClientRect());
+	}
+
+
+//             The app Ui owns the two views and is. 
+//             therefore, responsible for destroying them
+//
+CExampleAppUi::~CExampleAppUi()
+	{
+	delete iAppView;
+	}
+
+
+//             Called by the UI framework when a command has been issued.
+//             In this example, a command can originate through a 
+//             hot-key press or by selection of a menu item.
+//             The command Ids are defined in the .hrh file
+//             and are 'connected' to the hot-key and menu item in the
+//             resource file.
+//             Note that the EEikCmdExit is defined by the UI
+//             framework and is pulled in by including eikon.hrh
+//
+void CExampleAppUi::HandleCommandL(TInt aCommand)
+	{
+	switch (aCommand)
+		{
+		      // Just issue simple info messages to show that
+		      // the menu items have been selected
+	case EExampleItem0:
+		//iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM0);
+		break;
+
+	
+	case EExampleItem1:
+	//	iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM1);
+		break;
+	
+	case EExampleItem2:
+	//	iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM2);
+		break;
+               // Exit the application. The call is
+		       // implemented by the UI framework.
+
+	case EEikCmdExit: 
+		Exit();
+		break;
+		}
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_AppView.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,105 @@
+// 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:
+// HelloWorld_CExampleAppView.cpp
+// Source file for the implementation of the 
+// application view class - CExampleAppView
+//
+
+#include "interpretsis_testcase.h"
+
+//
+//             Constructor for the view.
+//
+CExampleAppView::CExampleAppView()
+	{
+	}
+
+
+//             Static NewL() function to start the standard two
+//             phase construction.
+//
+CExampleAppView* CExampleAppView::NewL(const TRect& aRect)
+	{
+	CExampleAppView* self = new(ELeave) CExampleAppView();
+	CleanupStack::PushL(self);
+	self->ConstructL(aRect);
+	CleanupStack::Pop();
+	return self;
+	}
+
+
+//
+//             Destructor for the view.
+//
+CExampleAppView::~CExampleAppView()
+	{
+	delete iExampleText;
+	}
+
+
+//             Second phase construction.
+//
+void CExampleAppView::ConstructL(const TRect& aRect)
+    {
+			   // Fetch the text from the resource file.
+	//iExampleText = iEikonEnv->AllocReadResourceL(R_EXAMPLE_TEXT_HELLO);
+	           // Control is a window owning control
+	CreateWindowL();
+	           // Extent of the control. This is
+	           // the whole rectangle available to application.
+	           // The rectangle is passed to us from the application UI.
+	SetRect(aRect);
+			   // At this stage, the control is ready to draw so
+	           // we tell the UI framework by activating it.
+	ActivateL();
+	}
+
+
+//             Drawing the view - in this example, 
+//             consists of drawing a simple outline rectangle
+//             and then drawing the text in the middle.
+//             We use the Normal font supplied by the UI.
+//
+//             In this example, we don't use the redraw
+//             region because it's easier to redraw to
+//             the whole client area.
+//
+void CExampleAppView::Draw(const TRect& /*aRect*/) const
+	{
+               // Window graphics context
+	CWindowGc& gc = SystemGc();
+	           // Area in which we shall draw
+	TRect      drawRect = Rect();
+			   // Font used for drawing text
+	const CFont*     fontUsed;
+	
+	           // Start with a clear screen
+	gc.Clear();
+			   // Draw an outline rectangle (the default pen
+	           // and brush styles ensure this) slightly
+	           // smaller than the drawing area.
+	drawRect.Shrink(10,10);		   	
+	gc.DrawRect(drawRect);
+               // Use the title font supplied by the UI
+	fontUsed = iEikonEnv->TitleFont();
+	gc.UseFont(fontUsed);
+			   // Draw the text in the middle of the rectangle.
+	TInt   baselineOffset=(drawRect.Height() - fontUsed->HeightInPixels())/2; 
+	gc.DrawText(*iExampleText,drawRect,baselineOffset,CGraphicsContext::ECenter, 0);
+               // Finished using the font
+	gc.DiscardFont();
+	}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_Application.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,41 @@
+// 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:
+// HelloWorld_CExampleApplication.cpp
+// Source file for the implementation of the
+// application class - CExampleApplication
+//
+
+#include "interpretsis_testcase.h"
+
+const TUid KUidHelloWorld = { 0xE800005A };
+
+//             The function is called by the UI framework to ask for the
+//             application's UID. The returned value is defined by the
+//             constant KUidHelloWorlde and must match the second value
+//             defined in the project definition file.
+//
+TUid CExampleApplication::AppDllUid() const
+	{
+	return KUidHelloWorld;
+	}
+
+//             This function is called by the UI framework at
+//             application start-up. It creates an instance of the
+//             document class.
+//
+CApaDocument* CExampleApplication::CreateDocumentL()
+	{
+	return new (ELeave) CExampleDocument(*this);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_Document.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,39 @@
+// 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:
+// HelloWorld_CExampleDocument.cpp
+// Source file for the implementation of the 
+// document class - CExampleDocument
+//
+
+#include "interpretsis_testcase.h"
+
+//             The constructor of the document class just passes the
+//             supplied reference to the constructor initialisation list.
+//             The document has no real work to do in this application.
+//
+CExampleDocument::CExampleDocument(CEikApplication& aApp)
+		: CEikDocument(aApp)
+	{
+	}
+
+
+//             This is called by the UI framework as soon as the 
+//             document has been created. It creates an instance
+//             of the ApplicationUI. The Application UI class is
+//             an instance of a CEikAppUi derived class.
+//
+CEikAppUi* CExampleDocument::CreateAppUiL()
+	{
+    return new(ELeave) CExampleAppUi;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_Main.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,43 @@
+// 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:
+// HelloWorld 
+// The example is a simple application containing a single view with
+// the text "Hello World !" drawn on it.
+// The example includes code for displaying a very simple menu.
+// This source file contains the single exported function required by 
+// all UI applications.
+//
+
+
+#include "interpretsis_testcase.h"
+
+//             The entry point for the application code. It creates
+//             an instance of the CApaApplication derived
+//             class, CExampleApplication.
+//
+
+
+
+#include <eikstart.h>
+LOCAL_C CApaApplication* NewApplication()
+	{
+	return new CExampleApplication;
+	}
+	
+GLDEF_C TInt E32Main()
+	{
+	return EikStart::RunApplication(NewApplication);
+	}
+	
+
--- a/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_application.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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:
-// HelloWorld_CExampleApplication.cpp
-// Source file for the implementation of the
-// application class - CExampleApplication
-//
-
-#include "interpretsis_testcase.h"
-
-const TUid KUidHelloWorld = { 0xE800005A };
-
-//             The function is called by the UI framework to ask for the
-//             application's UID. The returned value is defined by the
-//             constant KUidHelloWorlde and must match the second value
-//             defined in the project definition file.
-//
-TUid CExampleApplication::AppDllUid() const
-	{
-	return KUidHelloWorld;
-	}
-
-//             This function is called by the UI framework at
-//             application start-up. It creates an instance of the
-//             document class.
-//
-CApaDocument* CExampleApplication::CreateDocumentL()
-	{
-	return new (ELeave) CExampleDocument(*this);
-	}
-
--- a/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_appui.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +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:
-// HelloWorld_CExampleAppUi.cpp
-// Source file for the implementation of the 
-// application UI class - CExampleAppUi
-//
-
-#include "interpretsis_testcase.h"
-
-//             The second phase constructor of the application UI class.
-//             The application UI creates and owns the one and only view.
-// 
-void CExampleAppUi::ConstructL()
-    {
-	           // BaseConstructL() completes the UI framework's
-	           // construction of the App UI.
-    BaseConstructL();
-	           // Create the single application view in which to
-	           // draw the text "Hello World!", passing into it
-	           // the rectangle available to it.
-	iAppView = CExampleAppView::NewL(ClientRect());
-	}
-
-
-//             The app Ui owns the two views and is. 
-//             therefore, responsible for destroying them
-//
-CExampleAppUi::~CExampleAppUi()
-	{
-	delete iAppView;
-	}
-
-
-//             Called by the UI framework when a command has been issued.
-//             In this example, a command can originate through a 
-//             hot-key press or by selection of a menu item.
-//             The command Ids are defined in the .hrh file
-//             and are 'connected' to the hot-key and menu item in the
-//             resource file.
-//             Note that the EEikCmdExit is defined by the UI
-//             framework and is pulled in by including eikon.hrh
-//
-void CExampleAppUi::HandleCommandL(TInt aCommand)
-	{
-	switch (aCommand)
-		{
-		      // Just issue simple info messages to show that
-		      // the menu items have been selected
-	case EExampleItem0:
-		//iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM0);
-		break;
-
-	
-	case EExampleItem1:
-	//	iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM1);
-		break;
-	
-	case EExampleItem2:
-	//	iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM2);
-		break;
-               // Exit the application. The call is
-		       // implemented by the UI framework.
-
-	case EEikCmdExit: 
-		Exit();
-		break;
-		}
-	}
-
--- a/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_appview.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +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:
-// HelloWorld_CExampleAppView.cpp
-// Source file for the implementation of the 
-// application view class - CExampleAppView
-//
-
-#include "interpretsis_testcase.h"
-
-//
-//             Constructor for the view.
-//
-CExampleAppView::CExampleAppView()
-	{
-	}
-
-
-//             Static NewL() function to start the standard two
-//             phase construction.
-//
-CExampleAppView* CExampleAppView::NewL(const TRect& aRect)
-	{
-	CExampleAppView* self = new(ELeave) CExampleAppView();
-	CleanupStack::PushL(self);
-	self->ConstructL(aRect);
-	CleanupStack::Pop();
-	return self;
-	}
-
-
-//
-//             Destructor for the view.
-//
-CExampleAppView::~CExampleAppView()
-	{
-	delete iExampleText;
-	}
-
-
-//             Second phase construction.
-//
-void CExampleAppView::ConstructL(const TRect& aRect)
-    {
-			   // Fetch the text from the resource file.
-	//iExampleText = iEikonEnv->AllocReadResourceL(R_EXAMPLE_TEXT_HELLO);
-	           // Control is a window owning control
-	CreateWindowL();
-	           // Extent of the control. This is
-	           // the whole rectangle available to application.
-	           // The rectangle is passed to us from the application UI.
-	SetRect(aRect);
-			   // At this stage, the control is ready to draw so
-	           // we tell the UI framework by activating it.
-	ActivateL();
-	}
-
-
-//             Drawing the view - in this example, 
-//             consists of drawing a simple outline rectangle
-//             and then drawing the text in the middle.
-//             We use the Normal font supplied by the UI.
-//
-//             In this example, we don't use the redraw
-//             region because it's easier to redraw to
-//             the whole client area.
-//
-void CExampleAppView::Draw(const TRect& /*aRect*/) const
-	{
-               // Window graphics context
-	CWindowGc& gc = SystemGc();
-	           // Area in which we shall draw
-	TRect      drawRect = Rect();
-			   // Font used for drawing text
-	const CFont*     fontUsed;
-	
-	           // Start with a clear screen
-	gc.Clear();
-			   // Draw an outline rectangle (the default pen
-	           // and brush styles ensure this) slightly
-	           // smaller than the drawing area.
-	drawRect.Shrink(10,10);		   	
-	gc.DrawRect(drawRect);
-               // Use the title font supplied by the UI
-	fontUsed = iEikonEnv->TitleFont();
-	gc.UseFont(fontUsed);
-			   // Draw the text in the middle of the rectangle.
-	TInt   baselineOffset=(drawRect.Height() - fontUsed->HeightInPixels())/2; 
-	gc.DrawText(*iExampleText,drawRect,baselineOffset,CGraphicsContext::ECenter, 0);
-               // Finished using the font
-	gc.DiscardFont();
-	}
-
-
-
--- a/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_document.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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:
-// HelloWorld_CExampleDocument.cpp
-// Source file for the implementation of the 
-// document class - CExampleDocument
-//
-
-#include "interpretsis_testcase.h"
-
-//             The constructor of the document class just passes the
-//             supplied reference to the constructor initialisation list.
-//             The document has no real work to do in this application.
-//
-CExampleDocument::CExampleDocument(CEikApplication& aApp)
-		: CEikDocument(aApp)
-	{
-	}
-
-
-//             This is called by the UI framework as soon as the 
-//             document has been created. It creates an instance
-//             of the ApplicationUI. The Application UI class is
-//             an instance of a CEikAppUi derived class.
-//
-CEikAppUi* CExampleDocument::CreateAppUiL()
-	{
-    return new(ELeave) CExampleAppUi;
-	}
--- a/installationservices/swi/test/testexes/interpretsis_testcase/interpretsis_testcase_main.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +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:
-// HelloWorld 
-// The example is a simple application containing a single view with
-// the text "Hello World !" drawn on it.
-// The example includes code for displaying a very simple menu.
-// This source file contains the single exported function required by 
-// all UI applications.
-//
-
-
-#include "interpretsis_testcase.h"
-
-//             The entry point for the application code. It creates
-//             an instance of the CApaApplication derived
-//             class, CExampleApplication.
-//
-
-
-
-#include <eikstart.h>
-LOCAL_C CApaApplication* NewApplication()
-	{
-	return new CExampleApplication;
-	}
-	
-GLDEF_C TInt E32Main()
-	{
-	return EikStart::RunApplication(NewApplication);
-	}
-	
-
--- a/installationservices/swi/test/testexes/testappinuse/Bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*
-*/
-
-
-
-PRJ_MMPFILES
-
-HelloWorld.mmp
-HelloWorld2.mmp
-console_app.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/testappinuse/bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+
+PRJ_MMPFILES
+
+HelloWorld.mmp
+HelloWorld2.mmp
+console_app.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_loc.RSS	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,96 @@
+// 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:
+//
+
+/**
+ @file swiappregintegration03_loc.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+NAME SER1
+
+#include <uikon.rh>
+#include <appinfo.rh>
+ 
+#ifdef LANGUAGE_01
+ #include "01-strings.rls"
+#elif defined LANGUAGE_24
+ #include "24-strings.rls"
+#else
+ #include "rsc-strings.rls"
+#endif
+ 
+RESOURCE RSS_SIGNATURE				{ }
+RESOURCE LOCALISABLE_APP_INFO r_lai
+	{
+	short_caption = Localized_Short_Caption;
+	caption_and_icon =
+		{
+		CAPTION_AND_ICON_INFO
+			{
+			caption = Localized_Caption;
+			number_of_icons = Localized_NumberOfIcon;
+			icon_file = Localized_Iconfile;
+			}
+		}; 
+	}
+
+STRUCT SERVICE_NAME
+	{
+	LTEXT name = "";
+	}
+
+#ifdef LANGUAGE_01
+RESOURCE SERVICE_NAME r_service_1_specific_data_loc
+	{
+	name = "EN Localised text for service UID 0x01020305";
+	}
+RESOURCE SERVICE_NAME r_service_2_specific_data_loc
+	{
+	name = "EN Localised text for service UID 0x10208DCA";
+	}
+RESOURCE SERVICE_NAME r_app_data_loc
+	{
+	name = "EN Localised text App";
+	}
+#elif defined LANGUAGE_24
+RESOURCE SERVICE_NAME r_service_1_specific_data_loc
+	{
+	name = "IF Localised text for service UID 0x01020305";
+	}
+RESOURCE SERVICE_NAME r_service_2_specific_data_loc
+	{
+	name = "IF Localised text for service UID 0x10208DCA";
+	}
+RESOURCE SERVICE_NAME r_app_data_loc
+	{
+	name = "IF Localised text App";
+	}
+#else
+RESOURCE SERVICE_NAME r_service_1_specific_data_loc
+	{
+	name = "RSC Localised text for service UID 0x01020305";
+	}
+RESOURCE SERVICE_NAME r_service_2_specific_data_loc
+	{
+	name = "RSC Localised text for service UID 0x10208DCA";
+	}
+RESOURCE SERVICE_NAME r_app_data_loc
+	{
+	name = "RSC Localised text App";
+	}
+#endif 
+	
+
+
--- a/installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_loc.rss	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +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:
-//
-
-/**
- @file swiappregintegration03_loc.rss
- @internalComponent - Internal Symbian test code
-*/
-
-NAME SER1
-
-#include <uikon.rh>
-#include <appinfo.rh>
- 
-#ifdef LANGUAGE_01
- #include "01-strings.rls"
-#elif defined LANGUAGE_24
- #include "24-strings.rls"
-#else
- #include "rsc-strings.rls"
-#endif
- 
-RESOURCE RSS_SIGNATURE				{ }
-RESOURCE LOCALISABLE_APP_INFO r_lai
-	{
-	short_caption = Localized_Short_Caption;
-	caption_and_icon =
-		{
-		CAPTION_AND_ICON_INFO
-			{
-			caption = Localized_Caption;
-			number_of_icons = Localized_NumberOfIcon;
-			icon_file = Localized_Iconfile;
-			}
-		}; 
-	}
-
-STRUCT SERVICE_NAME
-	{
-	LTEXT name = "";
-	}
-
-#ifdef LANGUAGE_01
-RESOURCE SERVICE_NAME r_service_1_specific_data_loc
-	{
-	name = "EN Localised text for service UID 0x01020305";
-	}
-RESOURCE SERVICE_NAME r_service_2_specific_data_loc
-	{
-	name = "EN Localised text for service UID 0x10208DCA";
-	}
-RESOURCE SERVICE_NAME r_app_data_loc
-	{
-	name = "EN Localised text App";
-	}
-#elif defined LANGUAGE_24
-RESOURCE SERVICE_NAME r_service_1_specific_data_loc
-	{
-	name = "IF Localised text for service UID 0x01020305";
-	}
-RESOURCE SERVICE_NAME r_service_2_specific_data_loc
-	{
-	name = "IF Localised text for service UID 0x10208DCA";
-	}
-RESOURCE SERVICE_NAME r_app_data_loc
-	{
-	name = "IF Localised text App";
-	}
-#else
-RESOURCE SERVICE_NAME r_service_1_specific_data_loc
-	{
-	name = "RSC Localised text for service UID 0x01020305";
-	}
-RESOURCE SERVICE_NAME r_service_2_specific_data_loc
-	{
-	name = "RSC Localised text for service UID 0x10208DCA";
-	}
-RESOURCE SERVICE_NAME r_app_data_loc
-	{
-	name = "RSC Localised text App";
-	}
-#endif 
-	
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_reg.RSS	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,65 @@
+// 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:
+//
+
+/**
+ @file swiappregintegration03_reg.rss
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+#include <swiappregintegration03_loc.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x90000006
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="swiappregintegration03";
+	localisable_resource_file="\\resource\\apps\\swiappregintegration03_loc";
+	localisable_resource_id=R_LAI;
+	
+	datatype_list = 
+        {
+        DATATYPE { priority=EDataTypePriorityNormal; type="image/jpeg1"; },
+        DATATYPE { priority=EDataTypePriorityNormal; type="image/gif1"; }
+        };
+	
+	service_list = 
+		{
+		SERVICE_INFO
+            {
+            uid = 0x01020305;
+            datatype_list = 
+                {
+                DATATYPE { priority=EDataTypePriorityNormal; type="image/jpeg3"; },
+                DATATYPE { priority=EDataTypePriorityNormal; type="image/gif3"; }
+                };
+            opaque_data = R_SERVICE_1_SPECIFIC_DATA_LOC;
+            },
+		SERVICE_INFO
+            {
+            uid = 0x10208DCA;
+            datatype_list = 
+                {
+                DATATYPE { priority=EDataTypePriorityNormal; type="doc/jpeg2"; },
+                DATATYPE { priority=EDataTypePriorityNormal; type="doc/gif2"; }
+                };   
+            opaque_data = R_SERVICE_2_SPECIFIC_DATA_LOC;
+            }
+		};
+		
+	opaque_data = R_APP_DATA_LOC;
+	}
+
--- a/installationservices/swi/test/testexes/tswiappregintegration/case03/swiappregintegration03_reg.rss	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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:
-//
-
-/**
- @file swiappregintegration03_reg.rss
- @internalComponent - Internal Symbian test code
-*/
-
-#include <appinfo.rh>
-#include <swiappregintegration03_loc.rsg>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0x90000006
-
-RESOURCE APP_REGISTRATION_INFO
-	{
-	app_file="swiappregintegration03";
-	localisable_resource_file="\\resource\\apps\\swiappregintegration03_loc";
-	localisable_resource_id=R_LAI;
-	
-	datatype_list = 
-        {
-        DATATYPE { priority=EDataTypePriorityNormal; type="image/jpeg1"; },
-        DATATYPE { priority=EDataTypePriorityNormal; type="image/gif1"; }
-        };
-	
-	service_list = 
-		{
-		SERVICE_INFO
-            {
-            uid = 0x01020305;
-            datatype_list = 
-                {
-                DATATYPE { priority=EDataTypePriorityNormal; type="image/jpeg3"; },
-                DATATYPE { priority=EDataTypePriorityNormal; type="image/gif3"; }
-                };
-            opaque_data = R_SERVICE_1_SPECIFIC_DATA_LOC;
-            },
-		SERVICE_INFO
-            {
-            uid = 0x10208DCA;
-            datatype_list = 
-                {
-                DATATYPE { priority=EDataTypePriorityNormal; type="doc/jpeg2"; },
-                DATATYPE { priority=EDataTypePriorityNormal; type="doc/gif2"; }
-                };   
-            opaque_data = R_SERVICE_2_SPECIFIC_DATA_LOC;
-            }
-		};
-		
-	opaque_data = R_APP_DATA_LOC;
-	}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisfile/data/signedsis/Howto generate certificate chains.txt	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,28 @@
+This file replaces the old generate_certs.bat, which provided incorrect information.
+
+To generate certificate chains using the existing roots, you must issue some subset of the following commands:
+
+For DSA Key pairs, first generate a set of DSA key parameters:
+# openssl dsaparam -out dsaparam.pem 512
+
+Next, generate a certificate request: (this assumes you are using one of the existing config files)
+
+For DSA Certificates:
+# openssl req -newkey dsa:dsaparams.pem -nodes -out dsa.req -keyout dsa.key -config dsa.config -days 3650
+
+For RSA Certificates:
+# openssl req -newkey rsa:512 -nodes -out rsa.req -keyout rsa.key -config rsa.config -days 3650
+
+Finally, generate a signed certificate from the request:
+
+# openssl x509 -req -in <request file> -out cert.cer -CA <signing certificate> -CAKey <signing key> -CASerial cert.srl -CAcreateserial -days 3650 -extfile <config file> -extensions v3_ca
+
+For intermediate certificates for use in SWIS, the extensions must be present as defined in this config section:
+
+[v3_ca]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always,issuer:always
+basicConstraints=critical,CA:TRUE, pathlen:5
+keyUsage=critical,keyCertSign
+
+If these extensions are not present, and installation signed with the resulting certificate as anything other than the end entity will fail.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/How to  create root certficate.txt	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,15 @@
+# To create a RSA root cerificate need to following two steps:
+
+1. Create a private key for the CA:
+
+openssl req -nodes -newkey rsa:1024 -keyout <key file> -out <CA req file> -config <config file>
+The config file is input parameter, and should be present in advance.
+
+Example: openssl req -nodes -newkey rsa:1024 -keyout cakey.pem -out careq.pem -config rsa.config
+
+2. Create the CA certificate:
+
+openssl x509 -req -in <CA req> -extfile <config file> -extensions v3_ca -signkey <key file> -out <CA cert file>  -days 3650
+
+Example: openssl x509 -req -in careq.pem -extfile rsa.config -extensions v3_ca -signkey cakey.pem -out cacert.pem  -days 3650
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisfile/data/signedsis/sucert/How to  create root certficate.txt	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,24 @@
+# To create a RSA root cerificate need to following two steps:
+
+1. Create a private key for the CA:
+
+openssl req -nodes -newkey rsa:1024 -keyout <key file> -out <CA req file> -config <config file>
+The config file is input parameter, and should be present in advance.
+
+Example: openssl req -nodes -newkey rsa:1024 -keyout cakey.pem -out careq.pem -config rsa.config
+
+2. Create the CA certificate:
+
+openssl x509 -req -in <CA req> -extfile <config file> -extensions v3_ca -signkey <key file> -out <CA cert file>  -days 3650
+
+Example: openssl x509 -req -in careq.pem -extfile rsa.config -extensions v3_ca -signkey cakey.pem -out cacert.pem  -days 3650
+
+
+1. 
+
+openssl req -nodes -newkey rsa:1024 -keyout cakey.pem -out careq.pem -config rsa.config
+
+
+2.
+
+openssl x509 -req -in careq.pem -extfile rsa.config -extensions v3_ca -signkey cakey.pem -out symbiantestallcapabilitiesca.pem  -days 3650
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca/How to  create root certficate.txt	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,24 @@
+# To create a RSA root cerificate need to following two steps:
+
+1. Create a private key for the CA:
+
+openssl req -nodes -newkey rsa:1024 -keyout <key file> -out <CA req file> -config <config file>
+The config file is input parameter, and should be present in advance.
+
+Example: openssl req -nodes -newkey rsa:1024 -keyout cakey.pem -out careq.pem -config rsa.config
+
+2. Create the CA certificate:
+
+openssl x509 -req -in <CA req> -extfile <config file> -extensions v3_ca -signkey <key file> -out <CA cert file>  -days 3650
+
+Example: openssl x509 -req -in careq.pem -extfile rsa.config -extensions v3_ca -signkey cakey.pem -out cacert.pem  -days 3650
+
+
+1. 
+
+openssl req -nodes -newkey rsa:1024 -keyout cakey.pem -out careq.pem -config rsa.config
+
+
+2.
+
+openssl x509 -req -in careq.pem -extfile rsa.config -extensions v3_ca -signkey cakey.pem -out symbiantestallcapabilitiesca.pem  -days 3650
\ No newline at end of file
--- a/installationservices/swiconfig/swi/swierrors.ra	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swiconfig/swi/swierrors.ra	Thu Jun 24 12:37:54 2010 +0300
@@ -1,328 +1,328 @@
-/*
-* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*
-*/
-
-// SISX parsing errors
-// most of these errors resolve to a simple "File Corrupt" message 
-RESOURCE ARRAY r_error_res_swi_sisx_file_errors 
-	{
-	items = 
-		{
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10100
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10101
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10102
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10103
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10104
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10105
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10106
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10107
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10108
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10109
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10110
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10111
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10112
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10113
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10114
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10115
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10116
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10117
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10118
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10119
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10120
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10121
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10122
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10123
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10124
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10125
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10126
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10127
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10128
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10129
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10130
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10131
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10132
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10133
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10134
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10135
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10136
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10137
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10138
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10139
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10140
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10141
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10142
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10143
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_unsupported_compression; // -10144
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_corrupt; // -10145
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_invalid_filedesc; // -10146
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_overwrite; // -10147
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_reserved; // -10148, reserved for future use
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_sisx_file_insufficient_space; // -10149
-			}
-		};
-	}
-
-RESOURCE ARRAY r_error_res_swi_process_error
-	{
-	items =
-		{
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_process_failed; // -10200
-			}
-		};
-	}
-
-RESOURCE ARRAY r_error_res_swi_instserv_errors
-	{
-	items = 
-		{
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_swi_policy_corrupt; // -10250
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_sig_scheme_unsupported; // -10251
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_sig_scheme_unsupported; // -10252, digest and signing algs are not issues users are expected to understand
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_bad_digest; // -10253
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_security_error; // -10254
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_no_base_package; // -10255
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_invalid_upgrade; // -10256
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_invalid_eclipsing; // -10257
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_invalid_exe_header; // -10258
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_caps_mismatch; // -10259
-			},		
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_bad_expression; // -10260
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_bad_expression; // -10261
-			},
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_instserv_bad_expression; // -10262
-			}
-		};
-	}
-
-RESOURCE ARRAY  r_error_res_legacy_error
-	{
-	items=
-		{
-		SINGLE_ERROR
-			{
-			text=r_error_res_swi_legacy_sis; // -10270	
-			}
-		};
-	}
-
-RESOURCE TBUF r_error_res_swi_sisx_file_corrupt { buf=STRING_r_error_res_swi_sisx_file_corrupt; } // used for most SISX parsing problems
-RESOURCE TBUF r_error_res_swi_sisx_file_unsupported_compression { buf=STRING_r_error_res_swi_sisx_file_unsupported_compression; } // -10144
-RESOURCE TBUF r_error_res_swi_sisx_file_invalid_filedesc { buf=STRING_r_error_res_swi_sisx_file_invalid_filedesc; } // -10146
-RESOURCE TBUF r_error_res_swi_sisx_file_overwrite { buf=STRING_r_error_res_swi_sisx_file_overwrite; } // -10147
-RESOURCE TBUF r_error_res_swi_sisx_file_insufficient_space { buf=STRING_r_error_res_swi_sisx_file_insufficient_space; } // -10149
-RESOURCE TBUF r_error_res_swi_sisx_file_reserved { buf=STRING_r_error_res_swi_sisx_file_reserved; } // should never be seen
-
-RESOURCE TBUF r_error_res_swi_process_failed { buf=STRING_r_error_res_swi_process_failed; } // -10200
-
-RESOURCE TBUF r_error_res_swi_instserv_swi_policy_corrupt { buf=STRING_r_error_res_swi_instserv_swi_policy_corrupt; } // -10250
-RESOURCE TBUF r_error_res_swi_instserv_sig_scheme_unsupported { buf=STRING_r_error_res_swi_instserv_sig_scheme_unsupported; } // -10251, -10252
-RESOURCE TBUF r_error_res_swi_instserv_bad_digest { buf=STRING_r_error_res_swi_instserv_bad_digest; } // -10253
-RESOURCE TBUF r_error_res_swi_instserv_security_error { buf=STRING_r_error_res_swi_instserv_security_error; } // -10254
-RESOURCE TBUF r_error_res_swi_instserv_no_base_package { buf=STRING_r_error_res_swi_instserv_no_base_package; } // -10255
-RESOURCE TBUF r_error_res_swi_instserv_invalid_upgrade { buf=STRING_r_error_res_swi_instserv_invalid_upgrade; } // -10256
-RESOURCE TBUF r_error_res_swi_instserv_invalid_eclipsing { buf=STRING_r_error_res_swi_instserv_invalid_eclipsing; }
-RESOURCE TBUF r_error_res_swi_instserv_invalid_exe_header { buf=STRING_r_error_res_swi_instserv_invalid_exe_header; }
-RESOURCE TBUF r_error_res_swi_instserv_caps_mismatch { buf=STRING_r_error_res_swi_instserv_caps_mismatch; }
-RESOURCE TBUF r_error_res_swi_instserv_bad_expression { buf=STRING_r_error_res_swi_instserv_bad_expression; } // 1026[012], the user need not know anything about package expressions
-
-RESOURCE TBUF r_error_res_swi_legacy_sis { buf=STRING_r_error_res_swi_legacy_sis; } // -10270
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+// SISX parsing errors
+// most of these errors resolve to a simple "File Corrupt" message 
+RESOURCE ARRAY r_error_res_swi_sisx_file_errors 
+	{
+	items = 
+		{
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10100
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10101
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10102
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10103
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10104
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10105
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10106
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10107
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10108
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10109
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10110
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10111
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10112
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10113
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10114
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10115
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10116
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10117
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10118
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10119
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10120
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10121
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10122
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10123
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10124
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10125
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10126
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10127
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10128
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10129
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10130
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10131
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10132
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10133
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10134
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10135
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10136
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10137
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10138
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10139
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10140
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10141
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10142
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10143
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_unsupported_compression; // -10144
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_corrupt; // -10145
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_invalid_filedesc; // -10146
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_overwrite; // -10147
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_reserved; // -10148, reserved for future use
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_sisx_file_insufficient_space; // -10149
+			}
+		};
+	}
+
+RESOURCE ARRAY r_error_res_swi_process_error
+	{
+	items =
+		{
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_process_failed; // -10200
+			}
+		};
+	}
+
+RESOURCE ARRAY r_error_res_swi_instserv_errors
+	{
+	items = 
+		{
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_swi_policy_corrupt; // -10250
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_sig_scheme_unsupported; // -10251
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_sig_scheme_unsupported; // -10252, digest and signing algs are not issues users are expected to understand
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_bad_digest; // -10253
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_security_error; // -10254
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_no_base_package; // -10255
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_invalid_upgrade; // -10256
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_invalid_eclipsing; // -10257
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_invalid_exe_header; // -10258
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_caps_mismatch; // -10259
+			},		
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_bad_expression; // -10260
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_bad_expression; // -10261
+			},
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_instserv_bad_expression; // -10262
+			}
+		};
+	}
+
+RESOURCE ARRAY  r_error_res_legacy_error
+	{
+	items=
+		{
+		SINGLE_ERROR
+			{
+			text=r_error_res_swi_legacy_sis; // -10270	
+			}
+		};
+	}
+
+RESOURCE TBUF r_error_res_swi_sisx_file_corrupt { buf=STRING_r_error_res_swi_sisx_file_corrupt; } // used for most SISX parsing problems
+RESOURCE TBUF r_error_res_swi_sisx_file_unsupported_compression { buf=STRING_r_error_res_swi_sisx_file_unsupported_compression; } // -10144
+RESOURCE TBUF r_error_res_swi_sisx_file_invalid_filedesc { buf=STRING_r_error_res_swi_sisx_file_invalid_filedesc; } // -10146
+RESOURCE TBUF r_error_res_swi_sisx_file_overwrite { buf=STRING_r_error_res_swi_sisx_file_overwrite; } // -10147
+RESOURCE TBUF r_error_res_swi_sisx_file_insufficient_space { buf=STRING_r_error_res_swi_sisx_file_insufficient_space; } // -10149
+RESOURCE TBUF r_error_res_swi_sisx_file_reserved { buf=STRING_r_error_res_swi_sisx_file_reserved; } // should never be seen
+
+RESOURCE TBUF r_error_res_swi_process_failed { buf=STRING_r_error_res_swi_process_failed; } // -10200
+
+RESOURCE TBUF r_error_res_swi_instserv_swi_policy_corrupt { buf=STRING_r_error_res_swi_instserv_swi_policy_corrupt; } // -10250
+RESOURCE TBUF r_error_res_swi_instserv_sig_scheme_unsupported { buf=STRING_r_error_res_swi_instserv_sig_scheme_unsupported; } // -10251, -10252
+RESOURCE TBUF r_error_res_swi_instserv_bad_digest { buf=STRING_r_error_res_swi_instserv_bad_digest; } // -10253
+RESOURCE TBUF r_error_res_swi_instserv_security_error { buf=STRING_r_error_res_swi_instserv_security_error; } // -10254
+RESOURCE TBUF r_error_res_swi_instserv_no_base_package { buf=STRING_r_error_res_swi_instserv_no_base_package; } // -10255
+RESOURCE TBUF r_error_res_swi_instserv_invalid_upgrade { buf=STRING_r_error_res_swi_instserv_invalid_upgrade; } // -10256
+RESOURCE TBUF r_error_res_swi_instserv_invalid_eclipsing { buf=STRING_r_error_res_swi_instserv_invalid_eclipsing; }
+RESOURCE TBUF r_error_res_swi_instserv_invalid_exe_header { buf=STRING_r_error_res_swi_instserv_invalid_exe_header; }
+RESOURCE TBUF r_error_res_swi_instserv_caps_mismatch { buf=STRING_r_error_res_swi_instserv_caps_mismatch; }
+RESOURCE TBUF r_error_res_swi_instserv_bad_expression { buf=STRING_r_error_res_swi_instserv_bad_expression; } // 1026[012], the user need not know anything about package expressions
+
+RESOURCE TBUF r_error_res_swi_legacy_sis { buf=STRING_r_error_res_swi_legacy_sis; } // -10270
--- a/installationservices/swiconfig/swi/swipolicy.ini	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swiconfig/swi/swipolicy.ini	Thu Jun 24 12:37:54 2010 +0300
@@ -12,8 +12,12 @@
 UserCapabilities = NetworkServices LocalServices ReadUserData WriteUserData Location UserEnvironment 
 AllowPackagePropagate = true
 ApplicationShutdownTimeoutSeconds = 10
-RunWaitTimeoutSeconds = 180
-DeletePreinstalledFilesOnUninstall = false
+RunWaitTimeoutSeconds = 600
+DeletePreinstalledFilesOnUninstall = true
 MaxNumOfLogEntries =  5
 RemoveOnlyWithLastDependent = true
 AllowOverwriteOnRestore = false
+SISCompatibleIfNoTargetDevices = false
+AllowRunOnInstallUninstall = false
+AlternativeCodeSigningOID = 1.3.6.1.4.1.94.1.49.1.2.2.1 1.3.6.1.4.1.94.1.49.1.2.2.5
+PhoneTsyName = phonetsy
\ No newline at end of file
--- a/installationservices/swidevicetools/source/swiconsole/src/ciohandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swidevicetools/source/swiconsole/src/ciohandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 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 the License "Eclipse Public License v1.0"
@@ -433,11 +433,11 @@
 
 		if(aAllowDuplicates)
 			{
-			aIntArr.Append(number);
+			aIntArr.AppendL(number);
 			}
 		else
 			{
-			aIntArr.InsertInOrder(number);
+			aIntArr.InsertInOrderL(number);
 			}
 			
 		string.Delete(0, pos);
--- a/installationservices/swidevicetools/source/swiconsole/src/cpreferencehandler.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swidevicetools/source/swiconsole/src/cpreferencehandler.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 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 the License "Eclipse Public License v1.0"
@@ -67,7 +67,7 @@
 	{
 	CPreferences* preferences = CPreferences::NewL();
 	// Ownership transfered to iPreferenceList
-	iPreferenceList.Append(preferences);
+	iPreferenceList.AppendL(preferences);
 	return preferences;
 	}
 
--- a/installationservices/swidevicetools/source/swiconsole/src/cpreferences.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swidevicetools/source/swiconsole/src/cpreferences.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2009 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 the License "Eclipse Public License v1.0"
@@ -104,14 +104,14 @@
 	{
 	HBufC* ptr = aPackageName.AllocL();
 	// Ownership transfered to the list
-	iPackageNameList.Append(ptr);
+	iPackageNameList.AppendL(ptr);
 	}
 
 void CPreferences::AddVendorNameL(const TDesC& aVendorName)
 	{
 	HBufC* ptr = aVendorName.AllocL();
 	// Ownership transfered to the list
-	iVendorNameList.Append(ptr);
+	iVendorNameList.AppendL(ptr);
 	}
 
 TBool CPreferences::IsPackageNamePresent(const TDesC& aPackageName) const
--- a/installationservices/swinstallationfw/inc/sifnotification.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swinstallationfw/inc/sifnotification.h	Thu Jun 24 12:37:54 2010 +0300
@@ -462,7 +462,6 @@
         @param  aHandler A handle to the implementation of the MSifOperationsHandler class.      
                                         
         @return A pointer to the newly allocated CSifOperationsNotifier object, if creation is successful.
-                The pointer is also put onto the cleanup stack. 
      */         
     IMPORT_C static CSifOperationsNotifier* NewL(MSifOperationsHandler& aHandler);
     
--- a/installationservices/swinstallationfw/source/sifcommon.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/swinstallationfw/source/sifcommon.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1005,6 +1005,7 @@
 
 void CStringItem::ExternalizeL(RWriteStream& aStream) const
     {
+	CItemBase::ExternalizeL(aStream);
     aStream << *iString;
     }
 
Binary file installationservices/swinstallationfw/test/tusif/scripts/data/Corrupt_reg.rsc has changed
Binary file installationservices/swinstallationfw/test/tusif/scripts/data/corrupt_reg.rsc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotest_CorruptRsc.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,43 @@
+;
+; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "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:
+;
+; Install file for multi-lingual application
+; supporting two language variants.
+;
+
+; Languages - 
+&EN
+
+; List of localised vendor names.
+%{"Symbian Software Ltd"}
+
+; Single, non-localised (global) vendor name.
+:"Symbian Software Ltd"
+
+; Installation header.
+; Two component names as we support English
+#{"sifgetcompinfotestCorruptRsc_EN"}, (0x88001109), 1,0,0
+
+
+; Language-neutral files to be installed
+"\epoc32\<BUILDMIDPATH>\sifgetcompapparcinfotest.exe"-"!:\sys\bin\sifgetcompapparcinfotest.exe"
+"\epoc32\<ZDRIVEMIDPATH>\z\tusif\tsif\data\corrupt_reg.rsc" - "!:\private\10003a3f\import\apps\sifgetcompapparcinfotest_reg.rsc"
+
+; Lists of language-specific resource files, of which only those files will be installed
+; which are supported by the device.
+"\epoc32\<ZDRIVEMIDPATH>\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_loc.rsc"		-"!:\resource\apps\sifgetcompapparcinfotest_loc.rsc"
+
+"\epoc32\<ZDRIVEMIDPATH>\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_01.mbm"		-"!:\resource\apps\sifgetcompapparcinfotest_01.mbm"
+
--- a/installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotest_corruptrsc.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-;
-; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of the License "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:
-;
-; Install file for multi-lingual application
-; supporting two language variants.
-;
-
-; Languages - 
-&EN
-
-; List of localised vendor names.
-%{"Symbian Software Ltd"}
-
-; Single, non-localised (global) vendor name.
-:"Symbian Software Ltd"
-
-; Installation header.
-; Two component names as we support English
-#{"sifgetcompinfotestCorruptRsc_EN"}, (0x88001109), 1,0,0
-
-
-; Language-neutral files to be installed
-"\epoc32\<BUILDMIDPATH>\sifgetcompapparcinfotest.exe"-"!:\sys\bin\sifgetcompapparcinfotest.exe"
-"\epoc32\<ZDRIVEMIDPATH>\z\tusif\tsif\data\corrupt_reg.rsc" - "!:\private\10003a3f\import\apps\sifgetcompapparcinfotest_reg.rsc"
-
-; Lists of language-specific resource files, of which only those files will be installed
-; which are supported by the device.
-"\epoc32\<ZDRIVEMIDPATH>\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_loc.rsc"		-"!:\resource\apps\sifgetcompapparcinfotest_loc.rsc"
-
-"\epoc32\<ZDRIVEMIDPATH>\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_01.mbm"		-"!:\resource\apps\sifgetcompapparcinfotest_01.mbm"
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotestmultiapp_OneAppWithNonApparcRsc.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,59 @@
+;
+; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "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:
+;
+; Install file for multi-lingual application
+; supporting two language variants.
+;
+
+; Languages - 
+&EN,GE,SP,FR
+
+; List of localised vendor names.
+%{"Symbian Software Ltd", "Symbian Software Ltd","Symbian Software Ltd","Symbian Software Ltd"}
+
+; Single, non-localised (global) vendor name.
+:"Symbian Software Ltd"
+
+; Installation header.
+; Two component names as we support English and German
+#{"sifgetcompapparcinfotestmultiappOneAppCorrupt_EN", "sifgetcompapparcinfotestmultiappOneAppCorrupt_GE", "sifgetcompapparcinfotestmultiappOneAppCorrupt_SP", "sifgetcompapparcinfotestmultiappOneAppCorrupt_FR"}, (0x88001107), 1,0,0
+
+
+; Language-neutral files to be installed for first app
+"\epoc32\<BUILDMIDPATH>\sifgetcompapparcinfotestmultilang.exe"-"!:\sys\bin\sifgetcompapparcinfotestmultilang.exe"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_reg.rsc" - "!:\private\10003a3f\import\apps\sifgetcompapparcinfotestmultilang_reg.rsc"
+
+; Lists of language-specific resource files, of which only those files will be installed
+; which are supported by the device.
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r01"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r01"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r03"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r03"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r04"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r04"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r24"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r24"
+
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_01.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_01.mbm"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_03.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_03.mbm"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_04.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_04.mbm"
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_24.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_24.mbm"
+
+
+; Language-neutral files to be installed for second app
+"\epoc32\<BUILDMIDPATH>\sifgetcompapparcinfotest.exe"-"!:\sys\bin\sifgetcompapparcinfotest.exe"
+"\epoc32\<ZDRIVEMIDPATH>\z\resource\plugins\testnonnativeplugin2.rsc" - "!:\private\10003a3f\import\apps\sifgetcompapparcinfotest_reg.rsc"
+
+; Lists of language-specific resource files, of which only those files will be installed
+; which are supported by the device.
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_loc.rsc"		-"!:\resource\apps\sifgetcompapparcinfotest_loc.rsc"
+
+"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_01.mbm"		-"!:\resource\apps\sifgetcompapparcinfotest_01.mbm"
--- a/installationservices/swinstallationfw/test/tusif/scripts/data/sifgetcompapparcinfotestmultiapp_oneappwithnonapparcrsc.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-;
-; Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of the License "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:
-;
-; Install file for multi-lingual application
-; supporting two language variants.
-;
-
-; Languages - 
-&EN,GE,SP,FR
-
-; List of localised vendor names.
-%{"Symbian Software Ltd", "Symbian Software Ltd","Symbian Software Ltd","Symbian Software Ltd"}
-
-; Single, non-localised (global) vendor name.
-:"Symbian Software Ltd"
-
-; Installation header.
-; Two component names as we support English and German
-#{"sifgetcompapparcinfotestmultiappOneAppCorrupt_EN", "sifgetcompapparcinfotestmultiappOneAppCorrupt_GE", "sifgetcompapparcinfotestmultiappOneAppCorrupt_SP", "sifgetcompapparcinfotestmultiappOneAppCorrupt_FR"}, (0x88001107), 1,0,0
-
-
-; Language-neutral files to be installed for first app
-"\epoc32\<BUILDMIDPATH>\sifgetcompapparcinfotestmultilang.exe"-"!:\sys\bin\sifgetcompapparcinfotestmultilang.exe"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_reg.rsc" - "!:\private\10003a3f\import\apps\sifgetcompapparcinfotestmultilang_reg.rsc"
-
-; Lists of language-specific resource files, of which only those files will be installed
-; which are supported by the device.
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r01"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r01"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r03"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r03"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r04"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r04"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_loc.r24"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_loc.r24"
-
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_01.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_01.mbm"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_03.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_03.mbm"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_04.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_04.mbm"
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotestmultilang\sifgetcompapparcinfotestmultilang_24.mbm"		-"!:\resource\apps\sifgetcompapparcinfotestmultilang_24.mbm"
-
-
-; Language-neutral files to be installed for second app
-"\epoc32\<BUILDMIDPATH>\sifgetcompapparcinfotest.exe"-"!:\sys\bin\sifgetcompapparcinfotest.exe"
-"\epoc32\<ZDRIVEMIDPATH>\z\resource\plugins\testnonnativeplugin2.rsc" - "!:\private\10003a3f\import\apps\sifgetcompapparcinfotest_reg.rsc"
-
-; Lists of language-specific resource files, of which only those files will be installed
-; which are supported by the device.
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_loc.rsc"		-"!:\resource\apps\sifgetcompapparcinfotest_loc.rsc"
-
-"\epoc32\data\z\tusif\tsif\data\sifgetcompapparcinfotest\sifgetcompapparcinfotest_01.mbm"		-"!:\resource\apps\sifgetcompapparcinfotest_01.mbm"
Binary file installationservices/swinstallationfw/test/tusif/source/icon3M.BMP has changed
Binary file installationservices/swinstallationfw/test/tusif/source/icon3m.bmp has changed
--- a/installationservices/switestfw/test/autotesting/apr_bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/apr_bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -47,12 +47,9 @@
 
 #include "mw/appinstall/installationservices/swi/group/bld.inf"
 #include "mw/appinstall/installationservices/swidevicetools/group/bld.inf"
-#include "mw/appinstall/secureswitools/swianalysistoolkit/group/bld.inf"
-
-
 
 #endif //TOOLS2
 
-// Only the SISTOOLS (makesis/signsis) and certapp build with TOOLS2
 #include "mw/appinstall/secureswitools/swisistools/group/bld.inf"
-
+#include "mw/appinstall/secureswitools/swianalysistoolkit/group/bld.inf"
+#include "mw/appinstall/secureswitools/makekeys/group/bld.inf"
\ No newline at end of file
--- a/installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt	Fri Jun 11 13:45:18 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/test_spec_apr_9.5.txt	Thu Jun 24 12:37:54 2010 +0300
@@ -349,10 +349,10 @@
 PERL, \dumpchainvalidity_test.txt,,\epoc32\winscw\c\tswi\tchainvalidity\testChainValidity.pl, 300, UDEB,,
 # DUMPINSTALLFILESTATUS test
 PERL, \dumpinstallstatus_test.txt,,\epoc32\winscw\c\tswi\tinstallfilestatus\testInstallStatus.pl, 300, UDEB,,
+# DUMPSWICERTSTORE test
+PERL, \dumpswicertstore_test.txt,,\epoc32\winscw\c\tswi\tdumpcertstore\testswiCertstore.pl, 600, UDEB,\epoc32\winscw\c\tswi\tdumpcertstore\predumpcertstoretest.bat, \epoc32\winscw\c\tswi\tdumpcertstore\postdumpcertstoretest.bat
 
 [SwiTools95Only]
-# DUMPSWICERTSTORE test
-PERL, \dumpswicertstore_test.txt,,\epoc32\winscw\c\tswi\tdumpcertstore\testswiCertstore.pl, 600, UDEB,\epoc32\winscw\c\tswi\tdumpcertstore\predumpcertstoretest.bat, \epoc32\winscw\c\tswi\tdumpcertstore\postdumpcertstoretest.bat
 # DUMPSWIREGISTRY test
 PERL, \dumpregistry_test.txt,,\epoc32\winscw\c\tswi\tdumpregistry\testregistry.pl, 300, UDEB,,
 
--- a/ncdengine/debuglogger/group/catalogslogger.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/debuglogger/group/catalogslogger.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -58,11 +58,7 @@
 USERINCLUDE     ../inc ../obex/inc
 
 // System include paths
-#ifndef __SERIES60_30__
-APP_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE     /epoc32/include
-#endif
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY         euser.lib
 LIBRARY         apparc.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/engine/engine.pri	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,280 @@
+
+#
+# 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: 
+#
+
+
+# Input
+HEADERS +=./transport/inc/catalogshttpdownload.h \
+					./transport/inc/catalogshttpdownloadmanagerimpl.h \
+
+SOURCES += ./src/catalogsbasemessageimpl.cpp \
+./src/catalogsclientserverserver.cpp \
+./src/catalogsclientserverserversession.cpp \
+./src/catalogsincompletemessage.cpp \
+./src/catalogsserverengine.cpp \
+./src/catalogsutils.cpp \
+./src/catalogskeyvaluepair.cpp \
+./src/catalogscontextimpl.cpp \
+./src/catalogsbigdes.cpp \
+./src/catalogsinterfacebase.cpp \
+./src/catalogsinterfaceidentifier.cpp \
+./src/catalogsstringmanager.cpp \
+./src/catalogsshutdownoperation.cpp \
+./transport/src/catalogstransportimpl.cpp \
+./transport/src/catalogshttpconfigimpl.cpp \
+./transport/src/catalogshttpheadersimpl.cpp \
+./transport/src/catalogshttpsessionimpl.cpp \
+./transport/src/catalogshttpdownloadmanagerimpl.cpp \
+./transport/src/catalogshttpdownload.cpp \
+./transport/src/catalogshttptransaction.cpp \
+./transport/src/catalogshttptransactionmanagerimpl.cpp \
+./transport/src/catalogshttpstack.cpp \
+./transport/src/catalogshttpsessionmanagerimpl.cpp \
+./transport/src/catalogshttpconnectioncreator.cpp \
+./transport/src/catalogshttpconnectionmanager.cpp \
+./transport/src/catalogssmssessionimpl.cpp \
+./transport/src/catalogssmsoperationimpl.cpp \
+./transport/src/catalogssmssender.cpp \
+./transport/src/catalogssmsutils.cpp \
+./transport/src/catalogsnetworkmanager.cpp \
+./transport/src/catalogsconnectioneventsink.cpp \
+./transport/src/catalogshttprequestparser.cpp \
+./transport/src/catalogshttprequestadapter.cpp \
+./transport/src/catalogshttpresponsecomposer.cpp \
+./transport/src/catalogshttputils.cpp \
+./transport/src/catalogsconnection.cpp \
+./accesspointmanager/src/catalogsaccesspointmanagerimpl.cpp \
+./accesspointmanager/src/catalogsaccesspoint.cpp \
+./accesspointmanager/src/catalogsaccesspointsettings.cpp\
+./accesspointmanager/src/catalogsaccesspointmap.cpp \
+./accesspointmanager/src/catalogsclientaccesspointdata.cpp \
+./accesspointmanager/src/catalogsremoveaccesspointshutdownoperation.cpp \
+../provider/server/src/ncdcommunicable.cpp \
+../provider/server/src/ncdproviderimpl.cpp \
+../provider/server/src/ncdnodemanager.cpp \
+../provider/server/src/ncdnodedbmanager.cpp \
+../provider/server/src/ncdoperationmanager.cpp \
+../provider/server/src/ncdnodeimpl.cpp \
+../provider/server/src/ncdnodefolder.cpp \
+../provider/server/src/ncdparentoftransparentnode.cpp \
+../provider/server/src/ncdnodetransparentfolder.cpp \
+../provider/server/src/ncdnodeitem.cpp \
+../provider/server/src/ncdrootnode.cpp \
+../provider/server/src/ncdnodemetadataimpl.cpp \
+../provider/server/src/ncdnodeitemmetadata.cpp \
+../provider/server/src/ncdnodefoldermetadata.cpp \
+../provider/server/src/ncdnodedisclaimer.cpp \
+../provider/server/src/ncdnodeiconimpl.cpp \
+../provider/server/src/ncdnodescreenshotimpl.cpp \
+../provider/server/src/ncdnodeskinimpl.cpp \
+../provider/server/src/ncdnodelink.cpp \
+../provider/server/src/ncdnodeitemlink.cpp \
+../provider/server/src/ncdnodefolderlink.cpp \
+../provider/server/src/ncdnodeidentifier.cpp \
+../provider/server/src/ncdnodeuserdataimpl.cpp \
+../provider/server/src/ncdnodedownloadimpl.cpp \
+../provider/server/src/ncdnodeupgradeimpl.cpp \
+../provider/server/src/ncdnodedependencyimpl.cpp \
+../provider/server/src/ncdnodecachecleaner.cpp \
+../provider/server/src/ncdnodecachecleanermanager.cpp \
+../provider/server/src/ncdnodefactory.cpp \
+../provider/server/src/ncdnodeidentifiereditor.cpp \
+../provider/server/src/ncddbmaxsizemap.cpp \
+../provider/server/src/ncdbaseoperation.cpp \
+../provider/server/src/ncdloadnodeoperationimpl.cpp \
+../provider/server/src/ncdloadrootnodeoperationimpl.cpp \
+../provider/server/src/ncdsendableprogress.cpp \
+../provider/server/src/ncdconfigurationmanagerimpl.cpp \
+../provider/server/src/ncdpurchaseoperationimpl.cpp \
+../provider/server/src/ncdpurchaseoptionimpl.cpp \
+../provider/server/src/ncdserversubscription.cpp \
+../provider/server/src/ncdserverpartofsubscription.cpp \
+../provider/server/src/ncdserverupgrade.cpp \
+../provider/server/src/ncdserversubscribablecontent.cpp \
+../provider/server/src/ncdnodeinstallimpl.cpp \
+../provider/server/src/ncdinstalloperationimpl.cpp \
+../provider/server/src/ncdnodecontentinfoimpl.cpp \
+../provider/server/src/ncdnodeuricontentimpl.cpp \
+../provider/server/src/ncdinstallinfo.cpp \
+../provider/server/src/ncdfileinfo.cpp \
+../provider/server/src/ncdsubscriptionmanagerimpl.cpp \
+../provider/server/src/ncdclientssubscriptions.cpp \
+../provider/server/src/ncdsubscriptiongroup.cpp \
+../provider/server/src/ncdsubscriptionimpl.cpp \
+../provider/server/src/ncdsubscriptionoperationimpl.cpp \
+../provider/server/src/ncdsubscriptionssourceidentifier.cpp \
+../provider/server/src/ncdrightsobjectoperationimpl.cpp \
+../provider/server/src/ncdnodepreviewimpl.cpp \
+../provider/server/src/ncdserveraddress.cpp \
+../provider/server/src/ncdsearchoperationimpl.cpp \
+../provider/server/src/ncdsearchnodeitem.cpp \
+../provider/server/src/ncdsearchnodefolder.cpp \
+../provider/server/src/ncdsearchnodebundle.cpp \
+../provider/server/src/ncdbundlefolder.cpp \
+../provider/server/src/ncdpreviewmanager.cpp \
+../provider/server/src/ncdchildentity.cpp \
+../provider/server/src/ncdchildentitymap.cpp \
+../provider/server/src/ncdsearchrootnode.cpp \
+../provider/server/src/ncdproviderutils.cpp \
+../provider/server/src/ncdserverdetailsimpl.cpp \
+../provider/server/src/ncdcontentdescriptor.cpp \
+../provider/server/src/ncdsubscriptiondatacompleter.cpp \
+../provider/server/src/ncdnodesupplier.cpp \
+../provider/server/src/ncdnodesupplierlink.cpp \
+../provider/server/src/ncddownloadinfo.cpp \
+../provider/server/src/ncdextendedinstallinfo.cpp \
+../provider/server/src/ncdloadbundlenodeoperationimpl.cpp \
+../provider/server/src/ncddependencyinfo.cpp \
+../provider/server/src/ncdfavoritemanagerimpl.cpp \
+../provider/server/src/ncdreportmanager.cpp \
+../provider/server/src/ncdreport.cpp \
+../provider/server/src/ncdreportdownload.cpp \
+../provider/server/src/ncdreportomadownload.cpp \
+../provider/server/src/ncdreportinstall.cpp \
+../provider/server/src/ncdnodeseeninfo.cpp \
+../provider/server/src/ncdnodeseenimpl.cpp \
+../provider/server/src/ncdnodeseenfolderimpl.cpp \
+../provider/server/src/ncdnodeidentifierutils.cpp \
+../provider/server/src/ncdpurchasehistoryutils.cpp \
+../provider/server/src/ncdcreateaccesspointoperationimpl.cpp \
+../provider/server/src/ncdsendhttprequestoperationimpl.cpp \
+../provider/server/src/ncdhttputils.cpp \
+../provider/server/src/ncdserverreportoperationimpl.cpp \
+../provider/server/src/ncdserverreportmanagerimpl.cpp \
+../provider/server/src/ncdprovidermanager.cpp \
+../provider/server/src/ncdgeneralmanager.cpp \
+../provider/server/src/ncddownloadoperationimpl.cpp \
+../provider/server/src/ncdbasedownloadhandler.cpp \
+../provider/server/src/ncdskindownloadhandler.cpp \
+../provider/server/src/ncdfilestoragefilehandler.cpp \
+../provider/server/src/ncddatabasefilehandler.cpp \
+../provider/server/src/ncdicondownloadhandler.cpp \
+../provider/server/src/ncdfiledownloadhandler.cpp \
+../provider/server/src/ncdpreviewdownloadhandler.cpp \
+../provider/server/src/ncdscreenshotdownloadhandler.cpp \
+../provider/server/src/ncdcontentdownloadoperation.cpp \
+../provider/server/src/ncddownloadsuboperation.cpp \
+../provider/server/src/ncddescriptordownloadsuboperation.cpp \
+../provider/server/src/ncdconfigurationparser.cpp \
+../provider/server/src/ncdengineconfigurationimpl.cpp \
+../provider/client/src/ncdqueryimpl.cpp \
+../provider/client/src/ncdqueryitemimpl.cpp \
+../provider/client/src/ncdquerytextitemimpl.cpp \
+../provider/client/src/ncdquerynumericitemimpl.cpp \
+../provider/client/src/ncdqueryselectionitemimpl.cpp \
+../provider/client/src/ncdquerypincodeitemimpl.cpp \
+../provider/client/src/ncdqueryoptionimpl.cpp \
+../provider/client/src/ncdexpirednode.cpp \
+../provider/client/src/ncdlocalizerutils.cpp \
+../provider/storage/src/ncdstoragemanagerimpl.cpp \
+../provider/storage/src/ncdstorageimpl.cpp \
+../provider/storage/src/ncdstorageclientimpl.cpp \
+../provider/storage/src/ncddbstoragemanager.cpp \
+../provider/storage/src/ncdstoragefiledataitem.cpp \
+../provider/storage/src/ncdfilestorageimpl.cpp \
+../provider/storage/src/ncdstoragebase.cpp \
+../provider/storage/src/ncddatabasestorageimpl.cpp \
+../provider/storage/src/ncdstoragedescriptordataitem.cpp \
+../provider/protocol/src/ncdparserimpl.cpp \
+../provider/protocol/src/ncdparserfactory.cpp \
+../provider/protocol/src/ncdprotocoldefaultobserverimpl.cpp \
+../provider/protocol/src/ncd_pp_iconimpl.cpp \
+../provider/protocol/src/ncd_pp_skinimpl.cpp \
+../provider/protocol/src/ncd_parser_pp_response.cpp \
+../provider/protocol/src/ncd_parser_pp_entityref.cpp \
+../provider/protocol/src/ncd_parser_pp_embeddeddata.cpp \
+../provider/protocol/src/ncd_parser_pp_datablocks.cpp \
+../provider/protocol/src/ncd_parser_pp_purchaseoption.cpp \
+../provider/protocol/src/ncd_parser_pp_dataentity.cpp \
+../provider/protocol/src/ncd_parser_pp_dataentitycontent.cpp \
+../provider/protocol/src/ncd_parser_pp_entitydependency.cpp \
+../provider/protocol/src/ncd_parser_pp_download.cpp \
+../provider/protocol/src/ncd_parser_pp_rights.cpp \
+../provider/protocol/src/ncd_parser_pp_information.cpp \
+../provider/protocol/src/ncd_parser_pp_messages.cpp \
+../provider/protocol/src/ncd_parser_pp_moreinfo.cpp \
+../provider/protocol/src/ncd_parser_pp_purchase.cpp \
+../provider/protocol/src/ncd_parser_pp_purchaseinformation.cpp \
+../provider/protocol/src/ncd_parser_pp_purchaseprocessed.cpp \
+../provider/protocol/src/ncd_parser_pp_purchaseentity.cpp \
+../provider/protocol/src/ncd_parser_pp_payment.cpp \
+../provider/protocol/src/ncd_parser_pp_expiredcacheddata.cpp \
+../provider/protocol/src/ncd_parser_pp_subscriptionreport.cpp \
+../provider/protocol/src/ncd_parser_pp_subscription.cpp \
+../provider/protocol/src/ncd_parser_pp_subscriptiondetails.cpp \
+../provider/protocol/src/ncd_parser_cp_actionrequest.cpp \
+../provider/protocol/src/ncd_parser_cp_response.cpp \
+../provider/protocol/src/ncd_parser_cp_capabilities.cpp \
+../provider/protocol/src/ncd_parser_cp_clientconfiguration.cpp \
+../provider/protocol/src/ncd_parser_cp_cookie.cpp \
+../provider/protocol/src/ncd_parser_cp_detail.cpp \
+../provider/protocol/src/ncd_parser_cp_details.cpp \
+../provider/protocol/src/ncd_parser_cp_error.cpp \
+../provider/protocol/src/ncd_parser_cp_query.cpp \
+../provider/protocol/src/ncd_parser_cp_queryelement.cpp \
+../provider/protocol/src/ncd_parser_cp_serverdetails.cpp \
+../provider/protocol/src/ncd_pp_folderrefimpl.cpp \
+../provider/protocol/src/ncd_pp_itemrefimpl.cpp \
+../provider/protocol/src/ncd_pp_datablockimpl.cpp \
+../provider/protocol/src/ncd_pp_dataentityimpl.cpp \
+../provider/protocol/src/ncd_pp_dataentitycontentimpl.cpp \
+../provider/protocol/src/ncd_pp_entitydependencyimpl.cpp \
+../provider/protocol/src/ncd_pp_embeddeddataimpl.cpp \
+../provider/protocol/src/ncd_pp_expiredcacheddataimpl.cpp \
+../provider/protocol/src/ncd_pp_informationimpl.cpp \
+../provider/protocol/src/ncd_pp_purchaseoptionimpl.cpp \
+../provider/protocol/src/ncd_pp_subscriptionimpl.cpp \
+../provider/protocol/src/ncd_pp_subscriptiondetailsimpl.cpp \
+../provider/protocol/src/ncd_pp_downloadimpl.cpp \
+../provider/protocol/src/ncd_pp_descriptorimpl.cpp \
+../provider/protocol/src/ncd_pp_rightsimpl.cpp \
+../provider/protocol/src/ncd_pp_purchaseimpl.cpp \
+../provider/protocol/src/ncd_pp_purchaseinformationimpl.cpp \
+../provider/protocol/src/ncd_pp_purchaseprocessedimpl.cpp \
+../provider/protocol/src/ncd_pp_purchaseentityimpl.cpp \
+../provider/protocol/src/ncd_pp_paymentimpl.cpp \
+../provider/protocol/src/ncd_pp_smsdetailsimpl.cpp \
+../provider/protocol/src/ncd_cp_actionrequestimpl.cpp \
+../provider/protocol/src/ncd_cp_clientconfigurationimpl.cpp \
+../provider/protocol/src/ncd_cp_cookieimpl.cpp \
+../provider/protocol/src/ncd_cp_detailimpl.cpp \
+../provider/protocol/src/ncd_cp_errorimpl.cpp \
+../provider/protocol/src/ncd_pp_errorimpl.cpp \
+../provider/protocol/src/ncd_cp_queryimpl.cpp \
+../provider/protocol/src/ncd_cp_queryelementimpl.cpp \
+../provider/protocol/src/ncd_cp_queryoptionimpl.cpp \
+../provider/protocol/src/ncd_cp_queryresponseimpl.cpp \
+../provider/protocol/src/ncd_cp_serverdetailsimpl.cpp \
+../provider/protocol/src/ncdsubparser.cpp \ 
+../provider/protocol/src/ncdtoplevelparser.cpp \
+../provider/protocol/src/ncdunknownparser.cpp \
+../provider/protocol/src/ncdprotocolutils.cpp \
+../provider/protocol/src/ncdparserobserverbundleimpl.cpp \
+../provider/protocol/src/ncdprotocolimpl.cpp \
+../provider/protocol/src/ncdsessionhandler.cpp \
+../provider/protocol/src/ncdstring.cpp \
+../provider/protocol/src/ncdrequestgenerator.cpp \
+../provider/protocol/src/ncdrequestbase.cpp \
+../provider/protocol/src/ncdrequestbrowsesearch.cpp \
+../provider/protocol/src/ncdrequestconfiguration.cpp \
+../provider/protocol/src/ncdrequestconfigurationdata.cpp \
+../provider/protocol/src/ncdrequestpurchase.cpp \
+../provider/protocol/src/ncdrequestmanagesubscriptions.cpp \
+../provider/protocol/src/ncdrequestinstallation.cpp \
+../provider/purchasehistory/src/ncdpurchasehistorydbimpl.cpp \
+../provider/src/ncdkeyvaluemap.cpp \
+../provider/src/ncdpurchasedetails.cpp \
+../provider/src/ncddelay.cpp
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/engine/engine.pro	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,58 @@
+
+#
+# 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 ( engine.pri )
+
+IncludeBlock = \
+	"$${LITERAL_HASH}include <data_caging_paths.hrh>" \
+	"$${LITERAL_HASH}include <platform_paths.hrh>"  \
+	"$${LITERAL_HASH}include <../inc/catalogsuids.h>" \
+	"$${LITERAL_HASH}include <./inc/build_config.mmpi>" 
+
+
+TEMPLATE = app
+TARGET = ncdserver_20019119
+CONFIG += qt
+ 
+symbian: { 
+	TARGET.CAPABILITY = CAP_APPLICATION 
+	TARGET.VID = VID_DEFAULT
+	TARGET.UID3 = 0x20019119
+	TARGET.EPOCALLOWDLLDATA = 1
+	INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+	INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+
+	INCLUDEPATH +=   ../provider/inc 
+	INCLUDEPATH +=   ../provider/server/inc 
+	INCLUDEPATH +=   ../provider/client/inc
+	INCLUDEPATH +=   ../provider/storage/inc
+	INCLUDEPATH +=   ../provider/protocol/inc
+	INCLUDEPATH +=   ../provider/deviceinteraction/inc
+	INCLUDEPATH +=   ../provider/purchasehistory/inc
+	
+	INCLUDEPATH +=   ../inc
+	INCLUDEPATH +=   ../engine/inc
+	INCLUDEPATH +=   ../engine/transport/inc
+	INCLUDEPATH +=   ../engine/accesspointmanager/inc
+	INCLUDEPATH += /epoc32/include/platform/mw/cwrt
+	INCLUDEPATH += /epoc32/include/ecom
+
+	LIBS += -lcommonui -lWrtDownloadMgr -lapmime -lcmmanager -lecom -lapengine -lmsgs -lsmcm -lgsmu -linetprotutil 
+	LIBS += -lhttpfiltercommon -lecom -lhttp -lesock -lcommdb -lsysutil -lhash -lestlib -lestor -lbafl -lplatformenv
+	LIBS += -lXmlEngineUtils  -lXmlEngineDOM -lXmlEngine -lXmlInterface -lxmlframework  -lcharconv -ledbms -lefsrv
+  LIBS += -lncdutils_20019119 -lncddevicemgmt_20019119
+}
--- a/ncdengine/engine/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -20,7 +20,7 @@
 catalogsdebug.mmp
 ncdutils.mmp
 ncddevicemgmt.mmp
-catalogsserver.mmp
+//catalogsserver.mmp
 catalogsengine.mmp
 catalogsproxy.mmp
 catalogsundertaker.mmp
--- a/ncdengine/engine/group/catalogsdebug.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/catalogsdebug.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -55,11 +55,7 @@
 #endif
 
 // System include paths
-#ifndef __SERIES60_30__
 MW_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE /Epoc32/include
-#endif
 
 LIBRARY euser.lib flogger.lib hal.lib
 
--- a/ncdengine/engine/group/catalogsengine.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/catalogsengine.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -48,12 +48,7 @@
 USERINCLUDE   ../../engine/inc
 
 // System include paths
-#ifndef __SERIES60_30__
 MW_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE /Epoc32/include
-#endif
-
 
 LIBRARY euser.lib flogger.lib ecom.lib estor.lib
 
--- a/ncdengine/engine/group/catalogsproxy.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/catalogsproxy.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -169,11 +169,7 @@
 USERINCLUDE   ../../provider/deviceinteraction/inc
 
 // System include paths
-#ifndef __SERIES60_30__
 MW_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE /epoc32/include
-#endif
 
 SYSTEMINCLUDE /epoc32/include/libc
 
--- a/ncdengine/engine/group/catalogsserver.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/catalogsserver.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -376,11 +376,7 @@
 
 
 // System include paths
-#ifndef __SERIES60_30__
 APP_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE   /epoc32/include
-#endif
 
 SYSTEMINCLUDE   /epoc32/include/libc
 SYSTEMINCLUDE   /epoc32/include/ecom
--- a/ncdengine/engine/group/catalogsundertaker.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/catalogsundertaker.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -48,12 +48,7 @@
 USERINCLUDE   ../../engine/inc
 
 // System include paths
-#ifndef __SERIES60_30__
 MW_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE   /epoc32/include
-#endif
-
 
 LIBRARY         euser.lib flogger.lib
 
--- a/ncdengine/engine/group/ncddevicemgmt.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/ncddevicemgmt.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -60,12 +60,7 @@
 USERINCLUDE   ../../provider/deviceinteraction/inc
 
 // System include paths
-#ifndef __SERIES60_30__
 MW_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE /Epoc32/include
-#endif
-
 
 LIBRARY euser.lib estor.lib 
 LIBRARY bafl.lib charconv.lib efsrv.lib  // needed for ARMV5 building
@@ -91,8 +86,10 @@
 LIBRARY         avkon.lib
 LIBRARY         etel3rdparty.lib 
 LIBRARY         apgrfx.lib
-LIBRARY         swinstcli.lib           // Silent install
-LIBRARY         widgetregistryclient.lib // Widget Registry
+//LIBRARY         swinstcli.lib           // Silent install
+LIBRARY         sif.lib // SIF installer
+LIBRARY         scrclient.lib  //Registry client
+//LIBRARY         widgetregistryclient.lib // Widget Registry
 
 // HLa - temporary java remove
 //#if defined( __SERIES60_30__ ) || defined( __SERIES60_31__ ) || defined( __S60_32__ )
--- a/ncdengine/engine/group/ncdutils.mmp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/group/ncdutils.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -61,12 +61,7 @@
 USERINCLUDE   ../../provider/server/inc
 
 // System include paths
-#ifndef __SERIES60_30__
 MW_LAYER_SYSTEMINCLUDE
-#else
-SYSTEMINCLUDE /Epoc32/include
-#endif
-
 
 LIBRARY euser.lib estor.lib 
 LIBRARY bafl.lib charconv.lib efsrv.lib  // needed for ARMV5 building
--- a/ncdengine/engine/transport/inc/catalogshttpdownload.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpdownload.h	Thu Jun 24 12:37:54 2010 +0300
@@ -20,7 +20,8 @@
 #define C_CATALOGSHTTPDOWNLOAD_H
 
 #include <DownloadMgrClient.h>
-
+#include <download.h>
+#include <downloadevent.h>
 #include <s32file.h>
 
 #include "catalogshttpoperation.h"
@@ -33,7 +34,8 @@
 class CCatalogsHttpHeaders;
 class CCatalogsKeyValuePair;
 class CCatalogsHttpDownloadManager;
-
+class CCatalogsHttpQTDownload;
+using namespace WRT;
 /**
 * HTTP file download implementation
 *
@@ -77,7 +79,7 @@
     */
     static CCatalogsHttpDownload* NewLC( 
         CCatalogsHttpDownloadManager& aOwner, 
-        RHttpDownload* aDownload,
+        Download* aDownload,
         const CCatalogsHttpConfig& aConfig );
 
 
@@ -238,7 +240,8 @@
      */
     TInt StatusCode() const;        
     
-    
+    TDownloadDeleteState GetStatusState();
+    Download* GetDownload();
     /**
      * Not supported
      * @see MCatalogsHttpOperation::StatusText()
@@ -282,7 +285,9 @@
         
     TBool HandleHttpError( MCatalogsHttpOperation& aOperation, 
         TCatalogsHttpError aError );
-            
+
+     void HandledownloadEventL(DownloadEvent& aEvent);   
+              
 public:     
 
     /**
@@ -321,7 +326,7 @@
     */
     CCatalogsHttpDownload( 
         CCatalogsHttpDownloadManager& aOwner, 
-        RHttpDownload* aDownload );
+        Download* aDownload );
     
     /**
     * 2nd phase constructor
@@ -509,13 +514,14 @@
 
     CCatalogsHttpDownloadManager& iOwner;
     TCatalogsTransportOperationId iId;  // Operation id
-    RHttpDownload* iDownload;           // Platform download
+    Download* iDownload;           // Platform download
     CCatalogsHttpConfig* iConfig;       // Configuration
     MCatalogsHttpObserver* iObserver;   // Observer        
     TCatalogsHttpEvent iState;          // State of the download
     HBufC8* iUri;                       // Current URI
     HBufC8* iEncodedUri;                // Current URI as encoded
     CCatalogsHttpHeaders* iResponseHeaders; // Headers from HTTP response
+    CCatalogsHttpQTDownload* iQTDownload;
     
     // added request headers not supported by DL man
     HBufC8* iAddedRequestHeaders;       
@@ -555,7 +561,7 @@
     // For managing async pause with dlmgr.
     TBool iPausePending;
     TBool iQueuedResume;
-    
+    TDownloadDeleteState iStatus;
 protected:
 
     // Grant access to UpdateContentType
@@ -563,4 +569,18 @@
     
     };
 
+class  CCatalogsHttpQTDownload: public QObject
+	{
+		 Q_OBJECT
+		 	public:
+		 		CCatalogsHttpQTDownload(CCatalogsHttpDownload* aHttpDownload,Download* aDownload);
+	    public slots:
+    	void downloadEvent(WRT::DownloadEvent*);
+    	void downloadError(WRT::Error);
+	    public:
+	    	CCatalogsHttpDownload* iCatalogsHttpDownload;
+	    	Download* iDownload;           // Platform download
+	};
+	
+	
 #endif // C_CATALOGSHTTPDOWNLOAD_H
--- a/ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h	Thu Jun 24 12:37:54 2010 +0300
@@ -24,9 +24,12 @@
 #include "catalogstransportoperationid.h"
 #include "catalogshttpsession.h"    // RCatalogsHttpOperationArray
 #include "catalogshttpsessionmanager.h"
+
 #include "catalogsconnectionmethod.h"
 #include "catalogsaccesspointobserver.h"
-
+#include <download.h>
+#include <downloadmanager.h>
+#include <QObject>
 class MCatalogsHttpConfig;
 class CCatalogsHttpConfig;
 class CCatalogsHttpDownload;
@@ -38,16 +41,22 @@
 class CCatalogsHttpSession;
 class CCatalogsConnection;
 class CCatalogsNetworkManager;
+class CCatalogsHttpQTDownloadManager;
+using namespace WRT;
+
+const TInt KNCDEngineAppID = 0X2002E685;
+
 
 /**
  * HTTP file download manager
  *
  */
 class CCatalogsHttpDownloadManager :       
+
     public CActive, 
-    public MHttpDownloadMgrObserver,
     public MCatalogsAccessPointObserver  
     {
+  
     public: // Constructors and destructor
     
         /**
@@ -69,7 +78,7 @@
         * Destructor
         */
         virtual ~CCatalogsHttpDownloadManager();
-        
+         
     public: // New methods
     
 	    /**
@@ -159,7 +168,7 @@
 
         void AddRef();
 
-
+		DownloadManager* GetDownloadManager();
         TInt Release();    
         
         void SetConnectionMethodL( 
@@ -202,15 +211,9 @@
         
         TInt NewDownloadId();
         
-        RHttpDownload& CreatePlatformDownloadL( const TDesC8& aUrl );
-    
-    public: // From MHttpDownloadMngrObserver
-     
-        /**
-        * Handles events from Download manager 
-        */
-        virtual void HandleDMgrEventL( RHttpDownload& aDownload,
-			THttpDownloadEvent aEvent );    
+       WRT::Download& CreatePlatformDownloadL( const TDesC8& aUrl );
+      void downloadMgrEventRecieved(WRT::DownloadEvent* dlmEvent);
+
 
 
     public: // from MCatalogsAccessPointObserver
@@ -316,8 +319,7 @@
          * Deletes downloads that have not been paused by the user
          */
         void DeleteHangingDownloads();
-        
-        
+
     private:
     
         MCatalogsHttpSessionManager& iManager;
@@ -326,8 +328,9 @@
         CCatalogsHttpConnectionManager& iConnectionManager;
         CCatalogsNetworkManager* iNetworkManager; // Not owned
         TInt32 iSessionId;
-        RHttpDownloadMgr iDmgr;
-        
+        DownloadManager *iDmgr;
+        CCatalogsHttpQTDownloadManager* iQTmgr;
+        WRT::Download* iDownload;           // Platform download
         // All downloads except those that are in Restored
         RCatalogsHttpOperationArray iDownloads;
         RCatalogsHttpOperationArray iRestoredDownloads;
@@ -344,4 +347,18 @@
         TInt iCurrentDlId; // id of the last created download
     };
 
-#endif // C_CATALOGSHTTPDOWNLOADMANAGER_H
+
+
+class  CCatalogsHttpQTDownloadManager: public QObject
+	{
+		 Q_OBJECT
+		 	public:
+		 		CCatalogsHttpQTDownloadManager(CCatalogsHttpDownloadManager* aDownloadManager,DownloadManager* aDmgr);
+	    public slots:
+    	void downloadMgrEventRecieved(WRT::DownloadEvent*);
+	    public:
+	    	CCatalogsHttpDownloadManager* iDownloadManager;
+	    	DownloadManager* iDmgr ;
+	};
+	
+	#endif // C_CATALOGSHTTPDOWNLOADMANAGER_H
\ No newline at end of file
--- a/ncdengine/engine/transport/src/catalogshttpdownload.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpdownload.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -23,7 +23,10 @@
 #include <DocumentHandler.h>
 #include <apmstd.h> // TDataType
 #include <escapeutils.h>
+#include <downloadmanager.h>
 
+
+#include <QtGlobal>
 #include "catalogshttpdownloadmanagerimpl.h"
 #include "catalogshttpobserver.h"
 #include "catalogshttpconfigimpl.h"
@@ -95,7 +98,7 @@
 //	
 CCatalogsHttpDownload* CCatalogsHttpDownload::NewLC( 
     CCatalogsHttpDownloadManager& aOwner, 
-    RHttpDownload* aDownload,
+    Download* aDownload,
     const CCatalogsHttpConfig& aConfig )
     {
     CCatalogsHttpDownload* self = new( ELeave ) CCatalogsHttpDownload( 
@@ -140,7 +143,7 @@
         else 
             {
             DLTRACE(( "Deleting download" ));
-            iDownload->Delete();                        
+             iOwner.GetDownloadManager()->removeOne(iDownload);                      
             
             if ( iState.iOperationState != ECatalogsHttpOpCompleted ) 
                 {
@@ -244,8 +247,8 @@
         {
         iObserver = NULL;
         TInt32 state = 0;
-        iDownload->GetIntAttribute( EDlAttrState, state );
-        
+
+         state = (Download::State)iDownload->attribute(State).toInt();
         if ( IsOneOf( 
                 static_cast<THttpDownloadState>( state ), 
                 EHttpDlCreated,
@@ -473,7 +476,14 @@
         TInt err = KErrNone;
         if ( iDownload ) 
             {
-            err = iDownload->Pause();
+					    try
+							{
+							iDownload->pause();
+							}
+			        catch(const std::exception& exception)
+			        	{
+							 err = qt_symbian_exception2Error(exception);
+			        	}
             }
         
         DLTRACE(("Pause err: %d", err ));
@@ -680,7 +690,8 @@
     // client-server communication with the Download manager server
     if ( iDownload && iContentSize <= 0 ) 
         {                
-        iDownload->GetIntAttribute( EDlAttrLength, iContentSize );    
+    
+        int  downloadbytes   =  iDownload->attribute(DownloadedSize).toInt();
         DLTRACE(("Content size from download: %i", iContentSize ));
         }
     return iContentSize;
@@ -706,7 +717,8 @@
     TBool pausable = ETrue;
     if ( iDownload ) 
         {        
-        iDownload->GetBoolAttribute( EDlAttrPausable, pausable );
+
+        pausable=iDownload->attribute(Pausable).toBool();
         }
     return pausable;
     }
@@ -839,7 +851,88 @@
     return KErrNone;
     }
 
+void CCatalogsHttpDownload::HandledownloadEventL(DownloadEvent& aEvent)
+{
+	
+	switch(aEvent.type())
+	{
+		
+		case DownloadEvent::Started:
+		
+			break;
+		
+		case DownloadEvent::Failed:
+			{
+		      TInt32 errorId = -1;
+            SetTransferring( EFalse );
+            errorId = iDownload->attribute(LastError).toInt();
+            if ( ( errorId == ConnectionFailed || 
+                   errorId == TransactionFailed )) 
+                {
+                DLTRACE(("Try to reconnect"));
+                iReconnectWhenFail = EFalse;
+                iDownload->start();
+                break;
+                }
+            else if ( errorId == ContentExpired ||
+                      errorId == PartialContentModified )
+                {
+                DLTRACE(("Content has changed, reset and restart"));
+                iReconnectWhenFail = EFalse;
+                iDownload->cancel();
+                iDownload->start();
+                break;
+                }
+ 
+			}
+			break;
+		
+		case DownloadEvent::Cancelled:
+		
+			break;
+		case DownloadEvent::ContentTypeChanged:
+			
+			break;
+		case DownloadEvent::HeadersReceived:
+			{
+					// Read the response headers from platform DL manager
+			UpdateResponseHeadersL();		
+			UpdateContentType();
+		  }
+			break;
+		
+		case DownloadEvent::NetworkLoss:
+			
+		  break;
+		  
+		case DownloadEvent::Completed:
+			  {            
+            // move/rename temp file as the target file
+            TRAPD( err, MoveFileL() );
+            
+            // DLMAIN-546, delete DL manager's download before starting
+            // the next one so that downloads don't jam, again
+            if ( iDownload ) 
+                {   
+                	iTransferredSize = iDownload->attribute(DownloadedSize).toInt();             
+         
+                    
+                DLTRACE(("Deleting download"));                
+                DeletePlatformDownload();                
+                }
 
+	     }
+			break;
+			
+		case DownloadEvent::InProgress:
+		
+		  break;
+		  
+	  default:
+            {
+            }		  
+	};
+}
 // ---------------------------------------------------------------------------
 // Handles events from the transaction
 // ---------------------------------------------------------------------------
@@ -1025,20 +1118,20 @@
     
 	TInt32 statusCode = -1;
 	
-	iDownload->GetIntAttribute( EDlAttrStatusCode, statusCode );
-	DLINFO( ("Response status: %i", statusCode ) );
+	 statusCode  = (Download::State)iDownload->attribute(WRT::State).toInt(); 
+	 DLINFO( ("Response status: %i", statusCode ) );
 
 #ifdef CATALOGS_BUILD_CONFIG_DEBUG    
     TInt32 errorId = 0;
+		errorId=iDownload->attribute(LastError).toInt();
 
-	iDownload->GetIntAttribute( EDlAttrErrorId, errorId );
 	DLINFO( ("Error id: %i", errorId ) );
 	    
 #endif
 
     TInt32 globalErrorId = 0;    
-	iDownload->GetIntAttribute( 
-	    EDlAttrGlobalErrorId, globalErrorId );
+   globalErrorId= iDownload->attribute(LastError).toInt();
+
 	DLINFO( ("Global error id: %i", globalErrorId ) );
 	
 
@@ -1085,7 +1178,7 @@
                 {
                 DLTRACE(("Try to reconnect"));
                 iReconnectWhenFail = EFalse;
-                iDownload->Start();                
+                iDownload->start();                
                 break;
                 }
             
@@ -1143,9 +1236,9 @@
             // DLMAIN-546, delete DL manager's download before starting
             // the next one so that downloads don't jam, again
             if ( iDownload ) 
-                {                
-                iDownload->GetIntAttribute( 
-                    EDlAttrDownloadedSize, iTransferredSize );   
+                {   
+                	iTransferredSize = iDownload->attribute(DownloadedSize).toInt();             
+         
                     
                 DLTRACE(("Deleting download"));                
                 DeletePlatformDownload();                
@@ -1179,7 +1272,8 @@
             DLTRACE(( "Download failed" ));
             TInt32 errorId = -1;
             SetTransferring( EFalse );
-        	iDownload->GetIntAttribute( EDlAttrErrorId, errorId );
+            errorId = iDownload->attribute(LastError).toInt();
+        
         	DLINFO( ("Error id: %i", errorId ) );
 
         	DLINFO( ("Global error id: %i", globalErrorId ) );
@@ -1190,7 +1284,7 @@
                 {
                 DLTRACE(("Try to reconnect"));
                 iReconnectWhenFail = EFalse;
-                iDownload->Start();
+                iDownload->start();
                 break;
                 }
             else if ( errorId == EContentExpired ||
@@ -1198,8 +1292,8 @@
                 {
                 DLTRACE(("Content has changed, reset and restart"));
                 iReconnectWhenFail = EFalse;
-                iDownload->Reset();
-                iDownload->Start();
+                iDownload->cancel();
+                iDownload->start();
                 break;
                 }
             
@@ -1388,8 +1482,7 @@
 		    if ( !iPaused ) 
 		        {		  
                 TInt32 globalErrorId = 0;
-            	iDownload->GetIntAttribute( 
-            	    EDlAttrGlobalErrorId, globalErrorId );
+            	    globalErrorId = iDownload->attribute(LastError).toInt();
             	DLINFO( ("Global error id: %i", globalErrorId ) );
 
                 if ( globalErrorId == KErrCancel ) 
@@ -1495,7 +1588,8 @@
 		    iReconnectCount = KReconnectAttempts;
 
 		    TInt32 size = 0;
-	        iDownload->GetIntAttribute( EDlAttrDownloadedSize, size );   
+		     size = iDownload->attribute(DownloadedSize).toInt();
+
 	        DLTRACE(("Transferred size from download: %i", size));
 
 	        if ( size != iTransferredSize ) 
@@ -1636,7 +1730,7 @@
 //	
 CCatalogsHttpDownload::CCatalogsHttpDownload( 
     CCatalogsHttpDownloadManager& aOwner, 
-    RHttpDownload* aDownload ) :
+    Download* aDownload ) :
     iOwner( aOwner ), 
     iDownload( aDownload ), 
     iState( ECatalogsHttpOpCreated, ECatalogsHttpNone ),
@@ -1659,7 +1753,8 @@
         {        
         // id part will be updated from disk
         iId = TCatalogsTransportOperationId( iOwner.SessionId(), KErrNotFound );
-
+				iQTDownload = new CCatalogsHttpQTDownload(this,iDownload);
+				 
         UpdateSecondaryIdL();
         
         User::LeaveIfError( SetDeleteState( EDownloadCanBeDeleted ) );
@@ -1700,8 +1795,11 @@
         {
         // Download always exists when this is called so no need to check
         DLTRACE(("Updating the content type"));
-        iDownload->GetStringAttribute( EDlAttrContentType,
-            iContentType );
+        QString contentType;
+        contentType= iDownload->attribute(WRT::ContentType).toString();
+        	TBuf<KMaxContentTypeLength>  ContentType(contentType.utf16());
+        	iContentType.Copy(ContentType);
+   
         }
     DLTRACEOUT(("Content-type: %S", &iContentType ));
     }
@@ -1821,9 +1919,16 @@
     RBuf8 buf;
     CleanupClosePushL( buf );
     buf.CreateL( KMaxUrlLength );
-    
-    User::LeaveIfError( iDownload->GetStringAttribute( EDlAttrCurrentUrl,
-        buf ) );
+    QString string;
+	try
+	{
+    string = iDownload->attribute(SourceUrl).toString();
+	}
+    catch(const std::exception& exception)
+    	{
+			 qt_symbian_exception2LeaveL(exception);
+    	}
+
     
     // DL manager has the encoded URI
     AssignDesL( iEncodedUri, buf );
@@ -1867,8 +1972,8 @@
             }
         else 
             {
-            User::LeaveIfError( iDownload->SetStringAttribute(
-                predefined, headers[i]->Value() ) );
+/*            User::LeaveIfError( iDownload->SetStringAttribute(
+                predefined, headers[i]->Value() ) );*/
             }
         }
 
@@ -1877,8 +1982,8 @@
     if ( iAddedRequestHeaders ) 
         {
         DLTRACE(( "added request headers: %S", iAddedRequestHeaders ));
-        User::LeaveIfError( iDownload->SetStringAttribute(
-            EDlAttrRequestHeaderAddon, *iAddedRequestHeaders ) );
+     /*   User::LeaveIfError( iDownload->SetStringAttribute(
+            EDlAttrRequestHeaderAddon, *iAddedRequestHeaders ) );*/
         delete iAddedRequestHeaders;
         iAddedRequestHeaders = NULL;
         }    
@@ -2254,10 +2359,17 @@
             InitializeDownloadL();
             }
         });
-    
+   
     if ( err == KErrNone ) 
         {
-        err = iDownload->Start();
+						 try
+							{
+							iDownload->start();
+							}
+			        catch(const std::exception& exception)
+			        	{
+							 qt_symbian_exception2LeaveL(exception);
+			        	}
         }
     return err;
     }
@@ -2471,13 +2583,17 @@
     TInt err = KErrNone;
     if ( iDownload ) 
         {    
-        err = iDownload->SetIntAttribute( EDlAttrUserData, aStatus );
+
+        iStatus = aStatus;
         }
     
     return err;
     }
 
-
+CCatalogsHttpDownload::TDownloadDeleteState CCatalogsHttpDownload::GetStatusState()
+	{
+		return iStatus;
+	}
 // ---------------------------------------------------------------------------
 // Gets delete status and download id from the platform download
 // ---------------------------------------------------------------------------
@@ -2491,7 +2607,8 @@
     TInt err = KErrNotReady;
     if ( iDownload ) 
         {
-        err = iDownload->GetIntAttribute( EDlAttrUserData, data );
+
+        err = iStatus;
         DLTRACE(("Data: %d", data));
         aStatus = static_cast<TDownloadDeleteState>( data );
         }
@@ -2572,8 +2689,14 @@
                 
         // Check if the download has been set progressive
         TBool progressive = EFalse;
-        User::LeaveIfError( iDownload->GetBoolAttribute( 
-            EDlAttrProgressive, progressive ) );
+		try
+		{
+		         progressive =iDownload->attribute(Progressive).toBool(); 
+		}
+        catch(const std::exception& exception)
+        	{
+				 qt_symbian_exception2LeaveL(exception);
+        	}  
 
         
         // We want to have progressive downloads because then DL manager uses
@@ -2591,18 +2714,30 @@
              !iFileIsSet ) 
             {
             DLTRACE(("Setting download as progressive"));
-            User::LeaveIfError( iDownload->SetBoolAttribute( 
-                EDlAttrProgressive, ETrue ) );
-            }
+						try
+						{
+						   iDownload->setAttribute(Progressive,ETrue);
+						}
+						catch(const std::exception& exception)
+						{
+							qt_symbian_exception2LeaveL(exception);
+						}  
+						}
         
         // Doesn't pause the download after content type has been received
-        User::LeaveIfError( iDownload->SetBoolAttribute( 
-            EDlAttrNoContentTypeCheck, ETrue ) );
+					try
+					{
+						iDownload->setAttribute(Progressive,ETrue);
+					}
+					catch(const std::exception& exception)
+					{
+						qt_symbian_exception2LeaveL(exception);
+					}  
 
         if ( !iFileIsSet )
             {
             DLTRACE(("Setting filehandle to download"));
-            User::LeaveIfError( iDownload->SetFileHandleAttribute( file ) );
+           // User::LeaveIfError( iDownload->SetFileHandleAttribute( file ) );
             iFileIsSet = ETrue;                        
             }
 
@@ -2610,7 +2745,10 @@
         }        
     }
 
-
+Download* CCatalogsHttpDownload::GetDownload()
+{
+	return iDownload;
+}
 // ---------------------------------------------------------------------------
 // Delete platform download and reset secondary id
 // ---------------------------------------------------------------------------
@@ -2619,7 +2757,7 @@
     {
     if ( iDownload )
         {
-        iDownload->Delete();
+        iOwner.GetDownloadManager()->removeOne(iDownload);
         iDownload = NULL;
         iId.SetSecondaryId( KErrNotFound );
         }
@@ -2633,8 +2771,7 @@
 void CCatalogsHttpDownload::UpdateSecondaryIdL()
     {
     TInt32 secondaryId = KErrNotFound;
-    User::LeaveIfError( 
-        iDownload->GetIntAttribute( EDlAttrId, secondaryId ) );
+    secondaryId = iDownload->id();
     iId.SetSecondaryId( secondaryId );    
     }
 
@@ -2675,3 +2812,19 @@
        aName.Append( aExt );
        }
     }
+    
+CCatalogsHttpQTDownload::CCatalogsHttpQTDownload(CCatalogsHttpDownload* aHttpDownload,Download* aDownload)
+	{
+		iCatalogsHttpDownload = aHttpDownload;
+		iDownload = aDownload;
+		connect(iDownload, SIGNAL(downloadEvent(DownloadManagerEvent*)), this,SLOT(downloadEvent(DownloadEvent*)));
+	}
+	
+void CCatalogsHttpQTDownload::downloadEvent(WRT::DownloadEvent* aEvent)
+	{
+		iCatalogsHttpDownload->HandledownloadEventL(*aEvent);
+	}
+void CCatalogsHttpQTDownload::downloadError(WRT::Error)
+	{
+		//iCatalogsHttpDownload->HandledownloadEventL(*aEvent);
+	}
\ No newline at end of file
--- a/ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -32,7 +32,10 @@
 #include "catalogsconnection.h"
 
 #include "catalogsdebug.h"
-
+#include <QString.h>
+#include <QVector.h>
+#include <QList.h>
+#include <downloadevent.h>
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
@@ -59,6 +62,7 @@
             
     DLTRACE(("constructor ok"));
     CleanupStack::PushL( self );
+   
     self->ConstructL( aCleanup );
     CleanupStack::Pop( self );
     return self;
@@ -102,15 +106,17 @@
         iNetworkManager->RemoveObserver( *this );
         }
 
-    if ( iDmgr.Handle() ) 
+
+    if ( iDmgr ) 
         {
         DLTRACE(("We were connected to DL manager"));
         DeleteHangingDownloads();
         }
-        
+      
     // Close download manager session    
-    iDmgr.Close();
+    iDmgr->removeAll();
     
+   
     delete iDefaultConfig;
     iManager.Release();
     
@@ -124,24 +130,20 @@
     {
     DLTRACEIN((""));
     // This pauses all downloads in addition to disconnecting
-    iDmgr.Disconnect();
-    const CDownloadArray& downloads( iDmgr.CurrentDownloads() );
-
-    TInt count = downloads.Count();
-    while( count-- )
-        {                         
-        RHttpDownload& dl = *( downloads[ count ] );
-        TInt32 deleteStatus = 0;
-        dl.GetIntAttribute( EDlAttrUserData, deleteStatus );
-        DLTRACE(("DeleteStatus: %d", deleteStatus ));
-        
-        if ( deleteStatus == CCatalogsHttpDownload::EDownloadCanBeDeleted ) 
+ 	iDmgr->pauseAll(); 
+   TInt count = iDownloads.Count();
+    for ( TInt i = 0; i < count; ++i )
+        {
+         TInt32 deleteStatus = 0;
+         deleteStatus = dynamic_cast<CCatalogsHttpDownload*>(iDownloads[i])->GetStatusState();
+       
+         if ( deleteStatus == CCatalogsHttpDownload::EDownloadCanBeDeleted ) 
             {
             DLTRACE(("Deleting download"));
-            dl.Delete();
+            iDmgr->removeOne(dynamic_cast<CCatalogsHttpDownload*>(iDownloads[i])->GetDownload());
             }
+        }        
         
-        }
     }
 
 // ---------------------------------------------------------------------------
@@ -172,16 +174,18 @@
     {
     DLTRACEIN((""));
     // Create a new download
+   	QString Url =	QString::fromRawData( reinterpret_cast<const QChar*>(aUrl.Ptr()),aUrl.Length());
+    iDownload = iDmgr->createDownload( Url );
+    
     CCatalogsHttpDownload* dl = CCatalogsHttpDownload::NewLC( 
         *this,
         //download,
-        NULL,
+        iDownload,
         *iDefaultConfig );
     
     dl->SetUriL( aUrl );
     dl->SetFileServerSession( iFs );
-    
-    // If the given observer != NULL, set it as the observer for the download
+        // If the given observer != NULL, set it as the observer for the download
     if ( aObserver ) 
         {        
         dl->Config().SetObserver( aObserver );        
@@ -207,6 +211,7 @@
     TInt count = iDownloads.Count();
     for ( TInt i = 0; i < count; ++i )
         {
+        	
         if ( iDownloads[i]->OperationId() == aId ) 
             {
             return iDownloads[i];
@@ -396,12 +401,19 @@
     DLTRACEIN((""));
     if ( aMethod != iCurrentAp )
         {
+		try
+		{
         DLTRACE( ( "Set AP, type: %d, id: %u, apn: %d", 
             aMethod.iType, aMethod.iId, aMethod.iApnId ));
-        User::LeaveIfError( iDmgr.Disconnect() );    
-        User::LeaveIfError( iDmgr.SetIntAttribute( EDlMgrIap, aMethod.iApnId ) );
+		 iDmgr->pauseAll(); 
+		 
         iCurrentAp = aMethod;
         DLTRACE(("AP set"));
+		}
+		 catch(const std::exception& exception)
+		 {
+		 qt_symbian_exception2LeaveL(exception);
+		 }
         }    
     }
 
@@ -460,40 +472,23 @@
     {
     return iSessionId;
     }
-    
-    
+
 // ---------------------------------------------------------------------------
 // Handles download manager events
 // ---------------------------------------------------------------------------
-//
-void CCatalogsHttpDownloadManager::HandleDMgrEventL( RHttpDownload& aDownload,
-	THttpDownloadEvent aEvent )
-    {
-    DLTRACEIN(( "Dl state: %i, pr: %i, DL: %x", aEvent.iDownloadState, 
-        aEvent.iProgressState, &aDownload ));
-        
-    TDownloadEvent event( aDownload, aEvent );
+//    
+ void CCatalogsHttpDownloadManager::downloadMgrEventRecieved(WRT::DownloadEvent* dlmEvent)
+  {
+  	
+  	switch(dlmEvent ->type())
+		{
+ 
+    default:
+    	break;
+		};
 
-    if ( IsOneOf( aEvent.iDownloadState, EHttpDlDeleted, EHttpDlDeleting ) )
-        {
-        DLTRACEOUT(("Download was deleted"))
-        RemoveUnhandledEvents( event );
-        }
-    // Handle everything but Download name change events
-    else if ( aEvent.iProgressState != EHttpProgDlNameChanged )     
-        {        
-        DLTRACE(("Adding event to queue"));        
-        
-        if ( aEvent.iProgressState == EHttpProgResponseBodyReceived ) 
-            {
-            // Filter unhandled progress events from the queue
-            RemoveUnhandledProgressEvents( event );
-            }
-        
-        iEventQueue.AppendL( event );    
-        ContinueEventHandling();    
-        }
-    }
+  	
+  }  
 
 
 // ---------------------------------------------------------------------------
@@ -507,8 +502,19 @@
     DLTRACEIN((""));
     if ( aEvent == ECatalogsAccessPointClosed ) 
         {
+		try
+		{
         DLTRACE(("Disconnecting download manager"));
-        User::LeaveIfError( iDmgr.Disconnect() );
+
+		iDmgr->pauseAll();
+	}
+
+ 		catch(const std::exception& exception) 
+               { 
+               qt_symbian_exception2LeaveL(exception); 
+               } 
+            
+
         }
     }
 
@@ -556,6 +562,11 @@
     
     // shared so that RFiles can be given to Download manager
     User::LeaveIfError( iFs.ShareProtected() ); 
+   	
+   	QString DmgrUid(QString::number(KNCDEngineAppID));
+    iDmgr =  new DownloadManager(DmgrUid);
+    iDmgr->initialize();
+    iQTmgr = new CCatalogsHttpQTDownloadManager(this,iDmgr);
     
     TUid sessionId( TUid::Uid( iSessionId ) );
     if ( aCleanup ) 
@@ -581,7 +592,6 @@
     
     do    
         {
-        // TRAP( err, iDmgr.ConnectL( sessionId, *this, ETrue ) );
         if ( err != KErrNone ) 
             {
             DLERROR(("DL manager connection failed with err: %d, retry attempts left", 
@@ -607,13 +617,17 @@
     iNetworkManager = &CCatalogsHttpSessionManager::NetworkManagerL();
     iNetworkManager->AddObserverL( *this );    
     
-//    iDmgr.SetIntAttribute( EDlMgrExitAction, EExitPause );
     // Restore downloads from previous sessions
 //    RestoreDownloadsL();
+ 
     DLTRACEOUT((""));
+
     }
     
-
+DownloadManager* CCatalogsHttpDownloadManager::GetDownloadManager()
+{
+	return iDmgr;
+}
 // ---------------------------------------------------------------------------
 // Restore downloads from previous session
 // ---------------------------------------------------------------------------
@@ -621,17 +635,19 @@
 void CCatalogsHttpDownloadManager::RestoreDownloadsL()
     {
     DLTRACEIN((""));
-    const CDownloadArray& downloads = iDmgr.CurrentDownloads();    
     
     TBuf8<KMaxUrlLength> url;
-    TBuf<KMaxPath> filename;
+    
     
+    QList<WRT::Download*> downloads = iDmgr->currentDownloads();
+
+
     // Go through downloads, create wrappers for DL manager downloads and
     // add them to HttpDownloadManager
-    for ( TInt i = 0; i < downloads.Count(); ++i ) 
+    for ( TInt i = 0; i < downloads.size(); ++i ) 
         {                 
         DLTRACE(( "Restoring dl %i", i ));
-        RHttpDownload* dlPtr = downloads[i];
+        WRT::Download *dlPtr = downloads[i];
 
         // Create the download and push it to cleanup stack
         CCatalogsHttpDownload* dl = CCatalogsHttpDownload::NewLC( *this,
@@ -639,8 +655,9 @@
 
         // set file server session
         dl->SetFileServerSession( iFs );
-        
-        dlPtr->GetStringAttribute( EDlAttrDestFilename, filename );
+       
+         QString name   =  dlPtr->attribute(FileName).toString();
+         TBuf<KMaxPath> filename(name.utf16());
 
         // Separate the filename from the path
         TParsePtrC parser( filename );
@@ -683,7 +700,7 @@
     DASSERT( aDownload );
     
     TInt32 id = 0;
-    aDownload->GetIntAttribute( EDlAttrId, id );    
+    //aDownload->GetIntAttribute( EDlAttrId, id );    
             
     TInt count = aArray.Count();
     for ( TInt i = 0; i < count; ++i )
@@ -954,8 +971,23 @@
     }
 
 
-RHttpDownload& CCatalogsHttpDownloadManager::CreatePlatformDownloadL( 
+Download& CCatalogsHttpDownloadManager::CreatePlatformDownloadL( 
     const TDesC8& aUrl )
     {
-    return iDmgr.CreateDownloadL( aUrl );
+    
+   	QString myString=	QString::fromRawData( reinterpret_cast<const QChar*>(aUrl.Ptr()),aUrl.Length());
+
+    return *(iDmgr->createDownload( myString ));
     }
+    
+CCatalogsHttpQTDownloadManager::CCatalogsHttpQTDownloadManager(CCatalogsHttpDownloadManager* aDownloadManager,DownloadManager* aDmgr)
+	{
+		iDownloadManager = aDownloadManager;
+		iDmgr = aDmgr;
+		connect(iDmgr, SIGNAL(downloadManagerEvent(WRT::DownloadManagerEvent*)), this,SLOT(downloadMgrEventRecieved(WRT::DownloadEvent*)));
+	}
+	
+void CCatalogsHttpQTDownloadManager::downloadMgrEventRecieved(WRT::DownloadEvent* aEvent)
+	{
+		iDownloadManager->downloadMgrEventRecieved(aEvent);
+	}
\ No newline at end of file
--- a/ncdengine/inc/ncdnodeinstall.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/inc/ncdnodeinstall.h	Thu Jun 24 12:37:54 2010 +0300
@@ -32,18 +32,12 @@
 class MDesCArray;
 class MNcdInstalledContent;
 
-// Forward declaration for SwiUI::TInstallOptions
-// SwiUI namespace contains install options 
-// that are used for the silent install.
-// #include <SWInstDefs.h> 
-// is required when SwiUI::TInstallOptions is created 
-// in the implementation code.
-namespace SwiUI
+// Forward declaration for Usif::TInstallOptions
+namespace Usif
     {
-    class TInstallOptions;    
+    class COpaqueNamedParams;    
     }
 
-
 /**
  *  Provides functions that can be used to install the node object.
  *  Before installing, the data should have been downloaded using
@@ -83,7 +77,6 @@
      */
     virtual MNcdInstallOperation* InstallL( MNcdInstallOperationObserver& aObserver ) = 0;
 
-
     /**
      * Starts the silent installing operation of the node object.
      * Because installation is silent, normal installation query dialogs are not shown.
@@ -96,7 +89,7 @@
      * function of the operation should be called when operation is not needed anymore.
      * 
      * @note Requires TrustedUI capabilities
-     * @note Only SIS packages and Java archives are installed silently, other content
+     * @note Only SIS packages and Java archives and widgets are installed silently, other content
      * is installed exactly like with InstallL
      * 
      * @param aObserver Observer for the operation.
@@ -109,9 +102,9 @@
      * Leaves with KNcdErrorParallelOperationNotAllowed if a parallel client is running
      *  an operation for the same metadata. See MNcdOperation for full explanation.
      */
-    virtual MNcdInstallOperation* SilentInstallL( MNcdInstallOperationObserver& aObserver,
-                                                  const SwiUI::TInstallOptions& aInstallOptions ) = 0;
-
+    virtual MNcdInstallOperation* SilentInstallL( 
+                MNcdInstallOperationObserver& aObserver,
+                Usif::COpaqueNamedParams* aInstallOptions ) = 0;
 
     /**
      * Checks if the item content has already been installed and is currently present in the
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/ncdengine.pro	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,19 @@
+#
+# 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 = subdirs
+
+SUBDIRS += engine/engine.pro 
--- a/ncdengine/provider/client/inc/ncdnodeinstallproxy.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/client/inc/ncdnodeinstallproxy.h	Thu Jun 24 12:37:54 2010 +0300
@@ -125,14 +125,12 @@
      */ 
     MNcdInstallOperation* InstallL( MNcdInstallOperationObserver& aObserver );
 
-
     /**
      * @see MNcdNodeInstall::SilentInstallL()
      */ 
-    MNcdInstallOperation* SilentInstallL( MNcdInstallOperationObserver& aObserver,
-                                          const SwiUI::TInstallOptions& aInstallOptions );
-    
-
+    MNcdInstallOperation* SilentInstallL( 
+                MNcdInstallOperationObserver& aObserver,
+                Usif::COpaqueNamedParams* aInstallOptions );
     /**
      * @see MNcdNodeInstall::IsInstalledL()
      */ 
--- a/ncdengine/provider/client/inc/ncdoperationmanagerproxy.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/client/inc/ncdoperationmanagerproxy.h	Thu Jun 24 12:37:54 2010 +0300
@@ -63,10 +63,10 @@
 
 
 // Forward declaration for silent install
-// SwiUI::TInstallOptions
-namespace SwiUI
+// Usif::TInstallOptions
+namespace Usif
     {
-    class TInstallOptions;    
+    class COpaqueNamedParams;    
     }
 
 /**
@@ -230,7 +230,7 @@
     virtual CNcdSilentInstallOperationProxy* CreateSilentInstallOperationL(
         CNcdNodeProxy& aNode, 
         MNcdInstallOperationObserver* aObserverconst,
-        const SwiUI::TInstallOptions& aInstallOptions );
+        Usif::COpaqueNamedParams* aInstallOptions );
     
     
     /**
--- a/ncdengine/provider/client/inc/ncdsilentinstalloperationproxy.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/client/inc/ncdsilentinstalloperationproxy.h	Thu Jun 24 12:37:54 2010 +0300
@@ -22,7 +22,7 @@
 #include <e32cmn.h>
 
 // For silent install options and options package
-#include <SWInstDefs.h>
+#include <usif/sif/sifcommon.h>
 
 #include "ncdinstalloperationproxy.h"
 
@@ -51,7 +51,7 @@
                         CNcdNodeManagerProxy* aNodeManager,
                         MNcdInstallOperationObserver* aObserver,
                         MNcdInstallationService& aInstallationService,
-                        const SwiUI::TInstallOptions& aInstallOptions );
+                        Usif::COpaqueNamedParams* aInstallOptions );
 
 
 protected: // CActive
@@ -70,7 +70,7 @@
      * @see NewLC
      */
     CNcdSilentInstallOperationProxy( MNcdInstallationService& aInstallationService,
-                                     const SwiUI::TInstallOptions& aInstallOptions );
+                                     Usif::COpaqueNamedParams* aInstallOptions );
     
     virtual ~CNcdSilentInstallOperationProxy();
 
@@ -99,10 +99,10 @@
     virtual void UseInstallServiceL( const CNcdFileInfo& aFile );
     
     /**
-     * @return const SwiUI::TInstallOptionsPckg& Contains the install options 
+     * @return const Usif::COpaqueNamedParams* Contains the install options 
      * for silent install in a data buffer.
      */
-    const SwiUI::TInstallOptionsPckg& SilentInstallOptionsPackage() const;
+    const Usif::COpaqueNamedParams* SilentInstallOptions() const;
     
     
 private: // new methods
@@ -114,8 +114,9 @@
 
 private: // data
 
+    
     // This will contain the install options for silent install in a data buffer.
-    SwiUI::TInstallOptionsPckg iInstallOptionsPackage;
+    Usif::COpaqueNamedParams* iInstallOptions;
 
     };
 
--- a/ncdengine/provider/client/src/ncdnodeinstallproxy.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/client/src/ncdnodeinstallproxy.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -202,14 +202,13 @@
     return op;
     }
 
-
 // ---------------------------------------------------------------------------
 // Creates an install operation
 // ---------------------------------------------------------------------------
 //
 MNcdInstallOperation* CNcdNodeInstallProxy::SilentInstallL( 
     MNcdInstallOperationObserver& aObserver,
-    const SwiUI::TInstallOptions& aInstallOptions )
+    Usif::COpaqueNamedParams* aInstallOptions )
     {
     DLTRACEIN((""));
 
@@ -219,9 +218,12 @@
     // observer.
     // Notice that TrustedUI capabilites are checked when silent install operation is
     // created in the server side.
+    
     CNcdInstallOperationProxy* op = 
         Metadata().Node().OperationManager().CreateSilentInstallOperationL(
         Metadata().Node(), this, aInstallOptions );
+    
+    
     iOperationObserver = &aObserver;
        
     DLTRACEOUT((""));    
--- a/ncdengine/provider/client/src/ncdoperationmanagerproxy.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/client/src/ncdoperationmanagerproxy.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -442,7 +442,7 @@
 CNcdSilentInstallOperationProxy* CNcdOperationManagerProxy::CreateSilentInstallOperationL(
     CNcdNodeProxy& aNode,
     MNcdInstallOperationObserver* aObserver,
-    const SwiUI::TInstallOptions& aInstallOptions )
+    Usif::COpaqueNamedParams* aInstallOptions )
     {
    DLTRACEIN((""));
 
--- a/ncdengine/provider/client/src/ncdsilentinstalloperationproxy.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/client/src/ncdsilentinstalloperationproxy.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -39,7 +39,7 @@
     CNcdNodeManagerProxy* aNodeManager,
     MNcdInstallOperationObserver* aObserver,
     MNcdInstallationService& aInstallationService,
-    const SwiUI::TInstallOptions& aInstallOptions )
+    Usif::COpaqueNamedParams* aInstallOptions )
     {
     CNcdSilentInstallOperationProxy* self =
         new( ELeave ) CNcdSilentInstallOperationProxy( aInstallationService, 
@@ -59,15 +59,14 @@
 //
 CNcdSilentInstallOperationProxy::CNcdSilentInstallOperationProxy( 
     MNcdInstallationService& aInstallationService,
-    const SwiUI::TInstallOptions& aInstallOptions )
+    /*const*/ Usif::COpaqueNamedParams* aInstallOptions )
 : CNcdInstallOperationProxy( aInstallationService )
     {
     // Copy all the install options into the buffer that will be used
     // when silent installation is delegated to the installer.
-    iInstallOptionsPackage = aInstallOptions;
+    iInstallOptions = aInstallOptions;
     }
 
-
 // ---------------------------------------------------------------------------
 // Destructor
 // ---------------------------------------------------------------------------
@@ -190,7 +189,7 @@
                 iFileHandle, 
                 aFile.MimeType(), 
                 aFile.Purpose(), 
-                SilentInstallOptionsPackage() );
+                SilentInstallOptions() ); 
             break;
             }
         
@@ -201,7 +200,7 @@
                 iFileHandle, 
                 aFile.MimeType(), 
                 aFile.Data(),
-                SilentInstallOptionsPackage() );             
+                SilentInstallOptions() );             
             break;
             }            
 
@@ -212,7 +211,7 @@
             {
             Installer().SilentInstallWidgetL(
                     iFileHandle, 
-                    SilentInstallOptionsPackage() );
+                    SilentInstallOptions() );
    
             break;
             }
@@ -227,9 +226,8 @@
     DLTRACEOUT((""));   
     }
 
-
-const SwiUI::TInstallOptionsPckg& CNcdSilentInstallOperationProxy::SilentInstallOptionsPackage() const
+const Usif::COpaqueNamedParams* CNcdSilentInstallOperationProxy::SilentInstallOptions() const
     {
     DLTRACEIN((""));
-    return iInstallOptionsPackage;
+    return iInstallOptions;
     }
--- a/ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h	Thu Jun 24 12:37:54 2010 +0300
@@ -22,7 +22,8 @@
 // SwiUI namespace contains install options 
 // and install options package definitions
 // that are used for the silent install.
-#include <SWInstDefs.h>
+//#include <SWInstDefs.h>
+#include <usif/sif/sifcommon.h>
 
 #include "ncditempurpose.h"
 
@@ -124,7 +125,7 @@
     virtual void SilentInstallL( RFile& aFile,
                                  const TDesC& aMimeType,
                                  const TNcdItemPurpose& aPurpose ,
-                                 const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg ) = 0;
+                                 const Usif::COpaqueNamedParams* aInstallOptionsPckg ) = 0;
 
 
     /**
@@ -134,13 +135,13 @@
     virtual void SilentInstallJavaL( RFile& aFile,
                                      const TDesC& aMimeType,
                                      const TDesC8& aDescriptorData,
-                                     const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg ) = 0;
+                                     const Usif::COpaqueNamedParams* aInstallOptionsPckg ) = 0;
     
     /*
      * Use SWI API to install widget silently. 
      */     
     virtual void SilentInstallWidgetL(RFile& aFile,
-                                      const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg ) = 0;
+                                      const Usif::COpaqueNamedParams* aInstallOptionsPckg ) = 0;
 
     /**
      * Cancels the silent installation if it is going on.
--- a/ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h	Thu Jun 24 12:37:54 2010 +0300
@@ -26,8 +26,8 @@
 #include <swi/sisregistryentry.h>
 #include <apgcli.h>
 #include <centralrepository.h>
-#include <SWInstApi.h>
-#include <WidgetRegistryClient.h>
+#include <usif/sif/sif.h>
+#include <usif/scr/scr.h>
 
 #include "ncdinstallationservice.h"
 #include "ncditempurpose.h"
@@ -36,25 +36,6 @@
 
 #include "ncdwidgetregistrydata.h"
 
-/**
- * New Java registry API was introduced in 3.2. We start using it 
- * from 5.0 onwards because it seems that some 3.2 devices don't support
- * it entirely
- */
- 
- /*  HLa - temporary java remove
-#if defined( __SERIES60_30__ ) || defined( __SERIES60_31__ ) || defined ( __S60_32__ )
-    #define USE_OLD_JAVA_API
-    class MJavaRegistrySuiteEntry;
-    class MJavaRegistry;
-#else
-    namespace Java
-        {
-        class CJavaRegistry;
-        }
-#endif
-*/
-
 class CDocumentHandler;
 
 class MNcdInstallationServiceObserver;
@@ -140,7 +121,7 @@
     void SilentInstallL( RFile& aFile,
                          const TDesC& aMimeType,
                          const TNcdItemPurpose& aPurpose,
-                         const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg );
+                         const Usif::COpaqueNamedParams* aInstallOptionsPckg );
     
     /**
      * @see MNcdInstallationService::SilentInstallJavaL
@@ -148,13 +129,13 @@
     void SilentInstallJavaL( RFile& aFile,
                              const TDesC& aMimeType,
                              const TDesC8& aDescriptorData,
-                             const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg );
+                             const Usif::COpaqueNamedParams* aInstallOptionsPckg );
     
     /**
      * @see MNcdInstallationService::SilentInstallWidgetJavaL
      */
     void SilentInstallWidgetL( RFile& aFile,
-                               const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg );
+                               const Usif::COpaqueNamedParams* aInstallOptionsPckg );
     
     /**
      * @see MNcdInstallationService::MNcdCancelSilentInstall
@@ -312,7 +293,7 @@
     void InstallL( RFile& aFile,
                    const TDesC& aMimeType,
                    const TNcdItemPurpose& aPurpose,
-                   const SwiUI::TInstallOptionsPckg* aSilentInstallOptionsPckg );
+                   const Usif::COpaqueNamedParams* aSilentInstallOptions );
 
     /**
      * @see MNcdInstallationService::InstallJavaL
@@ -323,12 +304,12 @@
     void InstallJavaL( RFile& aFile,
                        const TDesC& aMimeType,
                        const TDesC8& aDescriptorData,
-                       const SwiUI::TInstallOptionsPckg* aSilentInstallOptionsPckg );
+                       const Usif::COpaqueNamedParams* aSilentInstallOptions );
 
     
     void InstallWidgetL( 
         RFile& aFile,
-        const SwiUI::TInstallOptionsPckg* aSilentInstallOptionsPckg );
+        const Usif::COpaqueNamedParams* aSilentInstallOptions );
         
 
     // Sets correct values for member variables after installation has finished
@@ -386,23 +367,6 @@
      */
     TBool IsRomApplication( const TUid& aUid ) const;
     
-    
-    /**
-     * Gets the UID of the latest installed midlet by using the 
-     * Java installer's P&S key
-     * 
-     * @param aJavaRegistry Java registry
-     * @return Midlet UID
-     */
-     
-     /* HLa - temporary java remove
-#ifdef USE_OLD_JAVA_API
-    TUid LatestMidletUidL( MJavaRegistry& aJavaRegistry ) const;
-#else    
-    TUid LatestMidletUidL( Java::CJavaRegistry& aJavaRegistry ) const;
-#endif
-    */
-    
     static TBool MatchJava( const TDesC& aMime );
     
     TUid InstalledMidletUidL();
@@ -459,11 +423,6 @@
     // When installing java with JAD, the JAD path is stored here
     HBufC* iJadFileName;
     
-#ifdef USE_OLD_JAVA_API    
-    // For comparing installed midlet uids to find out the uid for the newly 
-    // installed java app.
-    RArray<TUid> iMIDletUids;
-#endif
 
     // Theme handling
     // Server session
@@ -487,18 +446,18 @@
     
     CNcdActiveOperationObserver* iInstallStatusObserver;
 
-    SwiUI::RSWInstLauncher iInstaller;
-        
+    //SwiUI::RSWInstLauncher iInstaller;
+    Usif::RSoftwareInstall iInstaller;
+    Usif::COpaqueNamedParams* iArguments; 
+    Usif::COpaqueNamedParams* iResults;
+    
     // ROM application UIDS
     RArray<TUid> iRomUids; 
     
-    // needed for cancelling install correctly
-    SwiUI::TServerRequest iCancelCode;  
-    
+    //RWidgetRegistryClientSession iWidgetRegistry; 
+    Usif::RSoftwareComponentRegistry iScrSession;
     
-    RWidgetRegistryClientSession iWidgetRegistry;    
-    
-    RWidgetInfoArray iInstalledWidgets;    
+    //RWidgetInfoArray iInstalledWidgets;    
     RPointerArray<CExtendedWidgetInfo> iInstalledWidgetsInfos; 
     };
 
--- a/ncdengine/provider/deviceinteraction/inc/ncdsilentinstallactiveobserver.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdsilentinstallactiveobserver.h	Thu Jun 24 12:37:54 2010 +0300
@@ -23,7 +23,9 @@
 #include <e32base.h>
 #include <f32file.h>
 // For silent install
-#include <SWInstApi.h> 
+#include <usif/sif/sif.h>
+
+
 
 class MNcdAsyncSilentInstallObserver;
 
@@ -68,20 +70,20 @@
      * Sets this object active for observing a silent install operation.
      * 
      * @param aFileName Installation file name.
-     * @param aSilentInstallOptionsPckg Silent installation options.
+     * @param aSilentInstallOptions Silent installation options.
      */
     void StartToObserveL( const TDesC& aFileName,
-                          const SwiUI::TInstallOptionsPckg& aSilentInstallOptionsPckg );
+                          const Usif::COpaqueNamedParams* aSilentInstallOptions );
 
 
     /**
      * Sets this object active for observing a silent install operation.
      * 
      * @param aFile Installation file handle.
-     * @param aSilentInstallOptionsPckg Silent installation options.
+     * @param aSilentInstallOptions Silent installation options.
      */
     void StartToObserveL( RFile& aFile,
-                          const SwiUI::TInstallOptionsPckg& aSilentInstallOptionsPckg );
+                          const Usif::COpaqueNamedParams* aSilentInstallOptions );
 
 
     /**
@@ -147,8 +149,7 @@
      * that handles the installation operations that this
      * class object observes. Ownerhsip is not transferred.
      */
-    SwiUI::RSWInstSilentLauncher& SilentLauncher();
-
+    Usif::RSoftwareInstall& SilentLauncher();
 
     /**
      * Converts the given error code if necessary.
@@ -176,10 +177,11 @@
 
     // The silent launcher handles the install operations that
     // this class object observes. 
-    SwiUI::RSWInstSilentLauncher iSilentLauncher;
+    // SwiUI::RSWInstSilentLauncher iSilentLauncher;
+    Usif::RSoftwareInstall iInstaller;
+    Usif::COpaqueNamedParams* iResults;
+    Usif::COpaqueNamedParams* iArguments;
     
-    SwiUI::TServerRequest iCancelCode;
-
 };
 
 #endif // NCD_SILENT_INSTALL_ACTIVE_OBSERVER_H
--- a/ncdengine/provider/deviceinteraction/inc/ncdwidgetregistrydata.h	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdwidgetregistrydata.h	Thu Jun 24 12:37:54 2010 +0300
@@ -20,7 +20,7 @@
 
 // INCLUDES
 #include <f32file.h>
-#include <WidgetRegistryClient.h>
+//#include <WidgetRegistryClient.h>  //HLa: Widget registry remove
 #include "catalogsutils.h"
 
 // CONSTANTS
@@ -44,7 +44,9 @@
         inline CExtendedWidgetInfo()
             {
             iUid = TUid::Uid(0);
-            iVersion = HBufC::New( KWidgetRegistryVal + 1 );
+            //HLa: Widget registry remove
+            //iVersion = HBufC::New( KWidgetRegistryVal + 1 );
+            iVersion = HBufC::New( KMaxFileName + 1 ); 
             
             }
         /**
--- a/ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -691,7 +691,7 @@
     // Create buffer.
     HBufC* devId = HBufC::NewLC( modelVersion.Length() );
     devId->Des().Append( modelVersion );
-    DLTRACEOUT(( _L("devId: %S"), variantInfo ));
+    DLTRACEOUT(( _L("devId: %S"), devId ));
     return devId;
     
 #else // Get devId from CTelephony
--- a/ncdengine/provider/deviceinteraction/src/ncdinstallationserviceimpl.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncdinstallationserviceimpl.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -32,17 +32,6 @@
 #include <e32property.h>
 #include <sacls.h>
 
-/*  HLa - temporary java remove
-#ifdef USE_OLD_JAVA_API
-    #include <mjavaregistry.h>
-    #include <swi/minstalledappsregistry.h>
-#else
-    #include <javaregistry.h>
-    #include <javaregistrypackageentry.h>
-
-    using namespace Java;
-#endif
-*/
 #include "ncdinstallationserviceobserver.h"
 #include "ncdactiveoperationobserver.h"
 #include "ncdsilentinstallactiveobserver.h"
@@ -56,23 +45,7 @@
 
 const TUint KFileOpenFlags = EFileShareReadersOrWriters;
 
-/*  HLa - temporary java remove
-#ifdef __SERIES60_31__
-
-    const TInt32 KPSUidJavaLatestInstallation = KUidJmiLatestInstallation;
-
-#else
-
-    // Defined originally in /mw/java/inc/javauids.h
-    // This should become available at some point in javadomainpskeys.h
-    //const TInt32 KPSUidJavaLatestInstallation = 0x10282567;
-    #include <javadomainpskeys.h>
-
-#endif
-*/
-
-// length taken from WidgetRegistryData.h
-const TInt KWidgetBundleIdLength = KWidgetRegistryVal + 1;    
+//const TInt KWidgetBundleIdLength = KMaxFileName + 1; 
 
 // ======== CALLBACK FUNCTION ========
  
@@ -135,12 +108,11 @@
     delete iJadFileName;
     delete iRecognizedMime;
     
-     /*  HLa - temporary java remove
-#ifdef USE_OLD_JAVA_API    
-    iMIDletUids.Close();
-#endif    
+    delete iResults;
+    delete iArguments;
+    
     iApaLs.Close();
-    */
+    
     
     if( iThemes )
         {
@@ -152,17 +124,7 @@
     CancelInstall(); 
     iRomUids.Close();
     
-    if ( iWidgetRegistry.Handle() )
-        {
-        // decreases widget server's refcount but this cannot be called
-        // if Connect has not been called or we'll get a KERN-EXEC 0
-        iWidgetRegistry.Disconnect();
-        }
-    else
-        {
-        iWidgetRegistry.Close();
-        }
-    iInstalledWidgets.ResetAndDestroy();
+    iScrSession.Close();
     iInstalledWidgetsInfos.ResetAndDestroy();
     }
 
@@ -181,13 +143,18 @@
 void CNcdInstallationService::ConstructL()
     {
     DLTRACEIN((""));
+    
+    iResults = 0;
+    iArguments = 0;
+    
     iDocHandler = CDocumentHandler::NewL();
     iDocHandler->SetExitObserver( this );
     
     User::LeaveIfError( iFs.Connect() );
     User::LeaveIfError( iFs.ShareProtected() );
     User::LeaveIfError( iRegistrySession.Connect() );
-    User::LeaveIfError( iAknsSrv.Connect() ); 
+    User::LeaveIfError( iAknsSrv.Connect() );
+    User::LeaveIfError( iScrSession.Connect());
 
     iInstallationCompleteCallback = new(ELeave) CAsyncCallBack( 
         TCallBack( InstallationCompleteCallback, this ),
@@ -266,7 +233,7 @@
 void CNcdInstallationService::SilentInstallL( RFile& aFile,
                                         const TDesC& aMimeType,
                                         const TNcdItemPurpose& aPurpose,
-                                        const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg )
+                                        const Usif::COpaqueNamedParams* aInstallOptionsPckg )
     {
     DLTRACEIN((""));
 
@@ -276,7 +243,7 @@
         iSilentInstallActiveObserver = CNcdSilentInstallActiveObserver::NewL( *this );        
         }
 
-    InstallL( aFile, aMimeType, aPurpose, &aInstallOptionsPckg );
+    InstallL( aFile, aMimeType, aPurpose, aInstallOptionsPckg );
 
     DLTRACEOUT(("")); 
     }
@@ -289,7 +256,7 @@
 void CNcdInstallationService::SilentInstallJavaL( RFile& aFile,
                                             const TDesC& aMimeType,
                                             const TDesC8& aDescriptorData,
-                                            const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg )
+                                            const Usif::COpaqueNamedParams* aInstallOptionsPckg )
     {
     DLTRACEIN((""));
 
@@ -299,7 +266,7 @@
         iSilentInstallActiveObserver = CNcdSilentInstallActiveObserver::NewL( *this );        
         }
 
-    InstallJavaL( aFile, aMimeType, aDescriptorData, &aInstallOptionsPckg );
+    InstallJavaL( aFile, aMimeType, aDescriptorData, aInstallOptionsPckg );
 
     DLTRACEOUT((""));
     }
@@ -309,7 +276,7 @@
 // ---------------------------------------------------------------------------
 //
 void CNcdInstallationService::SilentInstallWidgetL( RFile& aFile,
-                                                    const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg )
+                                                    const Usif::COpaqueNamedParams* aInstallOptionsPckg )
     {
     DLTRACEIN((""));
     
@@ -319,7 +286,7 @@
         iSilentInstallActiveObserver = CNcdSilentInstallActiveObserver::NewL( *this );        
         }
 
-    InstallWidgetL( aFile, &aInstallOptionsPckg );
+    InstallWidgetL( aFile, aInstallOptionsPckg );
     
     DLTRACEOUT((""));
     }
@@ -382,11 +349,6 @@
             iJadFileName = NULL;
             }
         
-#ifdef USE_OLD_JAVA_API        
-        // Clean the array.
-        iMIDletUids.Reset();
-#endif        
-
         // Reset information flags.            
         InstallationFinishedSetup( aError );
         }
@@ -518,55 +480,53 @@
 // ---------------------------------------------------------------------------
 //
 
-#ifdef USE_OLD_JAVA_API
-
-TBool CNcdInstallationService::JavaAppExistsL( 
-    const TUid& aUid )
-    {
-    	
-    /*  HLa - temporary java remove
-    DLTRACEIN((""));
-
-    MJavaRegistry* javaRegistry = MJavaRegistry::CreateL();
-    CleanupReleasePushL( *javaRegistry );
-    
-    TRAPD( err, 
-        {
-        // Leaves with KErrNotFound if not found
-        MJavaRegistryMIDletEntry* midletEntry = javaRegistry->MIDletEntryL(
-            aUid );    
-        midletEntry->Release();
-        });
-    
-    LeaveIfNotErrorL( err, KErrNotFound );
-    
-    CleanupStack::PopAndDestroy( javaRegistry );
-    return err == KErrNone;
-    */
-    
-    }
-
-#else
-
 TBool CNcdInstallationService::JavaAppExistsL( 
     const TUid& aUid )
     {
     DLTRACEIN((""));
-    /*  HLa - temporary java remove
 
-    CJavaRegistry* javaRegistry = CJavaRegistry::NewLC();    
-
-    TBool exists = javaRegistry->RegistryEntryExistsL( aUid );
+    TBool retVal = EFalse;
+    Usif::TComponentId compId = 0;
+        
+    // Get component id
+    TRAPD( ret, compId = iScrSession.GetComponentIdForAppL( aUid ) ); 
+    if ( ret == KErrNotFound )
+        {
+        return EFalse;
+        }
+    else if  (ret != KErrNone )
+        {
+        User::Leave( ret );
+        }
+         
+    Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+    TRAPD(err, iScrSession.GetComponentL(compId, *entry));
     
-    CleanupStack::PopAndDestroy( javaRegistry );
-    return exists;
-    */
-    return EFalse;
+    if ( err == KErrNotFound )
+        {
+        retVal = EFalse;
+        }
+    else if  (err != KErrNone )
+        {
+        User::Leave( err );
+        }
+    else
+        {
+        // type == Java ?
+        if ( entry->SoftwareType().Compare( Usif::KSoftwareTypeJava ) == 0 )
+            {
+            retVal = ETrue;
+            }
+        else
+            {
+            retVal = EFalse;
+            }
+        }
+    CleanupStack::PopAndDestroy(entry);
+    return retVal;
     
     }
 
-#endif
-
 // Check via widget registry API
 TNcdApplicationStatus CNcdInstallationService::IsWidgetInstalledL(const TDesC& aIdentifier, const TCatalogsVersion& aVersion)
     {
@@ -940,7 +900,7 @@
     
     iInstaller.Close();
     
-    if ( aError == SwiUI::KSWInstErrUserCancel ) 
+    if ( aError == KErrCancel ) 
         {
         DLTRACE(("User cancelled, converting error to KErrAbort" ) );
         aError = KErrAbort;        
@@ -989,9 +949,7 @@
         if ( iInstallError != KErrNone ) 
             {        
             DLTRACE(("Notify install error"));
-#ifdef USE_OLD_JAVA_API            
-            iMIDletUids.Reset();
-#endif            
+
             iObserver->InstallationCompleteL( KNullDesC, TUid(), iInstallError );       
             return; 
             }
@@ -1331,7 +1289,7 @@
 void CNcdInstallationService::InstallL( RFile& aFile,
                                         const TDesC& aMimeType,
                                         const TNcdItemPurpose& aPurpose,
-                                        const SwiUI::TInstallOptionsPckg* aSilentInstallOptionsPckg )
+                                        const Usif::COpaqueNamedParams* aSilentInstallOptions )
     {
     DLTRACEIN(( _L("iBusy=%d, MIME: %S"),iBusy, &aMimeType ));    
     DASSERT( iObserver );
@@ -1377,7 +1335,7 @@
             aFile, 
             *iRecognizedMime, 
             KNullDesC8, 
-            aSilentInstallOptionsPckg );
+            aSilentInstallOptions );
         return;
         }
     else if ( MatchWidget( aFile, aMimeType ) )
@@ -1385,7 +1343,7 @@
         DLTRACE(("Widget"));
         InstallWidgetL( 
             aFile,
-            aSilentInstallOptionsPckg );
+            aSilentInstallOptions );
         return;
         }
     
@@ -1427,13 +1385,25 @@
         // Start application installation.
         DLINFO(( "Calling doc handler Open" ));
 
-        if ( !aSilentInstallOptionsPckg )
+        if ( !aSilentInstallOptions )
             {
             DLINFO(("Normal install"));
             InitializeInstallerL();
-            iCancelCode = SwiUI::ERequestInstallHandle;
+            //iCancelCode = SwiUI::ERequestInstallHandle;
             
-            iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
+            if ( !iArguments )
+                {
+                iArguments = Usif::COpaqueNamedParams::NewL();
+                }
+            if ( !iResults )
+               {
+               iResults = Usif::COpaqueNamedParams::NewL();
+               }
+            
+            iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
+            
+            iInstaller.Install( aFile, *iArguments, *iResults, iInstallStatusObserver->iStatus ); 
+            //iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
             iInstallStatusObserver->StartToObserve();            
             }
         else
@@ -1443,7 +1413,7 @@
             // of the silent install and it will forward the information for the callback
             // function of this class object.
             iSilentInstallActiveObserver->StartToObserveL( aFile,
-                                                           *aSilentInstallOptionsPckg );
+                                                           aSilentInstallOptions );
             }
             
         iBusy = ETrue;
@@ -1514,7 +1484,7 @@
 void CNcdInstallationService::InstallJavaL( RFile& aFile,
                                             const TDesC& /*aMimeType*/,
                                             const TDesC8& aDescriptorData,
-                                            const SwiUI::TInstallOptionsPckg* aSilentInstallOptionsPckg )
+                                            const Usif::COpaqueNamedParams* aSilentInstallOptions )
     {
     DLTRACEIN((_L("iBusy=%d, descriptor=%d"),iBusy, aDescriptorData.Length() ));
     DASSERT( iObserver );
@@ -1528,17 +1498,6 @@
 
     iInstallError = KErrNone;
     
-#ifdef USE_OLD_JAVA_API
-    // Store installed java app uids before installation to see
-    // which one is a new java app later.
-    /*  HLa - temporary java remove
-    MJavaRegistry* javaRegistry = MJavaRegistry::CreateL();
-    CleanupReleasePushL( *javaRegistry );
-    iMIDletUids.Reset();
-    javaRegistry->InstalledMIDletUidsL( iMIDletUids );
-    CleanupStack::PopAndDestroy( javaRegistry );
-    */
-#endif
     
     // In platform security systems JAR and JAD has to be in same folder
     // to get the installation process work correctly.
@@ -1560,7 +1519,7 @@
     iInstallType = EJavaInstall;
     TDataType dataType;    
             
-    if ( aSilentInstallOptionsPckg == NULL )
+    if ( aSilentInstallOptions == NULL )
         {
         DLINFO(("Normal install"));
         InitializeInstallerL();
@@ -1568,15 +1527,40 @@
             {
             DLTRACE(("Installing JAD+JAR"));
             // JAD+JAR install
-            iCancelCode = SwiUI::ERequestInstall;
-            iInstaller.Install( iInstallStatusObserver->iStatus, *iJadFileName );
+            //iCancelCode = SwiUI::ERequestInstall;
+            if ( !iArguments )
+                {
+                iArguments = Usif::COpaqueNamedParams::NewL();
+                }
+            if ( !iResults )
+                {
+                iResults = Usif::COpaqueNamedParams::NewL();
+                }
+             
+             iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
+                        
+            iInstaller.Install( *iJadFileName, *iArguments, *iResults, iInstallStatusObserver->iStatus ); 
+            //iInstaller.Install( iInstallStatusObserver->iStatus, *iJadFileName );
             }
         else
             {
             DLTRACE(("Installing JAR"));
             // JAR install
-            iCancelCode = SwiUI::ERequestInstallHandle;
-            iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
+            //iCancelCode = SwiUI::ERequestInstallHandle;
+            if ( !iArguments )
+                {
+                iArguments = Usif::COpaqueNamedParams::NewL();
+                }
+            if ( !iResults )
+               {
+               iResults = Usif::COpaqueNamedParams::NewL();
+               }
+            
+             iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
+             
+             iInstaller.Install( aFile, *iArguments, *iResults, iInstallStatusObserver->iStatus ); 
+            
+            //iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
             }
         
         iInstallStatusObserver->StartToObserve();
@@ -1592,7 +1576,7 @@
             // of the silent install and it will forward the information for the callback
             // function of this class object.
             iSilentInstallActiveObserver->StartToObserveL( *iJadFileName,
-                                                           *aSilentInstallOptionsPckg );
+                                                           aSilentInstallOptions );
             }
         else
             {
@@ -1602,7 +1586,7 @@
             // of the silent install and it will forward the information for the callback
             // function of this class object.
             iSilentInstallActiveObserver->StartToObserveL( aFile,
-                                                           *aSilentInstallOptionsPckg );
+                                                           aSilentInstallOptions );
             }        
         }
 
@@ -1618,7 +1602,7 @@
 //
 void CNcdInstallationService::InstallWidgetL( 
     RFile& aFile,
-    const SwiUI::TInstallOptionsPckg* aSilentInstallOptionsPckg )
+    const Usif::COpaqueNamedParams* aSilentInstallOptions )
     {
     DLTRACEIN((""));    
     
@@ -1632,13 +1616,24 @@
     // Start application installation.
     DLINFO(( "Calling doc handler Open" ));
 
-    if ( !aSilentInstallOptionsPckg )
+    if ( !aSilentInstallOptions )
         {
         DLINFO(("Normal install"));
         InitializeInstallerL();
-        iCancelCode = SwiUI::ERequestInstallHandle;
-        
-        iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
+        //iCancelCode = SwiUI::ERequestInstallHandle;
+        if ( !iArguments )
+            {
+            iArguments = Usif::COpaqueNamedParams::NewL();
+            }
+        if ( !iResults )
+           {
+           iResults = Usif::COpaqueNamedParams::NewL();
+           }
+                    
+        iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
+        iInstaller.Install(aFile, *iArguments, *iResults, iInstallStatusObserver->iStatus  );
+         
+        //iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
         iInstallStatusObserver->StartToObserve();            
         }
     else
@@ -1648,7 +1643,7 @@
         // of the silent install and it will forward the information for the callback
         // function of this class object.
         iSilentInstallActiveObserver->StartToObserveL( aFile,
-                                                       *aSilentInstallOptionsPckg );
+                                                       aSilentInstallOptions );
         }
         
     iBusy = ETrue;
@@ -1665,10 +1660,13 @@
     DeletePtr( iInstallStatusObserver );
     iInstallStatusObserver = CNcdActiveOperationObserver::NewL( *this );
     
+    User::LeaveIfError( iInstaller.Connect() );
+    /*
     if ( !iInstaller.Handle() ) 
         {
         User::LeaveIfError( iInstaller.Connect() );
         }
+    */
     }
     
 
@@ -1679,11 +1677,13 @@
 void CNcdInstallationService::CancelInstall()
     {
     DLTRACEIN((""));
-    if ( iInstallStatusObserver &&
-         iInstaller.Handle() ) 
+    //if ( iInstallStatusObserver &&
+    //     iInstaller.Handle() ) 
+    if ( iInstallStatusObserver )
         {
         DLTRACE(("Cancelling installation"));
-        iInstaller.CancelAsyncRequest( iCancelCode );
+        iInstaller.CancelOperation();
+        //iInstaller.CancelAsyncRequest( iCancelCode );
         }
     
     DeletePtr( iInstallStatusObserver );
@@ -1922,34 +1922,39 @@
 // Gets a list of installed midlet UIDs
 // ---------------------------------------------------------------------------
 //
-#ifdef USE_OLD_JAVA_API
 
 void CNcdInstallationService::MidletUidsL( RArray<TUid>& aUids )
     {
-    	 /*  HLa - temporary java remove
-    DLTRACEIN((""));
-    MJavaRegistry* javaRegistry = MJavaRegistry::CreateL();
-    CleanupReleasePushL( *javaRegistry );
-    javaRegistry->InstalledMIDletUidsL( aUids );
-    CleanupStack::PopAndDestroy( javaRegistry ); 
-    */   
-    }
 
-#else
+    // Get ids of all java components in scr
+    RArray<Usif::TComponentId> javaComponentIdList;
+    CleanupClosePushL( javaComponentIdList );
+    
+    Usif::CComponentFilter *pJavaSwTypeFilter = Usif::CComponentFilter::NewLC();
+    pJavaSwTypeFilter->SetSoftwareTypeL( Usif::KSoftwareTypeJava );
+    iScrSession.GetComponentIdsL( javaComponentIdList, pJavaSwTypeFilter );
+    CleanupStack::PopAndDestroy( pJavaSwTypeFilter );
 
-void CNcdInstallationService::MidletUidsL( RArray<TUid>& aUids )
-    {
-    /*  HLa - temporary java remove
-    DLTRACEIN((""));
-    CJavaRegistry* javaRegistry = CJavaRegistry::NewLC();
-    javaRegistry->GetRegistryEntryUidsL( aUids );          
-    CleanupStack::PopAndDestroy( javaRegistry );   
-    */ 
+    
+    // Get components
+    TInt aUidIndex = 0;
+    for ( TInt i = 0; i < javaComponentIdList.Count(); ++i )
+        {
+        RArray<TUid> midletUids;
+        CleanupClosePushL( midletUids );
+        iScrSession.GetAppUidsForComponentL( javaComponentIdList[i], midletUids );
+        for ( TInt j = 0; j < midletUids.Count(); ++j )
+            {
+            aUids[aUidIndex] = aUids[j];
+            aUidIndex++;
+            }
+        CleanupStack::PopAndDestroy(); // midletUids
+        }
+    
+    CleanupStack::PopAndDestroy(); // javaComponentIdList
+    
     }
 
-#endif
-
-
 // ---------------------------------------------------------------------------
 // Checks if the application is in ROM
 // ---------------------------------------------------------------------------
@@ -1960,125 +1965,6 @@
     return iRomUids.Find( aUid ) != KErrNotFound;    
     }
 
-
-// ---------------------------------------------------------------------------
-// Returns the UID of the latest installed midlet, NULL UID if none have
-// been installed since the last device restart
-// ---------------------------------------------------------------------------
-//
-
-/*  HLa - temporary java remove
-#ifdef USE_OLD_JAVA_API
-
-TUid CNcdInstallationService::LatestMidletUidL( 
-    MJavaRegistry& aJavaRegistry ) const
-    {
-    DLTRACEIN((""));
-    TInt suiteUid = 0;            
-    
-    // Get UID for the latest installed Midlet suite
-    // KPSUidJavaLatestInstallation = 0x10282567
-    // Ignoring error in case the key or read policy change so that client
-    // doesn't behave strangely
-    RProperty::Get( KUidSystemCategory, 
-        KPSUidJavaLatestInstallation, suiteUid );
-    
-    DLTRACE(("JMI UID: %x", suiteUid ));
-
-    if ( !suiteUid )  
-        {
-        return KNullUid;
-        }
-    
-    // Get entry for the installed suite
-    MJavaRegistrySuiteEntry* suite = aJavaRegistry.SuiteEntryL( 
-        TUid::Uid( suiteUid ) );
-    CleanupReleasePushL( *suite );        
-    RArray<TUid> suiteUids;
-    CleanupClosePushL( suiteUids );
-
-    TUid midletUid = KNullUid; 
-    suite->MIDletUidsL( suiteUids );
-    
-    // Take first midlet UID from the suite
-    if ( suiteUids.Count() ) 
-        {
-        midletUid = suiteUids[0];
-        }
-    DLTRACE(("Midlets in suite: %d", suite->NumberOfMIDletsL() ));
-    CleanupStack::PopAndDestroy( &suiteUids );
-    DLTRACE(("InstalledAppsEntryUid: %x", midletUid.iUid ));
-
-    CleanupStack::PopAndDestroy( suite );    
-    return midletUid;
-    }
-
-#else
-
-TUid CNcdInstallationService::LatestMidletUidL( 
-    CJavaRegistry& aJavaRegistry ) const
-    {
-    DLTRACEIN((""));
-    TInt suiteUid = 0;            
-    
-    // Get UID for the latest installed Midlet suite
-    // KPSUidJavaLatestInstallation = 0x10282567
-    // Ignoring error in case the key or read policy change so that client
-    // doesn't behave strangely
-    RProperty::Get( KUidSystemCategory, 
-        KPSUidJavaLatestInstallation, suiteUid );
-    
-    DLTRACE(("JMI UID: %x", suiteUid ));
-
-    if ( !suiteUid )  
-        {
-        return KNullUid;
-        }
-    
-    // Get entry for the installed suite
-    CJavaRegistryEntry* suite = aJavaRegistry.RegistryEntryL( 
-        TUid::Uid( suiteUid ) );
-    
-    if ( !suite )
-        {
-        return KNullUid;
-        }
-    
-    CleanupStack::PushL( suite );        
-    
-    DASSERT( suite->Type() < EGeneralApplication && 
-             suite->Type() >= EGeneralPackage );
-    
-    CJavaRegistryPackageEntry* entry = 
-        static_cast<CJavaRegistryPackageEntry*>( suite );
-    
-    TUid midletUid = KNullUid;
-    TInt count = entry->NumberOfEmbeddedEntries(); 
-    TBool appFound = EFalse;
-    TInt index = 0;
-    
-    // Find the first application from the suite
-    while ( index < count && !appFound )
-        {
-        CJavaRegistryEntry* app = entry->EmbeddedEntryByNumberL( index );
-        if ( app->Type() >= EGeneralApplication ) 
-            {
-            midletUid = app->Uid();
-            appFound = ETrue;
-            DLTRACE(( "Found app: %x", midletUid.iUid ));
-            }
-        delete app;
-        ++index;
-        }
-    
-    CleanupStack::PopAndDestroy( suite );    
-    return midletUid;
-    }
-
-
-#endif
-*/
-
 // ---------------------------------------------------------------------------
 // Returns true if the MIME type matches a Java application or descriptor
 // ---------------------------------------------------------------------------
@@ -2091,85 +1977,35 @@
     }
 
 
-#ifdef USE_OLD_JAVA_API
 
 
 TUid CNcdInstallationService::InstalledMidletUidL()
     {
-    	
-    /* HLa - temporary java remove
-    DLTRACEIN((""));
-    RArray<TUid> MIDletUids;
-    CleanupClosePushL( MIDletUids );
+
+    //Usif::COpaqueNamedParams* iResults = 0; // to be removed
     
-    MJavaRegistry* javaRegistry = MJavaRegistry::CreateL();
-    CleanupReleasePushL( *javaRegistry );
-    javaRegistry->InstalledMIDletUidsL( MIDletUids );
-    TUid MIDletUid = KNullUid;
-    // Search for new uids in Java registry.
-    for ( TInt i = 0 ; i < MIDletUids.Count() ; i++ )
+    RArray<TUid> appUids;
+    TUid midletUid = KNullUid;
+    TInt compId = 0;
+    
+    // Get component id
+    TRAPD ( err, iResults->IntByNameL( Usif::KSifOutParam_ComponentId ));
+    if ( err == KErrNotFound )
         {
-        if ( iMIDletUids.Find( MIDletUids[i] ) == KErrNotFound )
-            {
-            // A new uid found, this is the installed midlet's uid
-            MIDletUid = MIDletUids[i];
-            break;
-            }
-        }
-
-    // We didn't get any new UID so we have to check Java installer's
-    // P&S key for the installed suite UID and the get the midlet UID
-    // from that. This happens when a midlet with predefined UID, 
-    // eg. WidSets, is reinstalled. Midlet UIDs are predefined with
-    // the attribute Nokia-MIDlet-UID-<n> in a JAD or JAR manifest
-    if ( MIDletUid == KNullUid ) 
-        {
-        MIDletUid = LatestMidletUidL( *javaRegistry );
+        return midletUid;
         }
     
-    CleanupStack::PopAndDestroy( javaRegistry );
-    CleanupStack::PopAndDestroy( &MIDletUids );
-
-    iMIDletUids.Reset();
-    return MIDletUid;
-    */
-    
-    }
-
-#else // USE_OLD_JAVA_API
-
-TUid CNcdInstallationService::InstalledMidletUidL()
-    {
-    /* HLa - temporary java remove
-    DLTRACEIN((""));
-    CJavaRegistry* registry = CJavaRegistry::NewLC();
-    TUid midletUid = LatestMidletUidL( *registry );
-    CleanupStack::PopAndDestroy( registry );
-    return midletUid;
-    */
+    // Get components
+    CleanupClosePushL( appUids );
+    iScrSession.GetAppUidsForComponentL( compId, appUids );
     
-    return KNullUid;
-    
-    }
-
-#endif // USE_OLD_JAVA_API
-
-
-// ---------------------------------------------------------------------------
-// Populates the list of installed widgets
-// ---------------------------------------------------------------------------
-//
-void CNcdInstallationService::PopulateInstalledWidgetUidsL() 
-    {
-    DLTRACEIN((""));
-
-    if ( !iWidgetRegistry.Handle() )
+    // return first midlet uid, if exists
+    if ( appUids.Count() != 0 )
         {
-        User::LeaveIfError( iWidgetRegistry.Connect() );
+        midletUid = appUids[0];
         }
-    
-    iInstalledWidgets.ResetAndDestroy();
-    User::LeaveIfError( iWidgetRegistry.InstalledWidgetsL( iInstalledWidgets ) );    
+    CleanupStack::PopAndDestroy(); // appUids 
+    return midletUid;
     }
 
 // ---------------------------------------------------------------------------
@@ -2181,38 +2017,44 @@
     {
     DLTRACEIN((""));
     
-    // Get the list of installed widget uids 
-    PopulateInstalledWidgetUidsL();
+    // Get ids of all widget components in scr
+    RArray<Usif::TComponentId> widgetComponentIdList;
+    Usif::CComponentFilter *pWidgetSwTypeFilter = Usif::CComponentFilter::NewLC();
+    pWidgetSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeWidget);
+
+    iScrSession.GetComponentIdsL(widgetComponentIdList, pWidgetSwTypeFilter);
     
-    const TInt count = iInstalledWidgets.Count();
+    CleanupStack::PopAndDestroy(pWidgetSwTypeFilter);
+    CleanupClosePushL(widgetComponentIdList);
     
-    // Create array with UID & Version infos
+    const TInt count = widgetComponentIdList.Count();
+    
+    // Create array with id & version infos
     for ( TInt i = 0; i < count; ++i )
         {
         CExtendedWidgetInfo* tempInfo = new ( ELeave ) CExtendedWidgetInfo();
         CleanupStack::PushL( tempInfo );
         
-        CWidgetInfo* widgetInfo = iInstalledWidgets[i];
+        // Get widget
+        Usif::TComponentId compId = widgetComponentIdList[i];
+        Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+        iScrSession.GetComponentL(compId, *entry);
         
-        CWidgetPropertyValue* version = iWidgetRegistry.GetWidgetPropertyValueL
-            (widgetInfo->iUid, EBundleVersion );
-        CleanupStack::PushL( version );
-
-        // Fill info
-        tempInfo->iUid = widgetInfo->iUid;
-        if (!version->iValue.s)
-            *(tempInfo->iVersion) = KDefVersion;
-        else
-            *(tempInfo->iVersion) = *(version->iValue.s);
+        // Fill id & version
+        tempInfo->iUid.iUid= compId;
+        *(tempInfo->iVersion) = entry->Version();
         
         // Append to arrayt
         aWidgets.AppendL( tempInfo );
-
-        CleanupStack::PopAndDestroy( version );
+        
+        CleanupStack::PopAndDestroy(entry);
         CleanupStack::Pop( tempInfo );
         }
+    
+    
+    CleanupStack::PopAndDestroy(); // widgetComponentIdList
    
-        DLTRACEOUT((""));
+    DLTRACEOUT((""));
 
     }
 
@@ -2220,26 +2062,13 @@
 // Gets the name of widget that was installed last
 // ---------------------------------------------------------------------------
 //
+
 HBufC* CNcdInstallationService::InstalledWidgetNameLC()
     {
     DLTRACEIN((""));
     
-    TUid widgetUid = InstalledWidgetUidL();
-    
-    if ( widgetUid == KNullUid )
-        {
-        DLERROR(("No widget uid"));
-        // No new UID was found, so we assume user canceled the installation.
-        // Installer does not give any error code in that case.
-        return NULL;
-        }
-
-    HBufC* bundleId = HBufC::NewLC( KWidgetBundleIdLength );
-    TPtr des( bundleId->Des() );
-    iWidgetRegistry.GetWidgetBundleId( widgetUid, des );            
-
-    DLTRACEOUT(( _L("Widget bundle id: %S"), bundleId ));
-    return bundleId;
+    // Not currently suported
+    return NULL;
     }
     
 
@@ -2349,30 +2178,48 @@
 
 
 // ---------------------------------------------------------------------------
-//   
+//Calling widget registry API to check if a widget with given uid is installed 
+//already
 // ---------------------------------------------------------------------------
 //
 TBool CNcdInstallationService::WidgetExistsL( const TUid& aUid )
     {
     DLTRACEIN((""));
-
-    if ( !iWidgetRegistry.Handle() )
-        {
-        User::LeaveIfError( iWidgetRegistry.Connect() );
-        }
+    
+    TBool retVal = EFalse;
+        
+    // Get entry 
+    Usif::TComponentId compId = aUid.iUid;
+    Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+    TRAPD(err, iScrSession.GetComponentL(compId, *entry));
     
-    if ( iWidgetRegistry.IsWidget( aUid ) )
+    if ( err == KErrNotFound || !retVal )
+        {
+        retVal = EFalse;
+        }
+    else if  (err != KErrNone )
+        {
+        User::Leave( err );
+        }
+    else
         {
-        TBuf<KWidgetBundleIdLength> id;
-        iWidgetRegistry.GetWidgetBundleId( aUid, id );
-        return iWidgetRegistry.WidgetExistsL( id );
+        // widget ??
+        if ( entry->SoftwareType().Compare( Usif::KSoftwareTypeWidget ) == 0 )
+            {
+            retVal = ETrue;
+            }
+        else
+            {
+            retVal = EFalse;
+            }
         }
-    return EFalse;         
+    CleanupStack::PopAndDestroy(entry);
+    return retVal;
     }
 
 // ---------------------------------------------------------------------------
 //Calling widget registry API to check if a widget with given uid is installed 
-//already
+//already. Returns the version of the installed widget.
 // ---------------------------------------------------------------------------
 //
 TBool CNcdInstallationService::WidgetExistsL( 
@@ -2380,33 +2227,40 @@
     {
     DLTRACEIN((""));
     
-    if ( !iWidgetRegistry.Handle() )
+    TBool retVal = EFalse;
+    
+    // Get entry 
+    Usif::TComponentId compId = aUid.iUid;
+    Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+    TRAPD(err, retVal= iScrSession.GetComponentL(compId, *entry));
+    
+    if ( err == KErrNotFound || !retVal )
         {
-        User::LeaveIfError( iWidgetRegistry.Connect() );
+        retVal = EFalse;
         }
-    
-    if ( iWidgetRegistry.IsWidget( aUid ) )
+    else if  (err != KErrNone )
         {
-        TBuf<KWidgetBundleIdLength> id;
-        iWidgetRegistry.GetWidgetBundleId( aUid, id );
-        if (iWidgetRegistry.WidgetExistsL( id ))
+        User::Leave( err );
+        }
+    else
+        {
+        // widget ??
+        if ( entry->SoftwareType().Compare( Usif::KSoftwareTypeWidget ) == 0 )
             {
+            retVal = ETrue;
+        
             // Get version
-            CWidgetPropertyValue* version = 
-                iWidgetRegistry.GetWidgetPropertyValueL(aUid, EBundleVersion );
-            CleanupStack::PushL( version );
-            TCatalogsVersion::ConvertL( aVersion, *(version->iValue.s) );
-            CleanupStack::PopAndDestroy( version ); 
-            return (ETrue);
+            TPtrC entryVersion = entry->Version();
+            TCatalogsVersion::ConvertL( aVersion, entryVersion );
             }
         else
             {
-            return (EFalse);
+            retVal = EFalse;
             }
         }
-    else
-       return(EFalse);
-
+    CleanupStack::PopAndDestroy(entry);
+    return retVal;
+    
     }
     
 // ---------------------------------------------------------------------------
@@ -2419,44 +2273,44 @@
     {
     DLTRACEIN((""));
     
-    if ( !iWidgetRegistry.Handle() )
-          {
-          User::LeaveIfError( iWidgetRegistry.Connect() );
-          }
-
-    RPointerArray<CWidgetInfo> widgetInfoArr;
+    TBool retVal = EFalse;
+    Usif::TComponentId compId = 0;
+    
+    // Get widget component id by identifier
+    TRAPD( err, compId = 
+           iScrSession.GetComponentIdL( aIdentifier, Usif::KSoftwareTypeWidget ));
     
-    CleanupResetAndDestroyPushL( widgetInfoArr );
-    TInt err = iWidgetRegistry.InstalledWidgetsL(widgetInfoArr);
-    
-    for( TInt i( widgetInfoArr.Count() - 1 ); i >= 0; --i ) 
+    if ( err == KErrNotFound )
+        {
+        retVal = EFalse;
+        }
+    else if  (err != KErrNone )
         {
-        CWidgetInfo* widgetInfo( widgetInfoArr[i] );                  
-        CWidgetPropertyValue* bundleId = 
-            iWidgetRegistry.GetWidgetPropertyValueL
-                (widgetInfo->iUid, EBundleIdentifier );
-        CleanupStack::PushL( bundleId );
+        User::Leave( err );
+        }
+    else
+        {
+        // Widget found
+        retVal = ETrue;
         
-        if( aIdentifier.Compare( *(bundleId->iValue.s) )== 0 )
+        // Get entry 
+        Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+        retVal = iScrSession.GetComponentL(compId, *entry);
+        
+        // Get version
+        if ( retVal )
             {
-            CWidgetPropertyValue* version = 
-                iWidgetRegistry.GetWidgetPropertyValueL
-                    (widgetInfo->iUid, EBundleVersion );
-            CleanupStack::PushL( version );
-            TCatalogsVersion::ConvertL( aVersion, *(version->iValue.s) );
-            
-            CleanupStack::PopAndDestroy( version );
-            CleanupStack::PopAndDestroy( bundleId );
-            CleanupStack::PopAndDestroy( &widgetInfoArr );
-                        
-            return ETrue;
+            TPtrC entryVersion = entry->Version();
+            TCatalogsVersion::ConvertL( aVersion, entryVersion );
             }
-        CleanupStack::PopAndDestroy( bundleId );
+    
+        CleanupStack::PopAndDestroy(entry);
         }
-    CleanupStack::PopAndDestroy( &widgetInfoArr );
-    return EFalse;
+    
+    return retVal;
     }
 
+
 // ---------------------------------------------------------------------------
 //  Calling widget registry API to return the Uid of the widget
 //  with given identifier.
@@ -2468,15 +2322,13 @@
     
     TUid id = TUid::Uid(0);
     
-   if ( !iWidgetRegistry.Handle() )
-          {
-          User::LeaveIfError( iWidgetRegistry.Connect() );
-          }
+    Usif::TComponentId compId = iScrSession.GetComponentIdL(aIdentifier, Usif::KSoftwareTypeNative);
     
-    id.iUid = iWidgetRegistry.GetWidgetUidL( aIdentifier);
-
+    id.iUid = compId;
+    
     return id;
     
+    
     }
 
     
--- a/ncdengine/provider/deviceinteraction/src/ncdsilentinstallactiveobserver.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncdsilentinstallactiveobserver.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -19,6 +19,8 @@
 #include "ncdsilentinstallactiveobserver.h"
 #include "ncdasyncsilentinstallobserver.h"
 
+#include <usif/scr/scr.h>
+
 
 CNcdSilentInstallActiveObserver* CNcdSilentInstallActiveObserver::NewL( MNcdAsyncSilentInstallObserver& aObserver )
     {
@@ -49,6 +51,9 @@
 
 void CNcdSilentInstallActiveObserver::ConstructL()
     {
+    
+    iResults = 0;
+    
     CActiveScheduler::Add( this );
     }
 
@@ -60,6 +65,9 @@
     // cancel install operation and closes the silent installer. 
     // If no operation is going on, the installer is already closed. 
     // So, no need to close the silent launcher here separately.
+    
+    delete (iResults);
+
     CancelAsyncOperation();
     }
 
@@ -72,12 +80,37 @@
     // Notice, that we do not call the callback functions of the observer here
     // because we suppose that the observer has started the cancel operation itself
     // or the caller will inform the observer itself.
-    SilentLauncher().CancelAsyncRequest( iCancelCode );
+    
+    SilentLauncher().CancelOperation();
     }
 
 
 void CNcdSilentInstallActiveObserver::StartToObserveL( const TDesC& aFileName,
-                                                       const SwiUI::TInstallOptionsPckg& aSilentInstallOptionsPckg )
+                                                       const Usif::COpaqueNamedParams* aSilentInstallOptions )
+    {
+    // For silent installation
+    // Notice that if the user does not have TrustedUI capabilities
+    // then this will given KErrPermissionDenied.
+    // Connect to the launcher here just before it is needed, 
+    // because the launcher will be shown in the application list.
+    // So, it would not be nice to connect in the ConstructL and to show
+    // the icon in the list all the time.
+    // User::LeaveIfError( SilentLauncher().Connect() );
+    User::LeaveIfError( SilentLauncher().Connect() );
+    
+    if (!iResults)
+        {
+        iResults = Usif::COpaqueNamedParams::NewL();
+        }
+    
+    iInstaller.Install( aFileName, *aSilentInstallOptions, *iResults, iStatus ); 
+        
+
+    }
+
+
+void CNcdSilentInstallActiveObserver::StartToObserveL( RFile& aFile,
+                                                       const Usif::COpaqueNamedParams* aSilentInstallOptions )
     {
     // For silent installation
     // Notice that if the user does not have TrustedUI capabilities
@@ -86,34 +119,73 @@
     // because the launcher will be shown in the application list.
     // So, it would not be nice to connect in the ConstructL and to show
     // the icon in the list all the time.
+
     User::LeaveIfError( SilentLauncher().Connect() );
     
-    iCancelCode = SwiUI::ERequestSilentInstall;
-    SilentLauncher().SilentInstall( iStatus,
-                                    aFileName,
-                                    aSilentInstallOptionsPckg );
+    if (!iResults)
+        {
+        iResults = Usif::COpaqueNamedParams::NewL();
+        }
+    /*
+    if (iResults)
+        {
+        delete (iResults);
+        iResults = 0;
+        }
+   iResults = Usif::COpaqueNamedParams::NewL();
 
-    SetActive();
-    }
-
+    if (iArguments)
+        {
+        delete (iArguments);
+        iArguments = 0;
+        }
+    iArguments = Usif::COpaqueNamedParams::NewL();
 
-void CNcdSilentInstallActiveObserver::StartToObserveL( RFile& aFile,
-                                                       const SwiUI::TInstallOptionsPckg& aSilentInstallOptionsPckg )
-    {
-    // For silent installation
-    // Notice that if the user does not have TrustedUI capabilities
-    // then this will given KErrPermissionDenied.
-    // Connect to the launcher here just before it is needed, 
-    // because the launcher will be shown in the application list.
-    // So, it would not be nice to connect in the ConstructL and to show
-    // the icon in the list all the time.
-    User::LeaveIfError( SilentLauncher().Connect() );
+    // Silent installation request
+    
+    TBool iSet = ETrue;
+    
+    enum TSifPolicy
+        {
+        EAllowed        = 0,
+        ENotAllowed     = 1,
+        EUserConfirm    = 2
+        };
     
-    iCancelCode = SwiUI::ERequestSilentInstallHandle;
-    SilentLauncher().SilentInstall( iStatus,
-                                    aFile,
-                                    aSilentInstallOptionsPckg );
-
+    if (iSet)
+       iArguments->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
+    else
+        iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse ); 
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_PerformOCSP, Usif::ENotAllowed );  
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_AllowUpgrade, Usif::EAllowed );
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_AllowUntrusted, Usif::ENotAllowed );
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_GrantCapabilities, Usif::ENotAllowed );
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_InstallOptionalItems, Usif::EAllowed );
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, Usif::EAllowed );   
+    //iArguments->AddIntL( Usif::KSifInParam_PackageInfo, ETrue );
+    if (iSet)
+        iArguments->AddIntL( Usif::KSifInParam_AllowAppShutdown, Usif::EAllowed );
+    if (iSet)
+       iArguments->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed );
+    if (iSet)
+       iArguments->AddIntL( Usif::KSifInParam_AllowOverwrite, Usif::EAllowed );
+    
+    
+    //iArguments->AddIntL(Usif::KSifInParam_InstallSilently, 1);
+    //iArguments->AddIntL( Usif::KSifInParam_DisplayPackageInfo, ETrue );     
+    
+    iInstaller.Install(aFile, *iArguments, *iResults, iStatus); 
+    */
+    
+    iInstaller.Install( aFile, *aSilentInstallOptions, *iResults, iStatus ); 
+    
+    
     SetActive();
     }
 
@@ -140,6 +212,15 @@
     // Close the installer. 
     // The launcher is shown in the application list.
     // So, it would not be nice to leave it there after operation is completed.
+    
+   
+    TInt ErrCategory = 0;
+    TInt ErrCode = 0;
+    TInt ExtendedErrCode =0;
+    
+    TBool ret = iResults->GetIntByNameL(Usif::KSifOutParam_ErrCategory, ErrCategory);
+    ret = iResults->GetIntByNameL(Usif::KSifOutParam_ErrCode, ErrCode);
+    ret = iResults->GetIntByNameL(Usif::KSifOutParam_ExtendedErrCode, ExtendedErrCode);
     SilentLauncher().Close();
 
     TInt errorCode( ConvertErrorCode( iStatus.Int() ) );
@@ -154,15 +235,16 @@
     return iObserver;
     }
 
-
-SwiUI::RSWInstSilentLauncher& CNcdSilentInstallActiveObserver::SilentLauncher()
+Usif::RSoftwareInstall& CNcdSilentInstallActiveObserver::SilentLauncher()
     {
-    return iSilentLauncher;
+    // return iSilentLauncher;
+    return iInstaller;
     }
 
 
 TInt CNcdSilentInstallActiveObserver::ConvertErrorCode( TInt aErrorCode )
     {
+    /*
     switch ( aErrorCode )
         {
         case SwiUI::KSWInstErrUserCancel:
@@ -181,7 +263,8 @@
             // Nothing to do here.
             break;
         }
-
+    */
+    
     return aErrorCode;
     }
 
--- a/package_definition.xml	Fri Jun 11 13:45:18 2010 +0300
+++ b/package_definition.xml	Thu Jun 24 12:37:54 2010 +0300
@@ -1,41 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <SystemDefinition schema="3.0.0">
   <package id="appinstall" name="Application Installation" levels="tool framework generic api">
-    <collection id="appinstaller" name="Application Installer" level="generic">
-      <component id="appmngr2" filter="s60" name="Application Manager 2" introduced="^2">
-        <unit bldFile="appinstaller/appmngr2/group"/>
-      </component>
-      <component id="appinstui" filter="s60" name="Application Installer UI" introduced="^2">
-        <unit bldFile="appinstaller/appinstui/group"/>
-      </component>
-    </collection>
-    <collection id="ncdengine" name="Nokia Content Discover" level="framework">
-      <component id="ncdengine_engine" filter="s60" name="NCD Engine" introduced="^1">
-        <unit bldFile="ncdengine/engine/group"/>
-      </component>
-      <component id="debuglogger" filter="s60" name="NCD Debug Logger" introduced="^1">
-        <!-- <unit bldFile="ncdengine/debuglogger/group"/> -->
-      </component>
-      <component id="ncdengine_build" filter="s60" name="NCD Build" introduced="^1">
-        <unit bldFile="ncdengine/group"/>
-      </component>
-    </collection>
-    <collection id="iaupdateapi_stub" name="IA Update API Stub" level="api">
-      <component id="iaupdateapi_stub_build" name="IA Update API Stub Build" filter="s60" introduced="^2">
-        <unit bldFile="iaupdateapi_stub/group"/>
-      </component>
-    </collection>
-    <collection id="iaupdate" name="Independent Apps Update" level="api">
-      <component id="iad" name="Software Update" filter="s60" introduced="^2">
-        <unit bldFile="iaupdate/iad/group"/>
-      </component>
-      <component id="iaupdate_help" filter="s60" name="IA Update Help" introduced="^2">
-        <unit bldFile="iaupdate/help/group"/>
-      </component>
-      <component id="iaupdate_build" filter="s60" name="IA Update Build" introduced="^2">
-        <unit bldFile="iaupdate/group"/>
-      </component>
-    </collection>
     <collection id="installationservices" name="Installation Services" level="generic">
       <component id="swi" name="Secure Software Install" purpose="optional">
         <unit bldFile="installationservices/swi/group" mrp="installationservices/swi/group/security_swi.mrp"/>
@@ -79,23 +44,5 @@
         <unit bldFile="secureswitools/swisistools/group" mrp="secureswitools/swisistools/group/security_sistools.mrp"/>
       </component>
     </collection>
-    <collection id="appinstall_info" name="Application Installation Info" level="api">
-      <component id="appinstall_pub" filter="s60" name="Application Installation Public Interfaces" class="api">
-        <unit bldFile="appinstall_pub/group"/>
-        <!-- <unit bldFile="appinstall_pub/startup_list_management_api/tsrc/bc/startuplistmanagementapi/selfsignedstartupapp/group"/> -->
-        <!-- <unit bldFile="appinstall_pub/startup_list_management_api/tsrc/bc/startuplistmanagementapi/startupapp/group"/> -->
-      </component>
-      <component id="appinstall_plat" filter="s60" name="Application Installation Platform Interfaces" class="api">
-        <unit bldFile="appinstall_plat/group"/>
-        <unit bldFile="appinstall_plat/appmngr2runtimeapi/tsrc/group"/>
-        <!-- <unit bldFile="appinstall_plat/appmngr2runtimeapi/tsrc/data_src/sistest"/> -->
-      </component>
-      <component id="appinstall_test" filter="s60" name="Application Installation Test" purpose="development">
-        <!-- <unit bldFile="tsrc/group"/> -->
-      </component>
-      <component id="appinstall_metadata" name="Application Installation Metadata" class="config" introduced="^2" purpose="development" target="desktop">
-        <unit mrp="appinstall_info/appinstall_metadata/appinstall_metadata.mrp"/>
-      </component>
-    </collection>
   </package>
 </SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<PackageMap root="sf" layer="mw" />
\ No newline at end of file
--- a/secureswitools/makekeys/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/makekeys/group/bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -23,19 +23,14 @@
 */
 
 PRJ_PLATFORMS
-TOOLS
+TOOLS2
 
 PRJ_EXPORTS
 
 PRJ_MMPFILES
-#ifdef TOOLS
-#ifndef TOOLS2
-#ifdef MSVCDOTNET
-makefile ../src/makekeys.net.fil
-#else //!MSVCDOTNET
-makefile ../src/makekeys.fil
-#endif // MSVCDOTNET
-#endif // TOOLS2
-#endif // TOOLS
 
-PRJ_TESTMMPFILES
+#ifdef TOOLS2
+#ifndef TOOLS2_LINUX
+makekeys.mmp
+#endif
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/makekeys/group/makekeys.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 mmp file is used to replace calling makefile directly.
+*
+*/
+
+
+TARGET			makekeys.exe
+TARGETTYPE		exe
+
+
+USERINCLUDE 		../../swisistools/source/makesis
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+SYSTEMINCLUDE 		../../openssllib/import/inc
+
+
+SOURCEPATH 		../src
+SOURCE			CertificateGenerator.cpp
+SOURCE			CertificateRequestGenerator.cpp
+SOURCE			DSAKeyGenerator.cpp
+SOURCE			KeyGenerator.cpp	
+SOURCE			MAKEKEYS.CPP
+SOURCE			PARSECMD.CPP
+SOURCE			RSAKeyGenerator.cpp
+SOURCE			UTILS.CPP
+
+
+#ifndef TOOLS2_LINUX
+	MACRO			_UNICODE _CONSOLE _STLP_THREADS _WIN32 UNICODE 
+#else
+	MACRO			_UNICODE _CONSOLE UNICODE 
+#endif
+
+STATICLIBRARY			eay32 
+
+OPTION				GCC -w
+OPTION				GCC -fno-stack-check
+OPTION				GCC -fpermissive
--- a/secureswitools/makekeys/src/MAKEKEYS.CPP	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/makekeys/src/MAKEKEYS.CPP	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -56,7 +56,7 @@
 :m_fVerbose(FALSE)
 	{ ; }
 
-int CMakeKeys::Run(const int argc, const _TCHAR *argv[], const _TCHAR *envp[])
+int CMakeKeys::Run(const int argc, const _TCHAR *argv[])
 // Inputs   : argc, argv, envp - The command line passed to the process
 	{	
 	BOOL bValid = TRUE;
@@ -117,6 +117,7 @@
 
 			OUT << _T("Warning: the private key should be encrypted with the -password option") << endl;
 			OUT << _T("Do you want to use a password (y/n)? ");
+			OUT.flush();
 
 			cin >> Warn;
 
@@ -166,6 +167,7 @@
 
 				OUT << _T("Warning: the private key should be encrypted with the -password option") << endl;
 				OUT << _T("Do you want to use a password (y/n)? ");
+				OUT.flush();
 
 				cin >> Warn;
 
@@ -296,9 +298,13 @@
 	// main function - constructs a CMakeKeys object and calls it's run method
 	extern "C"
 		{
-		int _tmain(int argc, const _TCHAR *argv[], const _TCHAR *envp[])
+		int main(int argc, const char *argv[], const char *envp[])
 			{
+			// MingW doesn't support _tmain(),
+			// so using GetCommandLineW() to get wide args.
+			wchar_t** argvW = CommandLineToArgvW( GetCommandLineW(), &argc);
+			
 			CMakeKeys app;
-			return app.Run(argc, argv, envp);
+			return app.Run(argc, argvW);
 			}
 		}
--- a/secureswitools/makekeys/src/MAKEKEYS.H	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/makekeys/src/MAKEKEYS.H	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -53,7 +53,7 @@
 	public:
 		CMakeKeys();
 		
-		int  Run(const int argc, const _TCHAR *argv[], const _TCHAR *envp[]);
+		int  Run(const int argc, const _TCHAR *argv[]);
 			
 	public: 
 		CKeyGenerator* m_KeyGen;
--- a/secureswitools/swianalysistoolkit/group/bld.inf	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/group/bld.inf	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -22,27 +22,24 @@
 */
 
 PRJ_PLATFORMS
-DEFAULT TOOLS
-TOOLS2
+DEFAULT TOOLS2
+TOOLS
 
 PRJ_MMPFILES
 
-#ifdef TOOLS 
-#ifndef TOOLS2
-#ifdef SYMBIAN_OLD_EXPORT_LOCATION
-makefile ../source/chainvalidityandinstallfilestatustools/dumpchainvaliditytool/dumpchainvaliditytool.fil
-#else
-makefile ../source/chainvalidityandinstallfilestatustools/dumpchainvaliditytool/dumpchainvaliditytool2.fil
+#ifdef TOOLS2
+#ifndef TOOLS2_LINUX
+dumpchainvaliditytool.mmp
+dumpinstallfilestatustool.mmp
+dumpswicertstoretool.mmp
+#endif
 #endif
 
-makefile ../source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/dumpinstallfilestatustool.fil
-makefile ../source/dumpswicertstoretool/dumpswicertstoretool.fil
 
 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
+#ifdef TOOLS
 makefile ../source/dumpswiregistrytool/dumpswiregistrytool.fil
 #endif
-
-#endif
 #endif
 
 
@@ -186,7 +183,7 @@
 ../test/tdumpregistry/dumpregistry-output/a0000206.out /epoc32/winscw/c/tswi/tdumpregistry/dumpregistry-output/a0000206.out
 ../test/tdumpregistry/dumpregistry-output/a0000206.tmp /epoc32/winscw/c/tswi/tdumpregistry/dumpregistry-output/a0000206.tmp
 ../test/tdumpregistry/testregistry.pl /epoc32/winscw/c/tswi/tdumpregistry/testregistry.pl
-
+#endif
 
 // tdumpcertstore
 ../test/tdumpcertstore/certstore.bat /epoc32/winscw/c/tswi/tdumpcertstore/certstore.bat
@@ -220,5 +217,4 @@
 ../test/tdumpcertstore/predumpcertstoretest.bat /epoc32/winscw/c/tswi/tdumpcertstore/predumpcertstoretest.bat
 ../test/tdumpcertstore/postdumpcertstoretest.bat /epoc32/winscw/c/tswi/tdumpcertstore/postdumpcertstoretest.bat
 ../test/tdumpcertstore/testswicertstore.pl /epoc32/winscw/c/tswi/tdumpcertstore/testswicertstore.pl
-#endif
 // End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/group/dumpchainvaliditytool.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 mmp file is used to replace calling makefile directly.
+*
+*/
+
+
+TARGET			dumpchainvaliditytool.exe
+TARGETTYPE		exe
+
+
+USERINCLUDE 			../source/chainvalidityandinstallfilestatustools/dumpchainvaliditytool
+USERINCLUDE 			../source/chainvalidityandinstallfilestatustools/common
+USERINCLUDE 			../source/common
+USERINCLUDE 			../../swisistools/source/makesis
+USERINCLUDE 			../../swisistools/source/common
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+SYSTEMINCLUDE 			../../openssllib/import/inc 
+
+SOURCEPATH			../source/chainvalidityandinstallfilestatustools
+
+SOURCE				./dumpchainvaliditytool/dumpchainvalidity.cpp
+SOURCE				./dumpchainvaliditytool/options.cpp
+SOURCE				./common/certificatechain.cpp
+SOURCE				./common/dumpchainvaliditytool.cpp
+SOURCE				./common/launchprocess.cpp
+SOURCE				./common/siscertificatechain.cpp
+SOURCE				./common/swicertstore.cpp
+SOURCE				../common/osinterface.cpp
+
+#ifndef TOOLS2_LINUX
+	MACRO			_UNICODE _CONSOLE _STLP_THREADS _WIN32 GENERATE_ERRORS DUMPCHAINVALIDITYTOOL //UNICODE
+#else
+	MACRO			_UNICODE _CONSOLE UNICODE GENERATE_ERRORS DUMPCHAINVALIDITYTOOL	
+#endif
+
+STATICLIBRARY			eay32 
+STATICLIBRARY			shlwapi 
+
+OPTION				GCC -w
+OPTION				GCC -fno-stack-check
+OPTION				GCC -fpermissive
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/group/dumpinstallfilestatustool.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 mmp file is used to replace calling makefile directly.
+*
+*/
+
+
+TARGET			dumpinstallfilestatustool.exe
+TARGETTYPE		exe
+
+
+USERINCLUDE 			../source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool
+USERINCLUDE 			../source/chainvalidityandinstallfilestatustools/common
+USERINCLUDE 			../source/common
+USERINCLUDE 			../../swisistools/source/makesis
+USERINCLUDE 			../../swisistools/source/common
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+SYSTEMINCLUDE 			../../openssllib/import/inc 
+
+SOURCEPATH			../source/chainvalidityandinstallfilestatustools
+
+SOURCE				./dumpinstallfilestatustool/dumpinstallfilestatustool.cpp
+SOURCE				./dumpinstallfilestatustool/sisfiledata.cpp
+SOURCE				./dumpinstallfilestatustool/options.cpp
+SOURCE				./common/certificatechain.cpp
+SOURCE				./common/dumpchainvaliditytool.cpp
+SOURCE				./common/launchprocess.cpp
+SOURCE				./common/siscertificatechain.cpp
+SOURCE				./common/swicertstore.cpp
+SOURCE				../common/osinterface.cpp
+
+#ifndef TOOLS2_LINUX
+	MACRO			_UNICODE _CONSOLE _STLP_THREADS _WIN32 GENERATE_ERRORS DUMPINSTALLFILESTATUSTOOL //UNICODE
+#else
+	MACRO			_UNICODE _CONSOLE UNICODE GENERATE_ERRORS DUMPINSTALLFILESTATUSTOOL	
+#endif
+
+STATICLIBRARY			eay32 
+STATICLIBRARY			shlwapi 
+
+OPTION				GCC -w
+OPTION				GCC -fno-stack-check
+OPTION				GCC -fpermissive
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/group/dumpswicertstoretool.mmp	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 mmp file is used to replace calling makefile directly.
+*
+*/
+
+
+TARGET			dumpswicertstoretool.exe
+TARGETTYPE		exe
+
+USERINCLUDE 		../source/dumpswicertstoretool
+USERINCLUDE 		../source/common
+USERINCLUDE 		../source/common/utf8
+USERINCLUDE 		../../swisistools/source/makesis
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+SYSTEMINCLUDE 		../../openssllib/import/inc
+
+
+SOURCEPATH 		../source/common/utf8
+SOURCE			utf8.cpp
+
+SOURCEPATH 		../source/common
+SOURCE			osinterface.cpp  
+SOURCE			ucmp.cpp 
+SOURCE			streamreader.cpp
+
+SOURCEPATH		../source/dumpswicertstoretool
+
+SOURCE			certificate.cpp 
+SOURCE			datalocator.cpp 
+SOURCE			options.cpp  
+SOURCE			pfsdump.cpp 
+SOURCE			dumpswicertstoretool.cpp  
+SOURCE			swicertstoremetadata.cpp
+
+
+#ifndef TOOLS2_LINUX
+	MACRO			_UNICODE _CONSOLE _STLP_THREADS _WIN32 _MBCS DUMPSWICERTSTORETOOL	
+#else
+	MACRO			_UNICODE _CONSOLE UNICODE DUMPSWICERTSTORETOOL
+	STATICLIBRARY		crypto 
+#endif
+
+STATICLIBRARY			eay32 
+STATICLIBRARY			shlwapi 
+
+OPTION				GCC -w
+OPTION				GCC -fno-stack-check
+OPTION				GCC -fpermissive
--- a/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/common/certificatechain.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/common/certificatechain.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 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 the License "Eclipse Public License v1.0"
@@ -450,7 +450,7 @@
 						capabilities.append("Unknown"+capability);
 						}
 				
-					iDevCapabilities += pow(2,capability);
+					iDevCapabilities += pow((double)2,capability);
 					}
 				capability++;
 				}
@@ -540,7 +540,7 @@
 				buf[j] = *(buffer++);
 				}
 
-			deviceId.append(buf);
+			deviceId.assign(buf,(KDeviceIdLength-2));
 			deviceId.append("\n");
 			}
 		}
--- a/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/dumpinstallfilestatustool.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/dumpinstallfilestatustool.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 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 the License "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
 *
 */
 
-
+#include <memory>
 #include "dumpinstallfilestatustool.h"
 #include "osinterface.h"
 #ifdef _MSC_VER
--- a/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/options.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool/options.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2009 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 the License "Eclipse Public License v1.0"
@@ -263,7 +263,7 @@
 				{
 					if(capabilities.compare(listOfCapabilities[i])==0)
 					{
-					userCaps += pow(2,i);
+					userCaps += pow((double)2,i);
 					}
 				}
 			}
--- a/secureswitools/swianalysistoolkit/source/common/streamreader.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/source/common/streamreader.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -225,7 +225,7 @@
 	// This memory will be freed by the caller of this function
 	char *ptrUtf8 = new char[targetLength + 1];
 	
-	UTF16* sourceStart = static_cast<UTF16*>(aSource);
+	UTF16* sourceStart = reinterpret_cast<UTF16*>(aSource);
 	UTF16* sourceEnd = sourceStart + aSrcLength; 
 	UTF8* targetStart = reinterpret_cast<UTF8*>(ptrUtf8);
 	UTF8* targetEnd;
--- a/secureswitools/swianalysistoolkit/source/dumpswicertstoretool/pfsdump.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/source/dumpswicertstoretool/pfsdump.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -206,7 +206,8 @@
 Stream StoreFile::RootStream()
 	{
 	Toc::Head const& head=iToc.Header();
-	return FindStream(head.Root());
+	Handle hndl = static_cast<Handle>(head.Root());
+	return FindStream(hndl);
 	}
 
 Stream StoreFile::FindStream(Handle& aHandle)
--- a/secureswitools/swianalysistoolkit/source/dumpswicertstoretool/swicertstoremetadata.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/source/dumpswicertstoretool/swicertstoremetadata.cpp	Thu Jun 24 12:37:54 2010 +0300
@@ -143,7 +143,7 @@
    				capability.append("Unknown"+unknownIndex);
    				unknownIndex++;
    				}
-  			cap += pow(2,j);
+  			cap += pow((double)2,j);
    			}
    		else
    			{
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/allvalidchain.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/allvalidchain.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,28 +1,28 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Mid-R5
-Issued To : /O=Symbian Software Ltd/CN=Good-M5
-Valid From : 17/02/05
-Valid To : 14/02/19
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Mid-R5
+Issued To : /O=Symbian Software Ltd/CN=Good-M5
+Valid From : 17/02/05
+Valid To : 14/02/19
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/corrupteddat.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/corrupteddat.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,2 @@
-DumpSWICertStoreTool Execution Error : DAT file specified is not a Permanent File Store
-
+DumpSWICertStoreTool Execution Error : DAT file specified is not a Permanent File Store
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/corruptedsis.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/corruptedsis.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,2 @@
-compression fault, inflation
-
+compression fault, inflation
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/devcert2.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/devcert2.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,57 +1,57 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Mid-R5
-Issued To : /O=Symbian/CN=Simple Cert
-Valid From : 24/02/06
-Valid To : 26/03/06
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Invalid Certificate Chain : Validity Period Check Failed
-
-SIS File is signed with a Developer Certificate with Constraints :
-
-DeviceId Constraints :
-
-11111111-222222-3-44
-
-SID Constraints :
-
-11000006
-
-VID Constraints :
-
-70000001
-
-Capabilities Constraints :
-
-CommDD
-PowerMgmt
-MultimediaDD
-ReadDeviceData
-WriteDeviceData
-DRM
-TrustedUI
-ProtServ
-DiskAdmin
-NetworkControl
-AllFiles
-SwEvent
-NetworkServices
-LocalServices
-ReadUserData
-WriteUserData
-Location
-SurroundingsDD
-UserEnvironment
-
-Is Validated By : Root5-RSA
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Mid-R5
+Issued To : /O=Symbian/CN=Simple Cert
+Valid From : 24/02/06
+Valid To : 26/03/06
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Invalid Certificate Chain : Validity Period Check Failed
+
+SIS File is signed with a Developer Certificate with Constraints :
+
+DeviceId Constraints :
+
+11111111-222222-3-44
+
+SID Constraints :
+
+11000006
+
+VID Constraints :
+
+70000001
+
+Capabilities Constraints :
+
+CommDD
+PowerMgmt
+MultimediaDD
+ReadDeviceData
+WriteDeviceData
+DRM
+TrustedUI
+ProtServ
+DiskAdmin
+NetworkControl
+AllFiles
+SwEvent
+NetworkServices
+LocalServices
+ReadUserData
+WriteUserData
+Location
+SurroundingsDD
+UserEnvironment
+
+Is Validated By : Root5-RSA
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/mandatory.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/mandatory.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,28 +1,28 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Mid-R5
-Issued To : /O=Symbian Software Ltd/CN=Good-M5
-Valid From : 17/02/05
-Valid To : 14/02/19
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Mid-R5
+Issued To : /O=Symbian Software Ltd/CN=Good-M5
+Valid From : 17/02/05
+Valid To : 14/02/19
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/missing_mandatory.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/missing_mandatory.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,34 +1,34 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Mid-R5
-Issued To : /O=Symbian Software Ltd/CN=Good-M5
-Valid From : 17/02/05
-Valid To : 14/02/19
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
-SIS File is not signed with the following Mandatory Certificate 
-in the CertStore :
-
-Test root for different serial number
-Symbian Test - RSA
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Mid-R5
+Issued To : /O=Symbian Software Ltd/CN=Good-M5
+Valid From : 17/02/05
+Valid To : 14/02/19
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
+SIS File is not signed with the following Mandatory Certificate 
+in the CertStore :
+
+Test root for different serial number
+Symbian Test - RSA
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/onechain.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/onechain.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,19 +1,19 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Mid-R5
-Issued To : /O=Symbian Software Ltd/CN=Good-M5
-Valid From : 17/02/05
-Valid To : 14/02/19
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Mid-R5
+Issued To : /O=Symbian Software Ltd/CN=Good-M5
+Valid From : 17/02/05
+Valid To : 14/02/19
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/selfsigned.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/selfsigned.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,10 +1,10 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=OCSPSigningRoot-RSA
-Issued To : /O=Symbian Software Ltd/CN=OCSPSigningRoot-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-: SIS File is signed by a Self Signed Certificate 
-Is Not Validated By Certstore:
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=OCSPSigningRoot-RSA
+Issued To : /O=Symbian Software Ltd/CN=OCSPSigningRoot-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+: SIS File is signed by a Self Signed Certificate 
+Is Not Validated By Certstore:
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/somevalidchain.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/somevalidchain.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,43 +1,43 @@
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Mid-R5
-Issued To : /O=Symbian Software Ltd/CN=Good-M5
-Valid From : 17/02/05
-Valid To : 14/02/19
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Mid-R5
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Is Validated By : Root5-RSA
-
-Certificate Chain :
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Expired-R5
-Valid From : 03/02/82
-Valid To : 03/02/82
-
-Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
-Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
-Valid From : 03/03/04
-Valid To : 01/03/14
-
-Invalid Certificate Chain : Validity Period Check Failed
-Is Validated By : Root5-RSA
-
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Mid-R5
+Issued To : /O=Symbian Software Ltd/CN=Good-M5
+Valid From : 17/02/05
+Valid To : 14/02/19
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Mid-R5
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Is Validated By : Root5-RSA
+
+Certificate Chain :
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Expired-R5
+Valid From : 03/02/82
+Valid To : 03/02/82
+
+Issued By : /O=Symbian Software Ltd/CN=Root5-RSA
+Issued To : /O=Symbian Software Ltd/CN=Root5-RSA
+Valid From : 03/03/04
+Valid To : 01/03/14
+
+Invalid Certificate Chain : Validity Period Check Failed
+Is Validated By : Root5-RSA
+
--- a/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/unsigned.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output/unsigned.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,2 @@
-SIS File is Unsigned.
-
+SIS File is Unsigned.
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/allcapabilities.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/allcapabilities.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,50 +1,50 @@
-ROM Based SwiCertStore :
-
-AllCapabilities.dat:
-
-[SymbianTestRootCADiffSerial]
-
-file = SymbianTestRootCADiffSerial.der
-capability = TCB
-capability = CommDD
-capability = PowerMgmt
-capability = MultimediaDD
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = TrustedUI
-capability = ProtServ
-capability = DiskAdmin
-capability = NetworkControl
-capability = AllFiles
-capability = SwEvent
-capability = NetworkServices
-capability = LocalServices
-capability = ReadUserData
-capability = WriteUserData
-capability = Location
-capability = SurroundingsDD
-capability = UserEnvironment
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[Root5CA]
-
-file = Root5CA.der
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestRSACA]
-
-file = SymbianTestRSACA.der
-capability = TCB
-capability = CommDD
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
+ROM Based SwiCertStore :
+
+AllCapabilities.dat:
+
+[SymbianTestRootCADiffSerial]
+
+file = SymbianTestRootCADiffSerial.der
+capability = TCB
+capability = CommDD
+capability = PowerMgmt
+capability = MultimediaDD
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = TrustedUI
+capability = ProtServ
+capability = DiskAdmin
+capability = NetworkControl
+capability = AllFiles
+capability = SwEvent
+capability = NetworkServices
+capability = LocalServices
+capability = ReadUserData
+capability = WriteUserData
+capability = Location
+capability = SurroundingsDD
+capability = UserEnvironment
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[Root5CA]
+
+file = Root5CA.der
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestRSACA]
+
+file = SymbianTestRSACA.der
+capability = TCB
+capability = CommDD
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/allmandatory.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/allmandatory.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,29 +1,29 @@
-AllMandatory.dat: ROM Based SwiCertstore 
-
-
-[SymbianTestRootCADiffSerial]
-
-file=SymbianTestRootCADiffSerial.der
-capability= ReadDeviceData
-capability= WriteDeviceData
-capability= DRM
-capability= AllFiles
-application=SWInstall
-Mandatory=1
-
-
-[Root5CA]
-
-file=Root5CA.der
-application=SWInstall
-Mandatory=1
-
-
-[SymbianTestRSACA]
-
-file=SymbianTestRSACA.der
-capability= TCB
-capability= CommDD
-application=SWInstall
-Mandatory=1
-
+AllMandatory.dat: ROM Based SwiCertstore 
+
+
+[SymbianTestRootCADiffSerial]
+
+file=SymbianTestRootCADiffSerial.der
+capability= ReadDeviceData
+capability= WriteDeviceData
+capability= DRM
+capability= AllFiles
+application=SWInstall
+Mandatory=1
+
+
+[Root5CA]
+
+file=Root5CA.der
+application=SWInstall
+Mandatory=1
+
+
+[SymbianTestRSACA]
+
+file=SymbianTestRSACA.der
+capability= TCB
+capability= CommDD
+application=SWInstall
+Mandatory=1
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,70 +1,70 @@
-\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
-or is a corrupt file
-
-Merged ROM Based and C:BASED Writable Certstore 
-
-
-[SymbianTestRootCADiffSerial]
-
-file=SymbianTestRootCADiffSerial.der
-capability= TCB
-capability= CommDD
-capability= PowerMgmt
-capability= MultimediaDD
-capability= ReadDeviceData
-capability= WriteDeviceData
-capability= DRM
-capability= TrustedUI
-capability= ProtServ
-capability= DiskAdmin
-capability= NetworkControl
-capability= AllFiles
-capability= SwEvent
-capability= NetworkServices
-capability= LocalServices
-capability= ReadUserData
-capability= WriteUserData
-capability= Location
-capability= SurroundingsDD
-capability= UserEnvironment
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=1
-
-
-[Root5CA]
-
-file=Root5CA.der
-application=SWInstall
-Mandatory=1
-
-
-[SymbianTestRSACA]
-
-file=SymbianTestRSACA.der
-capability= TCB
-capability= CommDD
-application=SWInstall
-Mandatory=1
-
-
-[SymbianTestChainRSACA]
-
-file=SymbianTestChainRSACA.der
-capability= DRM
-capability= NetworkServices
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=0
-
-
-[first]
-
-file=first.der
-capability= ReadDeviceData
-capability= WriteDeviceData
-capability= DRM
-capability= AllFiles
-application=SWInstall
-Mandatory=0
-
+\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
+or is a corrupt file
+
+Merged ROM Based and C:BASED Writable Certstore 
+
+
+[SymbianTestRootCADiffSerial]
+
+file=SymbianTestRootCADiffSerial.der
+capability= TCB
+capability= CommDD
+capability= PowerMgmt
+capability= MultimediaDD
+capability= ReadDeviceData
+capability= WriteDeviceData
+capability= DRM
+capability= TrustedUI
+capability= ProtServ
+capability= DiskAdmin
+capability= NetworkControl
+capability= AllFiles
+capability= SwEvent
+capability= NetworkServices
+capability= LocalServices
+capability= ReadUserData
+capability= WriteUserData
+capability= Location
+capability= SurroundingsDD
+capability= UserEnvironment
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=1
+
+
+[Root5CA]
+
+file=Root5CA.der
+application=SWInstall
+Mandatory=1
+
+
+[SymbianTestRSACA]
+
+file=SymbianTestRSACA.der
+capability= TCB
+capability= CommDD
+application=SWInstall
+Mandatory=1
+
+
+[SymbianTestChainRSACA]
+
+file=SymbianTestChainRSACA.der
+capability= DRM
+capability= NetworkServices
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=0
+
+
+[first]
+
+file=first.der
+capability= ReadDeviceData
+capability= WriteDeviceData
+capability= DRM
+capability= AllFiles
+application=SWInstall
+Mandatory=0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both1.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both1.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,77 +1,77 @@
-Merged ROM Based and C:BASED Writable Certstore 
-
-\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
-or is a corrupt file
-
-\epoc32\winscw\c\resource\swicertstore\dat\00000000:
-
-[SymbianTestRootCADiffSerial]
-
-file = SymbianTestRootCADiffSerial.der
-capability = TCB
-capability = CommDD
-capability = PowerMgmt
-capability = MultimediaDD
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = TrustedUI
-capability = ProtServ
-capability = DiskAdmin
-capability = NetworkControl
-capability = AllFiles
-capability = SwEvent
-capability = NetworkServices
-capability = LocalServices
-capability = ReadUserData
-capability = WriteUserData
-capability = Location
-capability = SurroundingsDD
-capability = UserEnvironment
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[Root5CA]
-
-file = Root5CA.der
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestRSACA]
-
-file = SymbianTestRSACA.der
-capability = TCB
-capability = CommDD
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-somecapabilities.dat:
-
-[SymbianTestChainRSACA]
-
-file = SymbianTestChainRSACA.der
-capability = DRM
-capability = NetworkServices
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[first]
-
-file = first.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 0
-SystemUpgrade = 0
-
+Merged ROM Based and C:BASED Writable Certstore 
+
+\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
+or is a corrupt file
+
+\epoc32\winscw\c\resource\swicertstore\dat\00000000:
+
+[SymbianTestRootCADiffSerial]
+
+file = SymbianTestRootCADiffSerial.der
+capability = TCB
+capability = CommDD
+capability = PowerMgmt
+capability = MultimediaDD
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = TrustedUI
+capability = ProtServ
+capability = DiskAdmin
+capability = NetworkControl
+capability = AllFiles
+capability = SwEvent
+capability = NetworkServices
+capability = LocalServices
+capability = ReadUserData
+capability = WriteUserData
+capability = Location
+capability = SurroundingsDD
+capability = UserEnvironment
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[Root5CA]
+
+file = Root5CA.der
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestRSACA]
+
+file = SymbianTestRSACA.der
+capability = TCB
+capability = CommDD
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+somecapabilities.dat:
+
+[SymbianTestChainRSACA]
+
+file = SymbianTestChainRSACA.der
+capability = DRM
+capability = NetworkServices
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[first]
+
+file = first.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 0
+SystemUpgrade = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both2.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/both2.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,111 +1,111 @@
-Merged ROM Based and C:BASED Writable Certstore 
-
-\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
-or is a corrupt file
-
-\epoc32\winscw\c\resource\swicertstore\dat\00000000:
-
-[SymbianTestRootCADiffSerial]
-
-file = SymbianTestRootCADiffSerial.der
-capability = TCB
-capability = CommDD
-capability = PowerMgmt
-capability = MultimediaDD
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = TrustedUI
-capability = ProtServ
-capability = DiskAdmin
-capability = NetworkControl
-capability = AllFiles
-capability = SwEvent
-capability = NetworkServices
-capability = LocalServices
-capability = ReadUserData
-capability = WriteUserData
-capability = Location
-capability = SurroundingsDD
-capability = UserEnvironment
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[Root5CA]
-
-file = Root5CA.der
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestRSACA]
-
-file = SymbianTestRSACA.der
-capability = TCB
-capability = CommDD
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-NoMandatory.dat:
-
-[SymbianTestDSACA]
-
-file = SymbianTestDSACA.der
-capability = MultimediaDD
-capability = NetworkServices
-capability = LocalServices
-capability = Location
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[SymbianTestTCBRSACA]
-
-file = SymbianTestTCBRSACA.der
-capability = TCB
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[SymbianTestExpiredRSACA]
-
-file = SymbianTestExpiredRSACA.der
-capability = DRM
-capability = NetworkServices
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[SymbianTestChainRSACA]
-
-file = SymbianTestChainRSACA.der
-capability = DRM
-capability = NetworkServices
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[first]
-
-file = first.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 0
-SystemUpgrade = 0
-
+Merged ROM Based and C:BASED Writable Certstore 
+
+\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
+or is a corrupt file
+
+\epoc32\winscw\c\resource\swicertstore\dat\00000000:
+
+[SymbianTestRootCADiffSerial]
+
+file = SymbianTestRootCADiffSerial.der
+capability = TCB
+capability = CommDD
+capability = PowerMgmt
+capability = MultimediaDD
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = TrustedUI
+capability = ProtServ
+capability = DiskAdmin
+capability = NetworkControl
+capability = AllFiles
+capability = SwEvent
+capability = NetworkServices
+capability = LocalServices
+capability = ReadUserData
+capability = WriteUserData
+capability = Location
+capability = SurroundingsDD
+capability = UserEnvironment
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[Root5CA]
+
+file = Root5CA.der
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestRSACA]
+
+file = SymbianTestRSACA.der
+capability = TCB
+capability = CommDD
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+NoMandatory.dat:
+
+[SymbianTestDSACA]
+
+file = SymbianTestDSACA.der
+capability = MultimediaDD
+capability = NetworkServices
+capability = LocalServices
+capability = Location
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[SymbianTestTCBRSACA]
+
+file = SymbianTestTCBRSACA.der
+capability = TCB
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[SymbianTestExpiredRSACA]
+
+file = SymbianTestExpiredRSACA.der
+capability = DRM
+capability = NetworkServices
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[SymbianTestChainRSACA]
+
+file = SymbianTestChainRSACA.der
+capability = DRM
+capability = NetworkServices
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[first]
+
+file = first.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 0
+SystemUpgrade = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/capdisplay_doption.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/capdisplay_doption.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,102 +1,102 @@
------BEGIN CERTIFICATE-----
-MIIC2zCCAkSgAwIBAgIJANZj6mZ2eYydMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
-VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
-IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
-MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
-NDUwMzBaFw0xNTA2MjAxNDUwMzBaMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
-TG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwg
-bnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFy
-ay5ncm90aEBzeW1iaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
-vaGClR38AGz13wpANspCdLXWQqZSrdC047PFw7C78oHYan1YCHvwSliYNB1b6Uu0
-u58gIj+WXAvMYyaWFtVGM77aFk8HY9d1ORWdUKUiaa6KmbnsjCztFpUJpeNjishB
-72uTrDXjW5Wzvod8VjxENLqDyKuPBgiOSGRJOiXXe6UCAwEAAaNFMEMwHQYDVR0O
-BBYEFHeY7egkRG79l5Ehv4rgpqVQtmBOMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
-VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA4GBAJnho5KznW1kyyNBDrDMptUT
-/C/vkxq7Yd0NBOOPn1eKHLKEQ1ruc5xyp0hc/RTetg/x/TYXkaj/RjGc07/2kuYM
-id1EihBac3RDyjTMxDCAynohVlJTNcl2WSgacJ+vH9+pvumv+/PoHdmSe3ik/SZ2
-TeXA+U4ui5Hexmmg0vIR
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
-aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
-MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
-ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
-Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
-Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
-DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
-BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
-dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
-gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
-0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDUDCCArmgAwIBAgIJAJ61CA73w3nyMA0GCSqGSIb3DQEBBAUAMIGFMQswCQYD
-VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RS
-U0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZI
-hvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjEwOTIwNTJa
-Fw0xNTA2MTkwOTIwNTJaMIGJMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9u
-MScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNV
-BAoTC1N5bWJpYW4gTHRkMSowKAYJKoZIhvcNAQkBFhtqYXNvbi5zaWJ0aG9ycGVA
-c3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA5ba0KfBTqTFThm9C
-cBE2t4ZHr29bB3y20gIfX6J6Id6LtoqK/LFCnhrFQGkELhopF06TVRmnuSDB1Rog
-XAu0QQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFApt3sj57yeBz6r1YXVn7Wd9LFC3
-MIG6BgNVHSMEgbIwga+AFPu9oMH/DvlUk17ovc9nFjarFLnnoYGLpIGIMIGFMQsw
-CQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJv
-b3RSU0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJ
-KoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbYIJAOhKfiKE61ruMBIG
-A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
-A4GBAB2YcUZW+W7olHtj+2avDG/Zpt7cmW/1+6Zsrvd3pOCRImtSNgooaVbV9VRx
-IpO0EqTFqeUyzpIVPWSQm5ngbYme71GCItcoVYGbFQPG/BENni8B+a1GYbJ6Bssw
-TFmMRatmNgKpkL0jdP0nmXBV0GD6L8l0IofXrjadW8JGiQu4
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
-VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
-IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
-MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
-NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
-TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
-cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
-FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
-4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
-apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
-6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
-KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
-QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
-qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
------END CERTIFICATE-----
-[CAPABILITIES]
-Test root for different serial number
-----------------------
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-
-Root5-RSA
-----------------------
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-
-RSA TestRootRSA Chain Cert One
-----------------------
-capability = DRM
-capability = NetworkServices
-
-Test root for different serial number
-----------------------
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-
-
-[MANDATORY]
-Test root for different serial number = 1
-Root5-RSA = 1
-RSA TestRootRSA Chain Cert One = 0
-Test root for different serial number = 0
-
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAkSgAwIBAgIJANZj6mZ2eYydMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDUwMzBaFw0xNTA2MjAxNDUwMzBaMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwg
+bnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFy
+ay5ncm90aEBzeW1iaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+vaGClR38AGz13wpANspCdLXWQqZSrdC047PFw7C78oHYan1YCHvwSliYNB1b6Uu0
+u58gIj+WXAvMYyaWFtVGM77aFk8HY9d1ORWdUKUiaa6KmbnsjCztFpUJpeNjishB
+72uTrDXjW5Wzvod8VjxENLqDyKuPBgiOSGRJOiXXe6UCAwEAAaNFMEMwHQYDVR0O
+BBYEFHeY7egkRG79l5Ehv4rgpqVQtmBOMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
+VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA4GBAJnho5KznW1kyyNBDrDMptUT
+/C/vkxq7Yd0NBOOPn1eKHLKEQ1ruc5xyp0hc/RTetg/x/TYXkaj/RjGc07/2kuYM
+id1EihBac3RDyjTMxDCAynohVlJTNcl2WSgacJ+vH9+pvumv+/PoHdmSe3ik/SZ2
+TeXA+U4ui5Hexmmg0vIR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDUDCCArmgAwIBAgIJAJ61CA73w3nyMA0GCSqGSIb3DQEBBAUAMIGFMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RS
+U0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZI
+hvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjEwOTIwNTJa
+Fw0xNTA2MTkwOTIwNTJaMIGJMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9u
+MScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNV
+BAoTC1N5bWJpYW4gTHRkMSowKAYJKoZIhvcNAQkBFhtqYXNvbi5zaWJ0aG9ycGVA
+c3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA5ba0KfBTqTFThm9C
+cBE2t4ZHr29bB3y20gIfX6J6Id6LtoqK/LFCnhrFQGkELhopF06TVRmnuSDB1Rog
+XAu0QQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFApt3sj57yeBz6r1YXVn7Wd9LFC3
+MIG6BgNVHSMEgbIwga+AFPu9oMH/DvlUk17ovc9nFjarFLnnoYGLpIGIMIGFMQsw
+CQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJv
+b3RSU0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJ
+KoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbYIJAOhKfiKE61ruMBIG
+A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
+A4GBAB2YcUZW+W7olHtj+2avDG/Zpt7cmW/1+6Zsrvd3pOCRImtSNgooaVbV9VRx
+IpO0EqTFqeUyzpIVPWSQm5ngbYme71GCItcoVYGbFQPG/BENni8B+a1GYbJ6Bssw
+TFmMRatmNgKpkL0jdP0nmXBV0GD6L8l0IofXrjadW8JGiQu4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
+cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
+FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
+apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
+6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
+QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
+qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
+-----END CERTIFICATE-----
+[CAPABILITIES]
+Test root for different serial number
+----------------------
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+
+Root5-RSA
+----------------------
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+
+RSA TestRootRSA Chain Cert One
+----------------------
+capability = DRM
+capability = NetworkServices
+
+Test root for different serial number
+----------------------
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+
+
+[MANDATORY]
+Test root for different serial number = 1
+Root5-RSA = 1
+RSA TestRootRSA Chain Cert One = 0
+Test root for different serial number = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/capdisplay_yoption.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/capdisplay_yoption.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,88 +1,88 @@
------BEGIN CERTIFICATE-----
-MIIC2zCCAkSgAwIBAgIJANZj6mZ2eYydMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
-VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
-IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
-MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
-NDUwMzBaFw0xNTA2MjAxNDUwMzBaMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
-TG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwg
-bnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFy
-ay5ncm90aEBzeW1iaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
-vaGClR38AGz13wpANspCdLXWQqZSrdC047PFw7C78oHYan1YCHvwSliYNB1b6Uu0
-u58gIj+WXAvMYyaWFtVGM77aFk8HY9d1ORWdUKUiaa6KmbnsjCztFpUJpeNjishB
-72uTrDXjW5Wzvod8VjxENLqDyKuPBgiOSGRJOiXXe6UCAwEAAaNFMEMwHQYDVR0O
-BBYEFHeY7egkRG79l5Ehv4rgpqVQtmBOMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
-VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA4GBAJnho5KznW1kyyNBDrDMptUT
-/C/vkxq7Yd0NBOOPn1eKHLKEQ1ruc5xyp0hc/RTetg/x/TYXkaj/RjGc07/2kuYM
-id1EihBac3RDyjTMxDCAynohVlJTNcl2WSgacJ+vH9+pvumv+/PoHdmSe3ik/SZ2
-TeXA+U4ui5Hexmmg0vIR
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
-aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
-MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
-ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
-Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
-Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
-DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
-BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
-dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
-gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
-0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDUDCCArmgAwIBAgIJAJ61CA73w3nyMA0GCSqGSIb3DQEBBAUAMIGFMQswCQYD
-VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RS
-U0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZI
-hvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjEwOTIwNTJa
-Fw0xNTA2MTkwOTIwNTJaMIGJMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9u
-MScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNV
-BAoTC1N5bWJpYW4gTHRkMSowKAYJKoZIhvcNAQkBFhtqYXNvbi5zaWJ0aG9ycGVA
-c3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA5ba0KfBTqTFThm9C
-cBE2t4ZHr29bB3y20gIfX6J6Id6LtoqK/LFCnhrFQGkELhopF06TVRmnuSDB1Rog
-XAu0QQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFApt3sj57yeBz6r1YXVn7Wd9LFC3
-MIG6BgNVHSMEgbIwga+AFPu9oMH/DvlUk17ovc9nFjarFLnnoYGLpIGIMIGFMQsw
-CQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJv
-b3RSU0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJ
-KoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbYIJAOhKfiKE61ruMBIG
-A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
-A4GBAB2YcUZW+W7olHtj+2avDG/Zpt7cmW/1+6Zsrvd3pOCRImtSNgooaVbV9VRx
-IpO0EqTFqeUyzpIVPWSQm5ngbYme71GCItcoVYGbFQPG/BENni8B+a1GYbJ6Bssw
-TFmMRatmNgKpkL0jdP0nmXBV0GD6L8l0IofXrjadW8JGiQu4
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
-VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
-IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
-MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
-NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
-TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
-cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
-FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
-4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
-apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
-6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
-KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
-QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
-qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
------END CERTIFICATE-----
-[CAPABILITIES]
-Test root for different serial number
-----------------------
-2160
-Root5-RSA
-----------------------
-2160
-RSA TestRootRSA Chain Cert One
-----------------------
-8256
-Test root for different serial number
-----------------------
-2160
-
-[MANDATORY]
-Test root for different serial number = 1
-Root5-RSA = 1
-RSA TestRootRSA Chain Cert One = 0
-Test root for different serial number = 0
-
+-----BEGIN CERTIFICATE-----
+MIIC2zCCAkSgAwIBAgIJANZj6mZ2eYydMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDUwMzBaFw0xNTA2MjAxNDUwMzBaMIGLMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9yIGRpZmZlcmVudCBzZXJpYWwg
+bnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDElMCMGCSqGSIb3DQEJARYWbWFy
+ay5ncm90aEBzeW1iaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+vaGClR38AGz13wpANspCdLXWQqZSrdC047PFw7C78oHYan1YCHvwSliYNB1b6Uu0
+u58gIj+WXAvMYyaWFtVGM77aFk8HY9d1ORWdUKUiaa6KmbnsjCztFpUJpeNjishB
+72uTrDXjW5Wzvod8VjxENLqDyKuPBgiOSGRJOiXXe6UCAwEAAaNFMEMwHQYDVR0O
+BBYEFHeY7egkRG79l5Ehv4rgpqVQtmBOMBIGA1UdEwEB/wQIMAYBAf8CAQUwDgYD
+VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUAA4GBAJnho5KznW1kyyNBDrDMptUT
+/C/vkxq7Yd0NBOOPn1eKHLKEQ1ruc5xyp0hc/RTetg/x/TYXkaj/RjGc07/2kuYM
+id1EihBac3RDyjTMxDCAynohVlJTNcl2WSgacJ+vH9+pvumv+/PoHdmSe3ik/SZ2
+TeXA+U4ui5Hexmmg0vIR
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICITCCAYqgAwIBAgIBADANBgkqhkiG9w0BAQQFADAzMR0wGwYDVQQKExRTeW1i
+aWFuIFNvZnR3YXJlIEx0ZDESMBAGA1UEAxMJUm9vdDUtUlNBMB4XDTA0MDMwMzE2
+MzQ0MloXDTE0MDMwMTE2MzQ0MlowMzEdMBsGA1UEChMUU3ltYmlhbiBTb2Z0d2Fy
+ZSBMdGQxEjAQBgNVBAMTCVJvb3Q1LVJTQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAufV5zRvgR/ohzfb8AizbLePxK7QfBOuTtwy70/ifZCP5aZMri6DgObYM
+Jwh4lChQ+UnQgMX9sRP1kWZ6UEbrhm7oUz7keI6wu4m4myYmMjY3nc+7T/std+o/
+Vzt/bSyLNYpAqUW50g46SL1lof8fXKGkqFRH42czeMUwqnEffRsCAwEAAaNFMEMw
+DgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQUwHQYDVR0OBBYEFHzj
+BilRFiByFNQlr/0YW21eSK9vMA0GCSqGSIb3DQEBBAUAA4GBACEv1s039YBNfVn/
+dxZm+1XDLmrm6Of5p3SjBz94osLV+cNsddP5W+jmdtEL2u+x33foGFPOkDyFFnIW
+gkFVfAKKCH70K2liJWDS5D+mu32zU8Kc/JF0musvKZ/EbuddJS+x7t7kBl4fFgr1
+0/AO8YOgD1AV55Z9Bjf1lTTHZMcX
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDUDCCArmgAwIBAgIJAJ61CA73w3nyMA0GCSqGSIb3DQEBBAUAMIGFMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJvb3RS
+U0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJKoZI
+hvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjEwOTIwNTJa
+Fw0xNTA2MTkwOTIwNTJaMIGJMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9u
+MScwJQYDVQQDEx5SU0EgVGVzdFJvb3RSU0EgQ2hhaW4gQ2VydCBUd28xFDASBgNV
+BAoTC1N5bWJpYW4gTHRkMSowKAYJKoZIhvcNAQkBFhtqYXNvbi5zaWJ0aG9ycGVA
+c3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA5ba0KfBTqTFThm9C
+cBE2t4ZHr29bB3y20gIfX6J6Id6LtoqK/LFCnhrFQGkELhopF06TVRmnuSDB1Rog
+XAu0QQIDAQABo4IBBDCCAQAwHQYDVR0OBBYEFApt3sj57yeBz6r1YXVn7Wd9LFC3
+MIG6BgNVHSMEgbIwga+AFPu9oMH/DvlUk17ovc9nFjarFLnnoYGLpIGIMIGFMQsw
+CQYDVQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMScwJQYDVQQDEx5SU0EgVGVzdFJv
+b3RSU0EgQ2hhaW4gQ2VydCBPbmUxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSYwJAYJ
+KoZIhvcNAQkBFhdqb2hhbi5ncm90aEBzeW1iaWFuLmNvbYIJAOhKfiKE61ruMBIG
+A1UdEwEB/wQIMAYBAf8CAQUwDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBBAUA
+A4GBAB2YcUZW+W7olHtj+2avDG/Zpt7cmW/1+6Zsrvd3pOCRImtSNgooaVbV9VRx
+IpO0EqTFqeUyzpIVPWSQm5ngbYme71GCItcoVYGbFQPG/BENni8B+a1GYbJ6Bssw
+TFmMRatmNgKpkL0jdP0nmXBV0GD6L8l0IofXrjadW8JGiQu4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICmzCCAgSgAwIBAgIJALiEmA11bk9gMA0GCSqGSIb3DQEBBAUAMIGLMQswCQYD
+VQQGEwJVSzEPMA0GA1UEBxMGTG9uZG9uMS4wLAYDVQQDEyVUZXN0IHJvb3QgZm9y
+IGRpZmZlcmVudCBzZXJpYWwgbnVtYmVyMRQwEgYDVQQKEwtTeW1iaWFuIEx0ZDEl
+MCMGCSqGSIb3DQEJARYWbWFyay5ncm90aEBzeW1iaWFuLmNvbTAeFw0wNTA2MjIx
+NDU0MTFaFw0xNTA2MjAxNDU0MTFaMIGPMQswCQYDVQQGEwJVSzEPMA0GA1UEBxMG
+TG9uZG9uMTMwMQYDVQQDEypjaGFpbjEgZm9yIHRlc3RpbmcgZGlmZmVyZW50IHNl
+cmlhbCBudW1iZXIxFDASBgNVBAoTC1N5bWJpYW4gTHRkMSQwIgYJKoZIhvcNAQkB
+FhV0b20uZ3JvdGhAc3ltYmlhbi5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA
+4RUhCumO+lKF1i1b9vkuWjpAEcxSGkk/pBvslhUVFuHt+cnk2TIdCaBM+x4jFZ7F
+apE0dmXKLt0jIB3lF7I6FwIDAQABo0UwQzAdBgNVHQ4EFgQUc2/SxDKcn4X9PJcF
+6QT78I3gZegwEgYDVR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAgQwDQYJ
+KoZIhvcNAQEEBQADgYEAU6IFCnXdVWCnFrcTySAk33RoWqWm3yMmtt3m0a5n2glz
+QQBj+sQSnauq1eByhnhdEp7fKuth/pmErKs5obs2gacs9Lrzthh8h0eb2iGj2O+9
+qbZsy+GfBDRfDcvSJAXsKYnIWuBoOZ9UjGPYxTEezK/N2ziJDJrty8gcSxa48Q8=
+-----END CERTIFICATE-----
+[CAPABILITIES]
+Test root for different serial number
+----------------------
+2160
+Root5-RSA
+----------------------
+2160
+RSA TestRootRSA Chain Cert One
+----------------------
+8256
+Test root for different serial number
+----------------------
+2160
+
+[MANDATORY]
+Test root for different serial number = 1
+Root5-RSA = 1
+RSA TestRootRSA Chain Cert One = 0
+Test root for different serial number = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/corrupted.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/corrupted.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,5 +1,5 @@
-ROM Based SwiCertStore :
-
-corrupted.dat: Is not a dat file 
-or is a corrupt file
-
+ROM Based SwiCertStore :
+
+corrupted.dat: Is not a dat file 
+or is a corrupt file
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/nomandatory.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/nomandatory.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,86 +1,86 @@
-NoMandatory.dat: ROM Based SwiCertstore 
-
-
-[SymbianTestRootCADiffSerial]
-
-file=SymbianTestRootCADiffSerial.der
-capability= ReadDeviceData
-capability= WriteDeviceData
-capability= DRM
-capability= AllFiles
-application=SWInstall
-Mandatory=0
-
-
-[Root5CA]
-
-file=Root5CA.der
-capability= ReadDeviceData
-capability= WriteDeviceData
-capability= DRM
-capability= AllFiles
-application=SWInstall
-Mandatory=0
-
-
-[SymbianTestDSACA]
-
-file=SymbianTestDSACA.der
-capability= MultimediaDD
-capability= NetworkServices
-capability= LocalServices
-capability= Location
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=0
-
-
-[SymbianTestRSACA]
-
-file=SymbianTestRSACA.der
-capability= ReadUserData
-capability= WriteUserData
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=0
-
-
-[SymbianTestTCBRSACA]
-
-file=SymbianTestTCBRSACA.der
-capability= TCB
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=0
-
-
-[SymbianTestExpiredRSACA]
-
-file=SymbianTestExpiredRSACA.der
-capability= DRM
-capability= NetworkServices
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=0
-
-
-[SymbianTestChainRSACA]
-
-file=SymbianTestChainRSACA.der
-capability= DRM
-capability= NetworkServices
-application=SWInstall
-application=SWInstallOCSP
-Mandatory=0
-
-
-[first]
-
-file=first.der
-capability= ReadDeviceData
-capability= WriteDeviceData
-capability= DRM
-capability= AllFiles
-application=SWInstall
-Mandatory=0
-
+NoMandatory.dat: ROM Based SwiCertstore 
+
+
+[SymbianTestRootCADiffSerial]
+
+file=SymbianTestRootCADiffSerial.der
+capability= ReadDeviceData
+capability= WriteDeviceData
+capability= DRM
+capability= AllFiles
+application=SWInstall
+Mandatory=0
+
+
+[Root5CA]
+
+file=Root5CA.der
+capability= ReadDeviceData
+capability= WriteDeviceData
+capability= DRM
+capability= AllFiles
+application=SWInstall
+Mandatory=0
+
+
+[SymbianTestDSACA]
+
+file=SymbianTestDSACA.der
+capability= MultimediaDD
+capability= NetworkServices
+capability= LocalServices
+capability= Location
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=0
+
+
+[SymbianTestRSACA]
+
+file=SymbianTestRSACA.der
+capability= ReadUserData
+capability= WriteUserData
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=0
+
+
+[SymbianTestTCBRSACA]
+
+file=SymbianTestTCBRSACA.der
+capability= TCB
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=0
+
+
+[SymbianTestExpiredRSACA]
+
+file=SymbianTestExpiredRSACA.der
+capability= DRM
+capability= NetworkServices
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=0
+
+
+[SymbianTestChainRSACA]
+
+file=SymbianTestChainRSACA.der
+capability= DRM
+capability= NetworkServices
+application=SWInstall
+application=SWInstallOCSP
+Mandatory=0
+
+
+[first]
+
+file=first.der
+capability= ReadDeviceData
+capability= WriteDeviceData
+capability= DRM
+capability= AllFiles
+application=SWInstall
+Mandatory=0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/somecapabilities.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/somecapabilities.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,50 +1,50 @@
-ROM Based SwiCertStore :
-
-somecapabilities.dat:
-
-[SymbianTestRootCADiffSerial]
-
-file = SymbianTestRootCADiffSerial.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[Root5CA]
-
-file = Root5CA.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestChainRSACA]
-
-file = SymbianTestChainRSACA.der
-capability = DRM
-capability = NetworkServices
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[first]
-
-file = first.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 0
-SystemUpgrade = 0
-
+ROM Based SwiCertStore :
+
+somecapabilities.dat:
+
+[SymbianTestRootCADiffSerial]
+
+file = SymbianTestRootCADiffSerial.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[Root5CA]
+
+file = Root5CA.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestChainRSACA]
+
+file = SymbianTestChainRSACA.der
+capability = DRM
+capability = NetworkServices
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[first]
+
+file = first.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 0
+SystemUpgrade = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/suflagsupport.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/suflagsupport.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,50 +1,50 @@
-ROM Based SwiCertStore :
-
-suflagsupport.dat:
-
-[SymbianTestRootCADiffSerial]
-
-file = SymbianTestRootCADiffSerial.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[Root5CA]
-
-file = Root5CA.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestRSACA]
-
-file = SymbianTestRSACA.der
-capability = DRM
-capability = NetworkServices
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
-
-[sucert]
-
-file = sucert.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 0
-SystemUpgrade = 1
-
+ROM Based SwiCertStore :
+
+suflagsupport.dat:
+
+[SymbianTestRootCADiffSerial]
+
+file = SymbianTestRootCADiffSerial.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[Root5CA]
+
+file = Root5CA.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestRSACA]
+
+file = SymbianTestRSACA.der
+capability = DRM
+capability = NetworkServices
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
+
+[sucert]
+
+file = sucert.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 0
+SystemUpgrade = 1
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/unicodecertificatename.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/unicodecertificatename.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,24 +1,24 @@
-ROM Based SwiCertStore :
-
-unicodecertificatename.dat:
-
-[Root5CA]
-
-file = Root5CA.der
-capability = DRM
-capability = AllFiles
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestDSACA]
-
-file = SymbianTestDSACA.der
-capability = ReadDeviceData
-capability = WriteDeviceData
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 0
-SystemUpgrade = 0
-
+ROM Based SwiCertStore :
+
+unicodecertificatename.dat:
+
+[Root5CA]
+
+file = Root5CA.der
+capability = DRM
+capability = AllFiles
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestDSACA]
+
+file = SymbianTestDSACA.der
+capability = ReadDeviceData
+capability = WriteDeviceData
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 0
+SystemUpgrade = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/writable.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output/writable.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,53 +1,53 @@
- C:\ Based Writable SwiCertstore :
-
-\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
-or is a corrupt file
-
-\epoc32\winscw\c\resource\swicertstore\dat\00000000:
-
-[SymbianTestRootCADiffSerial]
-
-file = SymbianTestRootCADiffSerial.der
-capability = TCB
-capability = CommDD
-capability = PowerMgmt
-capability = MultimediaDD
-capability = ReadDeviceData
-capability = WriteDeviceData
-capability = DRM
-capability = TrustedUI
-capability = ProtServ
-capability = DiskAdmin
-capability = NetworkControl
-capability = AllFiles
-capability = SwEvent
-capability = NetworkServices
-capability = LocalServices
-capability = ReadUserData
-capability = WriteUserData
-capability = Location
-capability = SurroundingsDD
-capability = UserEnvironment
-application = SWInstall
-application = SWInstallOCSP
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[Root5CA]
-
-file = Root5CA.der
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
-
-[SymbianTestRSACA]
-
-file = SymbianTestRSACA.der
-capability = TCB
-capability = CommDD
-application = SWInstall
-Mandatory = 1
-SystemUpgrade = 0
-
+ C:\ Based Writable SwiCertstore :
+
+\epoc32\winscw\c\resource\swicertstore\dat\00000001: Is not a dat file 
+or is a corrupt file
+
+\epoc32\winscw\c\resource\swicertstore\dat\00000000:
+
+[SymbianTestRootCADiffSerial]
+
+file = SymbianTestRootCADiffSerial.der
+capability = TCB
+capability = CommDD
+capability = PowerMgmt
+capability = MultimediaDD
+capability = ReadDeviceData
+capability = WriteDeviceData
+capability = DRM
+capability = TrustedUI
+capability = ProtServ
+capability = DiskAdmin
+capability = NetworkControl
+capability = AllFiles
+capability = SwEvent
+capability = NetworkServices
+capability = LocalServices
+capability = ReadUserData
+capability = WriteUserData
+capability = Location
+capability = SurroundingsDD
+capability = UserEnvironment
+application = SWInstall
+application = SWInstallOCSP
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[Root5CA]
+
+file = Root5CA.der
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
+
+[SymbianTestRSACA]
+
+file = SymbianTestRSACA.der
+capability = TCB
+capability = CommDD
+application = SWInstall
+Mandatory = 1
+SystemUpgrade = 0
+
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/1000000d.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/1000000d.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\1000000d\00000000.reg
-
-Package UID :0x1000000d
-Package Name :Test capabilities2
-Vendor :Vendor
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\1000000d\00000000.reg
+
+Package UID :0x1000000d
+Package Name :Test capabilities2
+Vendor :Vendor
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80000003.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80000003.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,22 +1,22 @@
-Package Information:
-
-Registry File :.\data\80000003\00000000.reg
-
-Package UID :0x80000003
-Package Name :Dummy Tester
-Vendor :Vendor
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :0.0.1000000
-Languages :Unknown
-Selected Drive :No Drive Selected
-File Major Version :e0e1
-File Minor Version :0
-Package Vendor Localized Name :
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :Yes
-Package Signed :Yes
-Package Trust :Unknown
-
+Package Information:
+
+Registry File :.\data\80000003\00000000.reg
+
+Package UID :0x80000003
+Package Name :Dummy Tester
+Vendor :Vendor
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :0.0.1000000
+Languages :Unknown
+Selected Drive :No Drive Selected
+File Major Version :e0e1
+File Minor Version :0
+Package Vendor Localized Name :
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :Yes
+Package Signed :Yes
+Package Trust :Unknown
+
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80000010.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80000010.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\80000010\00000000.reg
-
-Package UID :0x80000010
-Package Name :Test Mime-GE
-Vendor :Vendor
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :German
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\80000010\00000000.reg
+
+Package UID :0x80000010
+Package Name :Test Mime-GE
+Vendor :Vendor
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :German
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80212345.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/80212345.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\80212345\00000000.reg
-
-Package UID :0x80212345
-Package Name :TestSA
-Vendor :Vendor
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.4
-Languages :English
-Selected Drive :No Drive Selected
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainNoTrustAnchor
+Package Information:
+
+Registry File :.\data\80212345\00000000.reg
+
+Package UID :0x80212345
+Package Name :TestSA
+Vendor :Vendor
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.4
+Languages :English
+Selected Drive :No Drive Selected
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainNoTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81000008.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81000008.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\81000008\00000000.reg
-
-Package UID :0x81000008
-Package Name :File Null - Remove a file created in another apps import directory
-Vendor :Symbian
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :2.5.4
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Symbian
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81000008\00000000.reg
+
+Package UID :0x81000008
+Package Name :File Null - Remove a file created in another apps import directory
+Vendor :Symbian
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :2.5.4
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Symbian
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/8100000b.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/8100000b.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\8100000b\00000000.reg
-
-Package UID :0x8100000b
-Package Name :BigNc
-Vendor :Vendor
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\8100000b\00000000.reg
+
+Package UID :0x8100000b
+Package Name :BigNc
+Vendor :Vendor
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81111107.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81111107.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\81111107\00000000.reg
-
-Package UID :0x81111107
-Package Name :MultiLanguageOption-FR
-Vendor :Vendor
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :French
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81111107\00000000.reg
+
+Package UID :0x81111107
+Package Name :MultiLanguageOption-FR
+Vendor :Vendor
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :French
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111f8.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111f8.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\811111f8\00000000.reg
-
-Package UID :0x811111f8
-Package Name :testexpressions_operators
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\811111f8\00000000.reg
+
+Package UID :0x811111f8
+Package Name :testexpressions_operators
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111fb.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111fb.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\811111fb\00000000.reg
-
-Package UID :0x811111fb
-Package Name :testexpressions_else
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\811111fb\00000000.reg
+
+Package UID :0x811111fb
+Package Name :testexpressions_else
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111fc.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/811111fc.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\811111fc\00000000.reg
-
-Package UID :0x811111fc
-Package Name :testexpressions_elseif
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\811111fc\00000000.reg
+
+Package UID :0x811111fc
+Package Name :testexpressions_elseif
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115000.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115000.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\81115000\00000000.reg
-
-Package UID :0x81115000
-Package Name :053177c_0
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81115000\00000000.reg
+
+Package UID :0x81115000
+Package Name :053177c_0
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115011.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115011.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\81115011\00000000.reg
-
-Package UID :0x81115011
-Package Name :053177c_1
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81115011\00000000.reg
+
+Package UID :0x81115011
+Package Name :053177c_1
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115013.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81115013.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\81115013\00000000.reg
-
-Package UID :0x81115013
-Package Name :053177c_3
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :1.2.3
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81115013\00000000.reg
+
+Package UID :0x81115013
+Package Name :053177c_3
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :1.2.3
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81231235.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/81231235.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,42 +1,42 @@
-Package Information:
-
-Registry File :.\data\81231235\00000000.reg
-
-Package UID :0x81231235
-Package Name :TestAppInUse Suite
-Vendor :Unique Vendor Name
-Package Index :0
-Drives :4
-No of executables :3
-Package Version :1.0.0
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :PartialUpgrade
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
-Package Information:
-
-Registry File :.\data\81231235\00000001.reg
-
-Package UID :0x81231235
-Package Name :testappinuse_patch
-Vendor :Unique Vendor Name
-Package Index :1
-Drives :4
-No of executables :0
-Package Version :1.0.1
-Languages :English
-Selected Drive :C
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Vendor
-Package Install Type :Augmentation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81231235\00000000.reg
+
+Package UID :0x81231235
+Package Name :TestAppInUse Suite
+Vendor :Unique Vendor Name
+Package Index :0
+Drives :4
+No of executables :3
+Package Version :1.0.0
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :PartialUpgrade
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\81231235\00000001.reg
+
+Package UID :0x81231235
+Package Name :testappinuse_patch
+Vendor :Unique Vendor Name
+Package Index :1
+Drives :4
+No of executables :0
+Package Version :1.0.1
+Languages :English
+Selected Drive :C
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Vendor
+Package Install Type :Augmentation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/a0000206.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output/a0000206.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,21 +1,21 @@
-Package Information:
-
-Registry File :.\data\a0000206\00000000.reg
-
-Package UID :0xa0000206
-Package Name :3 Data Files
-Vendor :Symbian
-Package Index :0
-Drives :4
-No of executables :0
-Package Version :2.5.4
-Languages :English
-Selected Drive :No Drive Selected
-File Major Version :4
-File Minor Version :0
-Package Vendor Localized Name :Symbian
-Package Install Type :Installation
-Is Package in ROM :No
-Package Preinstalled :No
-Package Signed :Yes
-Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
+Package Information:
+
+Registry File :.\data\a0000206\00000000.reg
+
+Package UID :0xa0000206
+Package Name :3 Data Files
+Vendor :Symbian
+Package Index :0
+Drives :4
+No of executables :0
+Package Version :2.5.4
+Languages :English
+Selected Drive :No Drive Selected
+File Major Version :4
+File Minor Version :0
+Package Vendor Localized Name :Symbian
+Package Install Type :Installation
+Is Package in ROM :No
+Package Preinstalled :No
+Package Signed :Yes
+Package Trust :SisPackageCertificateChainValidatedToTrustAnchor
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/corrupteddat.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/corrupteddat.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,2 @@
-DumpSWICertStoreTool Execution Error : DAT file specified is not a Permanent File Store
-
+DumpSWICertStoreTool Execution Error : DAT file specified is not a Permanent File Store
+
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/corruptedsis.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/corruptedsis.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,2 +1,2 @@
-compression fault, inflation
-
+compression fault, inflation
+
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/devcerts.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/devcerts.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,42 +1,42 @@
-
-Executable : 
-
-!:\Documents\testarmv5\apparc.dll
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-CommDD
-PowerMgmt
-MultimediaDD
-ReadDeviceData
-WriteDeviceData
-DRM
-TrustedUI
-ProtServ
-DiskAdmin
-NetworkControl
-AllFiles
-SwEvent
-NetworkServices
-LocalServices
-ReadUserData
-WriteUserData
-Location
-SurroundingsDD
-UserEnvironment
-
-Executable : 
-
-!:\sys\bin\tswiallcapabilities.exe
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-ReadDeviceData
-WriteDeviceData
-ReadUserData
-WriteUserData
-
+
+Executable : 
+
+!:\Documents\testarmv5\apparc.dll
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+CommDD
+PowerMgmt
+MultimediaDD
+ReadDeviceData
+WriteDeviceData
+DRM
+TrustedUI
+ProtServ
+DiskAdmin
+NetworkControl
+AllFiles
+SwEvent
+NetworkServices
+LocalServices
+ReadUserData
+WriteUserData
+Location
+SurroundingsDD
+UserEnvironment
+
+Executable : 
+
+!:\sys\bin\tswiallcapabilities.exe
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+ReadDeviceData
+WriteDeviceData
+ReadUserData
+WriteUserData
+
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_missingcaps.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_missingcaps.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,40 +1,40 @@
-Executable : 
-
-!:\Documents\testarmv5\apparc.dll
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-CommDD
-PowerMgmt
-MultimediaDD
-ReadDeviceData
-WriteDeviceData
-DRM
-TrustedUI
-ProtServ
-DiskAdmin
-NetworkControl
-AllFiles
-SwEvent
-NetworkServices
-LocalServices
-ReadUserData
-WriteUserData
-SurroundingsDD
-UserEnvironment
-
-Executable : 
-
-!:\sys\bin\tswiallcapabilities.exe
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-ReadDeviceData
-WriteDeviceData
-ReadUserData
-WriteUserData
-
+Executable : 
+
+!:\Documents\testarmv5\apparc.dll
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+CommDD
+PowerMgmt
+MultimediaDD
+ReadDeviceData
+WriteDeviceData
+DRM
+TrustedUI
+ProtServ
+DiskAdmin
+NetworkControl
+AllFiles
+SwEvent
+NetworkServices
+LocalServices
+ReadUserData
+WriteUserData
+SurroundingsDD
+UserEnvironment
+
+Executable : 
+
+!:\sys\bin\tswiallcapabilities.exe
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+ReadDeviceData
+WriteDeviceData
+ReadUserData
+WriteUserData
+
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_nomissingcaps.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_nomissingcaps.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,41 +1,41 @@
-Executable : 
-
-!:\Documents\testarmv5\apparc.dll
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-CommDD
-PowerMgmt
-MultimediaDD
-ReadDeviceData
-WriteDeviceData
-DRM
-TrustedUI
-ProtServ
-DiskAdmin
-NetworkControl
-AllFiles
-SwEvent
-NetworkServices
-LocalServices
-ReadUserData
-WriteUserData
-Location
-SurroundingsDD
-UserEnvironment
-
-Executable : 
-
-!:\sys\bin\tswiallcapabilities.exe
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-ReadDeviceData
-WriteDeviceData
-ReadUserData
-WriteUserData
-
+Executable : 
+
+!:\Documents\testarmv5\apparc.dll
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+CommDD
+PowerMgmt
+MultimediaDD
+ReadDeviceData
+WriteDeviceData
+DRM
+TrustedUI
+ProtServ
+DiskAdmin
+NetworkControl
+AllFiles
+SwEvent
+NetworkServices
+LocalServices
+ReadUserData
+WriteUserData
+Location
+SurroundingsDD
+UserEnvironment
+
+Executable : 
+
+!:\sys\bin\tswiallcapabilities.exe
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+ReadDeviceData
+WriteDeviceData
+ReadUserData
+WriteUserData
+
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_usercaps1.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/multichain_usercaps1.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,31 +1,31 @@
-Executable : 
-
-!:\Documents\testarmv5\apparc.dll
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-CommDD
-PowerMgmt
-MultimediaDD
-DRM
-TrustedUI
-ProtServ
-DiskAdmin
-NetworkControl
-AllFiles
-SwEvent
-NetworkServices
-LocalServices
-Location
-SurroundingsDD
-UserEnvironment
-
-Executable : 
-
-!:\sys\bin\tswiallcapabilities.exe
-
-FILE STATUS : Capabilities are satisfied by Signing Certificates .
-		 in conjunction with User Capabilities
-
+Executable : 
+
+!:\Documents\testarmv5\apparc.dll
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+CommDD
+PowerMgmt
+MultimediaDD
+DRM
+TrustedUI
+ProtServ
+DiskAdmin
+NetworkControl
+AllFiles
+SwEvent
+NetworkServices
+LocalServices
+Location
+SurroundingsDD
+UserEnvironment
+
+Executable : 
+
+!:\sys\bin\tswiallcapabilities.exe
+
+FILE STATUS : Capabilities are satisfied by Signing Certificates .
+		 in conjunction with User Capabilities
+
--- a/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/unsignedsis.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output/unsignedsis.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,43 +1,43 @@
-SIS File is Unsigned.
-
-Executable : 
-
-!:\Documents\testarmv5\apparc.dll
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-CommDD
-PowerMgmt
-MultimediaDD
-ReadDeviceData
-WriteDeviceData
-DRM
-TrustedUI
-ProtServ
-DiskAdmin
-NetworkControl
-AllFiles
-SwEvent
-NetworkServices
-LocalServices
-ReadUserData
-WriteUserData
-Location
-SurroundingsDD
-UserEnvironment
-
-Executable : 
-
-!:\sys\bin\tswiallcapabilities.exe
-
-FILE STATUS : Capabilities are not satisfied .
-
-Missing Capabilities List :
-
-ReadDeviceData
-WriteDeviceData
-ReadUserData
-WriteUserData
-
+SIS File is Unsigned.
+
+Executable : 
+
+!:\Documents\testarmv5\apparc.dll
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+CommDD
+PowerMgmt
+MultimediaDD
+ReadDeviceData
+WriteDeviceData
+DRM
+TrustedUI
+ProtServ
+DiskAdmin
+NetworkControl
+AllFiles
+SwEvent
+NetworkServices
+LocalServices
+ReadUserData
+WriteUserData
+Location
+SurroundingsDD
+UserEnvironment
+
+Executable : 
+
+!:\sys\bin\tswiallcapabilities.exe
+
+FILE STATUS : Capabilities are not satisfied .
+
+Missing Capabilities List :
+
+ReadDeviceData
+WriteDeviceData
+ReadUserData
+WriteUserData
+
--- a/secureswitools/swisistools/test/tdumpsis/package/exetest.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swisistools/test/tdumpsis/package/exetest.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,57 +1,57 @@
-
-File1:!:\Documents\testarmv5\apparc.dll
-	CommDD
-	PowerMgmt
-	MultimediaDD
-	ReadDeviceData
-	WriteDeviceData
-	DRM
-	TrustedUI
-	ProtServ
-	DiskAdmin
-	NetworkControl
-	AllFiles
-	SwEvent
-	NetworkServices
-	LocalServices
-	ReadUserData
-	WriteUserData
-	Location
-	SurroundingsDD
-	UserEnvironment
-
-File2:!:\sys\bin\tswiallcapabilities.exe
-	ReadDeviceData
-	WriteDeviceData
-	ReadUserData
-	WriteUserData
-
-File3:!:\sys\bin\dummy.exe
-	CommDD
-	PowerMgmt
-	MultimediaDD
-	ReadDeviceData
-	WriteDeviceData
-	DRM
-	TrustedUI
-	ProtServ
-	DiskAdmin
-	NetworkControl
-	AllFiles
-	SwEvent
-	NetworkServices
-	LocalServices
-	ReadUserData
-	WriteUserData
-	Location
-	SurroundingsDD
-	UserEnvironment
-
-Executable1: capabilities matched with the SIS file header capabilities
-
-
-Executable2: capabilities matched with the SIS file header capabilities
-
-
-Executable3: capabilities matched with the SIS file header capabilities
-
+
+File1:!:\Documents\testarmv5\apparc.dll
+	CommDD
+	PowerMgmt
+	MultimediaDD
+	ReadDeviceData
+	WriteDeviceData
+	DRM
+	TrustedUI
+	ProtServ
+	DiskAdmin
+	NetworkControl
+	AllFiles
+	SwEvent
+	NetworkServices
+	LocalServices
+	ReadUserData
+	WriteUserData
+	Location
+	SurroundingsDD
+	UserEnvironment
+
+File2:!:\sys\bin\tswiallcapabilities.exe
+	ReadDeviceData
+	WriteDeviceData
+	ReadUserData
+	WriteUserData
+
+File3:!:\sys\bin\dummy.exe
+	CommDD
+	PowerMgmt
+	MultimediaDD
+	ReadDeviceData
+	WriteDeviceData
+	DRM
+	TrustedUI
+	ProtServ
+	DiskAdmin
+	NetworkControl
+	AllFiles
+	SwEvent
+	NetworkServices
+	LocalServices
+	ReadUserData
+	WriteUserData
+	Location
+	SurroundingsDD
+	UserEnvironment
+
+Executable1: capabilities matched with the SIS file header capabilities
+
+
+Executable2: capabilities matched with the SIS file header capabilities
+
+
+Executable3: capabilities matched with the SIS file header capabilities
+
Binary file secureswitools/swisistools/test/tinterpretsisinteg/data/Hello_sis.sis has changed
Binary file secureswitools/swisistools/test/tinterpretsisinteg/data/hello_sis.sis has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/data/regfiles/tstapp.CPP	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,25 @@
+// Copyright (c) 2005-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 <e32std.h>
+
+GLDEF_C TInt E32Main()
+/**
+   EXE Entry Point
+   @return - Standard Epoc error code on exit
+ */
+	{
+	return KErrNone;
+	}
--- a/secureswitools/swisistools/test/tinterpretsisinteg/data/regfiles/tstapp.cpp	Fri Jun 11 13:45:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-// Copyright (c) 2005-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 <e32std.h>
-
-GLDEF_C TInt E32Main()
-/**
-   EXE Entry Point
-   @return - Standard Epoc error code on exit
- */
-	{
-	return KErrNone;
-	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/testdatac003/haltest.pkg.bak	Thu Jun 24 12:37:54 2010 +0300
@@ -0,0 +1,20 @@
+;To test the HAL conditionals
+;Languages
+&EN
+
+;Header
+#{"HAL-conditionals-CPU"}, (0x89334308), 1, 0, 0
+
+%{"Vendor"}
+:"Vendor"
+
+
+IF  CPU=0 
+"data\cpu.txt"-"c:\cpu.txt"
+ELSEIF CPU=1 
+"data\mcore.txt"-"c:\mcore.txt"
+ELSE   
+"data\Nocpu.txt"-"", FILETEXT, TEXTEXIT
+ENDIF
+
+
--- a/secureswitools/swisistools/test/tinterpretsisinteg/testdataf006/privatefolderdef.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/testdataf006/privatefolderdef.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,56 +1,56 @@
-;
-; 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 the License "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:
-;
-
-&EN
-
-
-
-; Languages
-
-; none -  English only by default
-
-
-; Installation header
-
-; Only one component name as we only support English
-
-
-
-#{"PanoMan"}, (0x89334332), 1, 2, 2, TYPE=SA
-
-%{"bit-side GmbH"}:"bit-side GmbH"
-
-
-
-"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\errortool.exe"-"!:\sys\bin\errortool.exe";
-
-"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\install1.txt"-"!:\private\0c16a6fa\ownfolder.txt";
-
-
-
-
-
-
-
-; Required files
-
-; None
-
-
-
-; Component .sis files
-
+;
+; 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 the License "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:
+;
+
+&EN
+
+
+
+; Languages
+
+; none -  English only by default
+
+
+; Installation header
+
+; Only one component name as we only support English
+
+
+
+#{"PanoMan"}, (0x89334332), 1, 2, 2, TYPE=SA
+
+%{"bit-side GmbH"}:"bit-side GmbH"
+
+
+
+"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\errortool.exe"-"!:\sys\bin\errortool.exe";
+
+"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\install1.txt"-"!:\private\0c16a6fa\ownfolder.txt";
+
+
+
+
+
+
+
+; Required files
+
+; None
+
+
+
+; Component .sis files
+
 ; None
\ No newline at end of file
--- a/secureswitools/swisistools/test/tinterpretsisinteg/testdatainc124436/inc124436.pkg	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swisistools/test/tinterpretsisinteg/testdatainc124436/inc124436.pkg	Thu Jun 24 12:37:54 2010 +0300
@@ -1,53 +1,53 @@
-;
-; 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 the License "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:
-;
-
-; File to check INC124436
-
-;Languages
-
-&EN
-
-;
-
-;Header
-
-#{"Unicode filenames"}, (0x81111105), 1, 2, 3, TYPE=SA
-
-
-
-%{"Vendor"}
-
-:"Unique Vendor Name"
-
-; for the PREQ1230
-
-
-
-"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\testresult1.dat"-"", FT, TE
-
-"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\testresult1.dat"-"C:\private\81111105\import\12Schozka.amr"
-
-
-
-; Required files
-
-; None
-
-
-
-; Component .sis files
-
+;
+; 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 the License "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:
+;
+
+; File to check INC124436
+
+;Languages
+
+&EN
+
+;
+
+;Header
+
+#{"Unicode filenames"}, (0x81111105), 1, 2, 3, TYPE=SA
+
+
+
+%{"Vendor"}
+
+:"Unique Vendor Name"
+
+; for the PREQ1230
+
+
+
+"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\testresult1.dat"-"", FT, TE
+
+"\epoc32\winscw\c\tswi\tinterpretsisinteg\data\testresult1.dat"-"C:\private\81111105\import\12Schozka.amr"
+
+
+
+; Required files
+
+; None
+
+
+
+; Component .sis files
+
 ; None
\ No newline at end of file
--- a/secureswitools/swisistools/test/tsignsis/data/emptylinescertandkey.out	Fri Jun 11 13:45:18 2010 +0300
+++ b/secureswitools/swisistools/test/tsignsis/data/emptylinescertandkey.out	Thu Jun 24 12:37:54 2010 +0300
@@ -1,83 +1,83 @@
-
-Primary:
-
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number: 2 (0x2)
-        Signature Algorithm: md5WithRSAEncryption
-        Issuer: O=Symbian Software Ltd, CN=Root5-RSA
-        Validity
-            Not Before: Mar  3 16:34:45 2004 GMT
-            Not After : Mar  1 16:34:45 2014 GMT
-        Subject: O=Symbian Software Ltd, CN=Good-R5
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:d6:5d:a1:96:59:9f:1c:b8:3d:78:c5:34:f0:c0:
-                    e2:74:33:27:b4:de:68:f1:aa:2c:9b:e4:71:11:8b:
-                    f0:61:b5:22:45:9a:c8:7d:80:2e:6b:b5:ff:2f:64:
-                    ce:e6:de:65:ec:43:8b:1c:9c:61:63:2d:17:97:ed:
-                    a6:48:5d:02:5f:ae:b8:45:29:99:90:0b:14:d6:4d:
-                    55:11:36:59:41:c6:c0:b2:38:6f:22:b8:71:17:a6:
-                    93:28:34:9a:96:88:d4:38:fb:47:29:19:94:38:b5:
-                    1b:af:2e:64:fc:18:ab:d3:f4:cf:0d:68:2c:c7:47:
-                    a0:1a:57:a0:a5:18:29:7c:05
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Extended Key Usage: 
-            Code Signing
-            X509v3 Certificate Policies: 
-            Policy: 1.2.826.0.1.1796587.1
-
-    Signature Algorithm: md5WithRSAEncryption
-        27:e6:f5:a6:55:4b:d0:89:28:a7:08:c6:a9:b2:86:73:a1:34:
-        31:e1:90:ef:fa:73:4a:53:33:72:14:2b:44:19:49:2a:13:f6:
-        00:fd:f8:c5:5f:c7:62:17:e3:7f:a4:fd:e3:ee:e3:11:de:49:
-        8f:fb:70:95:ee:5a:05:96:ee:75:4a:c2:4f:dd:6b:de:a1:45:
-        c4:cf:33:58:a7:ea:f6:f4:dd:ae:4e:0a:c9:c2:ed:6f:5c:23:
-        ae:44:0b:65:af:c4:8e:e1:b6:78:9c:62:0d:d7:64:21:38:d8:
-        91:f1:d0:e7:ca:62:b5:1f:12:69:00:4f:bc:6a:50:db:d6:df:
-        56:fb
-
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number: 0 (0x0)
-        Signature Algorithm: md5WithRSAEncryption
-        Issuer: O=Symbian Software Ltd, CN=Root5-RSA
-        Validity
-            Not Before: Mar  3 16:34:42 2004 GMT
-            Not After : Mar  1 16:34:42 2014 GMT
-        Subject: O=Symbian Software Ltd, CN=Root5-RSA
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:b9:f5:79:cd:1b:e0:47:fa:21:cd:f6:fc:02:2c:
-                    db:2d:e3:f1:2b:b4:1f:04:eb:93:b7:0c:bb:d3:f8:
-                    9f:64:23:f9:69:93:2b:8b:a0:e0:39:b6:0c:27:08:
-                    78:94:28:50:f9:49:d0:80:c5:fd:b1:13:f5:91:66:
-                    7a:50:46:eb:86:6e:e8:53:3e:e4:78:8e:b0:bb:89:
-                    b8:9b:26:26:32:36:37:9d:cf:bb:4f:fb:2d:77:ea:
-                    3f:57:3b:7f:6d:2c:8b:35:8a:40:a9:45:b9:d2:0e:
-                    3a:48:bd:65:a1:ff:1f:5c:a1:a4:a8:54:47:e3:67:
-                    33:78:c5:30:aa:71:1f:7d:1b
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Key Usage: critical
-            Certificate Sign
-            X509v3 Basic Constraints: critical
-            CA:TRUE, pathlen:5
-            X509v3 Subject Key Identifier: 
-            7C:E3:06:29:51:16:20:72:14:D4:25:AF:FD:18:5B:6D:5E:48:AF:6F
-    Signature Algorithm: md5WithRSAEncryption
-        21:2f:d6:cd:37:f5:80:4d:7d:59:ff:77:16:66:fb:55:c3:2e:
-        6a:e6:e8:e7:f9:a7:74:a3:07:3f:78:a2:c2:d5:f9:c3:6c:75:
-        d3:f9:5b:e8:e6:76:d1:0b:da:ef:b1:df:77:e8:18:53:ce:90:
-        3c:85:16:72:16:82:41:55:7c:02:8a:08:7e:f4:2b:69:62:25:
-        60:d2:e4:3f:a6:bb:7d:b3:53:c2:9c:fc:91:74:9a:eb:2f:29:
-        9f:c4:6e:e7:5d:25:2f:b1:ee:de:e4:06:5e:1f:16:0a:f5:d3:
-        f0:0e:f1:83:a0:0f:50:15:e7:96:7d:06:37:f5:95:34:c7:64:
-        c7:17
+
+Primary:
+
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Root5-RSA
+        Validity
+            Not Before: Mar  3 16:34:45 2004 GMT
+            Not After : Mar  1 16:34:45 2014 GMT
+        Subject: O=Symbian Software Ltd, CN=Good-R5
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (1024 bit)
+                Modulus (1024 bit):
+                    00:d6:5d:a1:96:59:9f:1c:b8:3d:78:c5:34:f0:c0:
+                    e2:74:33:27:b4:de:68:f1:aa:2c:9b:e4:71:11:8b:
+                    f0:61:b5:22:45:9a:c8:7d:80:2e:6b:b5:ff:2f:64:
+                    ce:e6:de:65:ec:43:8b:1c:9c:61:63:2d:17:97:ed:
+                    a6:48:5d:02:5f:ae:b8:45:29:99:90:0b:14:d6:4d:
+                    55:11:36:59:41:c6:c0:b2:38:6f:22:b8:71:17:a6:
+                    93:28:34:9a:96:88:d4:38:fb:47:29:19:94:38:b5:
+                    1b:af:2e:64:fc:18:ab:d3:f4:cf:0d:68:2c:c7:47:
+                    a0:1a:57:a0:a5:18:29:7c:05
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Extended Key Usage: 
+            Code Signing
+            X509v3 Certificate Policies: 
+            Policy: 1.2.826.0.1.1796587.1
+
+    Signature Algorithm: md5WithRSAEncryption
+        27:e6:f5:a6:55:4b:d0:89:28:a7:08:c6:a9:b2:86:73:a1:34:
+        31:e1:90:ef:fa:73:4a:53:33:72:14:2b:44:19:49:2a:13:f6:
+        00:fd:f8:c5:5f:c7:62:17:e3:7f:a4:fd:e3:ee:e3:11:de:49:
+        8f:fb:70:95:ee:5a:05:96:ee:75:4a:c2:4f:dd:6b:de:a1:45:
+        c4:cf:33:58:a7:ea:f6:f4:dd:ae:4e:0a:c9:c2:ed:6f:5c:23:
+        ae:44:0b:65:af:c4:8e:e1:b6:78:9c:62:0d:d7:64:21:38:d8:
+        91:f1:d0:e7:ca:62:b5:1f:12:69:00:4f:bc:6a:50:db:d6:df:
+        56:fb
+
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 0 (0x0)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: O=Symbian Software Ltd, CN=Root5-RSA
+        Validity
+            Not Before: Mar  3 16:34:42 2004 GMT
+            Not After : Mar  1 16:34:42 2014 GMT
+        Subject: O=Symbian Software Ltd, CN=Root5-RSA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (1024 bit)
+                Modulus (1024 bit):
+                    00:b9:f5:79:cd:1b:e0:47:fa:21:cd:f6:fc:02:2c:
+                    db:2d:e3:f1:2b:b4:1f:04:eb:93:b7:0c:bb:d3:f8:
+                    9f:64:23:f9:69:93:2b:8b:a0:e0:39:b6:0c:27:08:
+                    78:94:28:50:f9:49:d0:80:c5:fd:b1:13:f5:91:66:
+                    7a:50:46:eb:86:6e:e8:53:3e:e4:78:8e:b0:bb:89:
+                    b8:9b:26:26:32:36:37:9d:cf:bb:4f:fb:2d:77:ea:
+                    3f:57:3b:7f:6d:2c:8b:35:8a:40:a9:45:b9:d2:0e:
+                    3a:48:bd:65:a1:ff:1f:5c:a1:a4:a8:54:47:e3:67:
+                    33:78:c5:30:aa:71:1f:7d:1b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+            Certificate Sign
+            X509v3 Basic Constraints: critical
+            CA:TRUE, pathlen:5
+            X509v3 Subject Key Identifier: 
+            7C:E3:06:29:51:16:20:72:14:D4:25:AF:FD:18:5B:6D:5E:48:AF:6F
+    Signature Algorithm: md5WithRSAEncryption
+        21:2f:d6:cd:37:f5:80:4d:7d:59:ff:77:16:66:fb:55:c3:2e:
+        6a:e6:e8:e7:f9:a7:74:a3:07:3f:78:a2:c2:d5:f9:c3:6c:75:
+        d3:f9:5b:e8:e6:76:d1:0b:da:ef:b1:df:77:e8:18:53:ce:90:
+        3c:85:16:72:16:82:41:55:7c:02:8a:08:7e:f4:2b:69:62:25:
+        60:d2:e4:3f:a6:bb:7d:b3:53:c2:9c:fc:91:74:9a:eb:2f:29:
+        9f:c4:6e:e7:5d:25:2f:b1:ee:de:e4:06:5e:1f:16:0a:f5:d3:
+        f0:0e:f1:83:a0:0f:50:15:e7:96:7d:06:37:f5:95:34:c7:64:
+        c7:17