--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,175 @@
+/*
+* 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: Handles the launching of silent installation.
+*
+*/
+
+
+
+#include "iaupdatersilentlauncher.h"
+#include "SWInstDefs.h"
+#include "iaupdaterdefs.h"
+#include "iaupdatedebug.h"
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+
+// -----------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::CIAUpdaterSilentLauncher
+// C++ default constructor
+// -----------------------------------------------------------------------------
+//
+CIAUpdaterSilentLauncher::CIAUpdaterSilentLauncher( RFs& aFs ): iFs( aFs )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CIAUpdaterSilentLauncher::ConstructL()
+ {
+ iOptionsPckg = SilentInstallOptionsL();
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CIAUpdaterSilentLauncher* CIAUpdaterSilentLauncher::NewL( RFs& aFs )
+ {
+ CIAUpdaterSilentLauncher* self = new( ELeave ) CIAUpdaterSilentLauncher( aFs );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::~CIAUpdaterSilentLauncher
+// C++ Destructor
+// -----------------------------------------------------------------------------
+//
+CIAUpdaterSilentLauncher::~CIAUpdaterSilentLauncher()
+ {
+ iLauncher.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::InstallL
+// Perform installation.
+// -----------------------------------------------------------------------------
+//
+void CIAUpdaterSilentLauncher::InstallL( const TDesC& aFile, TRequestStatus& aStatus )
+ {
+ IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::InstallL() begin");
+
+ if ( !iConnected )
+ {
+ IAUPDATE_TRACE("[IAUpdater] Connect to launcher");
+ User::LeaveIfError( iLauncher.Connect() );
+ iConnected = ETrue;
+ }
+
+ // Launch the installation
+ IAUPDATE_TRACE("[IAUpdater] Launch silent install");
+ iLauncher.SilentInstall( aStatus, aFile, iOptionsPckg );
+
+ IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::InstallL() end");
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::Cancel
+// Cancel the current installation.
+// -----------------------------------------------------------------------------
+//
+void CIAUpdaterSilentLauncher::Cancel()
+ {
+ IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::Cancel() begin");
+
+ iLauncher.CancelAsyncRequest( SwiUI::ERequestSilentInstall );
+
+ IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::Cancel() end");
+ }
+
+
+// ---------------------------------------------------------------------------
+// CIAUpdaterSilentLauncher::SilentInstallOptionsL
+//
+// ---------------------------------------------------------------------------
+//
+SwiUI::TInstallOptions CIAUpdaterSilentLauncher::SilentInstallOptionsL() const
+ {
+ IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::SilentInstallOptionsL() begin");
+
+ SwiUI::TInstallOptions options;
+
+ // Upgrades are allowed
+ options.iUpgrade = SwiUI::EPolicyAllowed;
+
+ // Install all if optional packets exist.
+ options.iOptionalItems = SwiUI::EPolicyAllowed;
+
+ // Prevent online cert revocation check.
+ options.iOCSP = SwiUI::EPolicyNotAllowed;
+
+ // See iOCSP setting above
+ options.iIgnoreOCSPWarnings = SwiUI::EPolicyAllowed;
+
+ // 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;
+
+ // Automatically grant user capabilities.
+ // See also iUntrusted above.
+ options.iCapabilities = SwiUI::EPolicyAllowed;
+
+ // Open application will be closed.
+ options.iKillApp = SwiUI::EPolicyAllowed;
+
+ // Files can be overwritten.
+ options.iOverwrite = SwiUI::EPolicyAllowed;
+
+ // 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;
+
+ // Choose the phone language.
+ options.iLang = User::Language();
+
+ // If language is asked, then use the current phone language.
+ options.iUsePhoneLang = ETrue;
+
+ // Does not affect SISX. This is for Java.
+ options.iUpgradeData = SwiUI::EPolicyAllowed;
+
+ IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::SilentInstallOptionsL() end");
+
+ return options;
+ }
+
+
+// ======== GLOBAL FUNCTIONS ========
+
+// EOF