iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp
changeset 0 ba25891c3a9e
child 25 7333d7932ef7
--- /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