diff -r 7333d7932ef7 -r 8b7f4e561641 appinstaller/AppinstUi/Daemon/Src/silentuninstaller.cpp --- a/appinstaller/AppinstUi/Daemon/Src/silentuninstaller.cpp Tue Aug 31 15:21:33 2010 +0300 +++ b/appinstaller/AppinstUi/Daemon/Src/silentuninstaller.cpp Wed Sep 01 12:22:02 2010 +0100 @@ -17,9 +17,8 @@ // INCLUDE FILES #include "silentuninstaller.h" +#include "SWInstDebug.h" #include "SWInstDefs.h" -#include "SWInstDebug.h" - using namespace Swi; @@ -41,13 +40,12 @@ // void CSilentUninstaller::ConstructL() { - iConnected = EFalse; - iSifOptions = Usif::COpaqueNamedParams::NewL(); - iSifResults = Usif::COpaqueNamedParams::NewL(); - // Set parameters for silent uninstall. - iSifOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue ); - iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, ETrue ); - iSifOptions->AddIntL( Usif::KSifInParam_AllowAppBreakDependency, EFalse ); + // Silently kill the app. if needed. + FLOG(_L("[CSilentUninstaller] iKillApp = SwiUI::EPolicyAllowed;")); + iOptions.iKillApp = SwiUI::EPolicyAllowed; + FLOG(_L("[CSilentUninstaller] iBreakDependency = SwiUI::EPolicyNotAllowed")); + iOptions.iBreakDependency = SwiUI::EPolicyNotAllowed; + iOptionsPckg = iOptions; } @@ -72,15 +70,7 @@ CSilentUninstaller::~CSilentUninstaller() { FLOG( _L("[CSilentUninstaller] ~CSilentUninstaller") ); - - delete iSifOptions; - delete iSifResults; - - if ( iConnected ) - { - iSWInstallerFW.Close(); - iRegistrySession.Close(); - } + iLauncher.Close(); } @@ -91,35 +81,17 @@ void CSilentUninstaller::UninstallL( TUid& aUid, TRequestStatus& aReqStatus, - TDesC& aMIME ) + TDesC8& aMIME ) { - FLOG_1( _L("Daemon: UninstallL: UID = 0x%x"), aUid.iUid ); - if ( !iConnected ) - { - FLOG( _L("[CSilentUninstaller] Connect to sif installer server") ); - User::LeaveIfError( iSWInstallerFW.Connect() ); - FLOG( _L("[CSilentUninstaller] Connect to SisRegistery") ); - User::LeaveIfError( iRegistrySession.Connect() ); - iConnected = ETrue; - } - - // Set MIME type. - iSifOptions->AddStringL( Usif::KSifInParam_MimeType, aMIME ); - - // Usif need the component ID, so we need to map the package UID to - // component ID. To do this simple we need SisRegistry. - Usif::TComponentId componentId; - componentId = iRegistrySession.GetComponentIdForUidL( aUid ); - FLOG_1( _L("Daemon: UninstallL: ComponentId = %d"), componentId ); - + { + FLOG( _L("[CSilentUninstaller] Connect to server") ); + User::LeaveIfError( iLauncher.Connect() ); + iConnected = ETrue; + } // Launch the installation - FLOG( _L("[CSilentUninstaller] Launch uninstall") ); - iSWInstallerFW.Uninstall( componentId, - *iSifOptions, - *iSifResults, - aReqStatus, - ETrue ); + FLOG( _L("[CSilentUninstaller] Launch uninstall") ); + iLauncher.SilentUninstall( aReqStatus, aUid, iOptionsPckg, aMIME ); } @@ -129,8 +101,8 @@ // void CSilentUninstaller::Cancel() { - FLOG( _L("[CSilentUninstaller] Cancel silet uninstall") ); - iSWInstallerFW.CancelOperation(); + FLOG( _L("[CSilentUninstaller] Cancel silet uninstall") ); + iLauncher.CancelAsyncRequest( SwiUI::ERequestSilentUninstall ); } // End of File