smartinstaller/bootstrap/src/bootstrapstatemachine.cpp
author Santosh V Patil <santosh.v.patil@nokia.com>
Wed, 30 Jun 2010 11:01:26 +0530
branchADM
changeset 48 364021cecc90
permissions -rw-r--r--
SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     1
/*
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     8
*
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    11
*
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    12
* Contributors:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    13
*
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    14
* Description:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    15
*     CStateMachine class implementation.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    16
*
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    17
*
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    18
*/
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    19
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    20
#include <e32base.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    21
#include <aknappui.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    22
#include <swinstdefs.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    23
#include <swi/sisregistrysession.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    24
#include <swi/sisregistryentry.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    25
#include <httpdownloadmgrcommon.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    26
#include <coeutils.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    27
#include <SenDomFragment.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    28
#include <SenXmlReader.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    29
#include <SenElement.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    30
#include <centralrepository.h>      // CRepository
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    31
#include <browseruisdkcrkeys.h>     // KCRUidBrowser
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    32
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    33
#include <wlanerrorcodes.h> 		//For download error handling
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    34
#include <etelpckt.h>       		//For download error handling
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    35
#include <exterror.h>       		//For download error handling
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    36
#include <httpdownloadmgrcommon.h>	//For download error handling (not in S60 5.0 SDK)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    37
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    38
#include <es_enum.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    39
#include <rconnmon.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    40
#include <eikdef.h>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    41
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    42
#include "bootstrapstatemachine.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    43
#include "bootstrapappui.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    44
#include "bootstrapconst.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    45
#include "bootstrapinstallationobserver.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    46
#include "smartinstallerdll.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    47
#include "debug.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    48
#include "globals.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    49
#include "macros.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    50
#include "config.h"
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    51
#include "utils.h" // HideAppFromMenuL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    52
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    53
// ADM binary name
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    54
_LIT(KAdmExePath, "ADM.exe");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    55
_LIT(KDownloadFolder,"?:\\system\\adm\\");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    56
// Sis file extension
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    57
_LIT(KSisExtn,".SIS");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    58
_LIT(KSisxExtn,".SISX");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    59
// Xml file extension
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    60
_LIT(KXMLExtn,".XML");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    61
// Dep file extension
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    62
_LIT(KDepExtn,"_DEP");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    63
// ADM changes file name
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    64
_LIT(KAdmChangesFile, "adm_changes.xml");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    65
// Private folder of SWI Daemon
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    66
_LIT(KSWIDaemonPrivateFolder, "\\private\\10202dce\\");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    67
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    69
// CStateMachine::NewLC
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    70
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    71
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    72
CStateMachine* CStateMachine::NewLC(CBootstrapAppUi& aSIUiObj, TUint32 aWrapperUid)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    73
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    74
	CStateMachine* object = new ( ELeave ) CStateMachine(aSIUiObj, aWrapperUid);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    75
	CleanupStack::PushL( object );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    76
	object->ConstructL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    77
	return object;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    78
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    79
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    80
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    81
// CStateMachine::NewL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    82
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    83
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    84
CStateMachine* CStateMachine::NewL(CBootstrapAppUi& aSIUiObj, TUint32 aWrapperUid)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    85
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    86
	CStateMachine* object = CStateMachine::NewLC(aSIUiObj, aWrapperUid);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    87
	CleanupStack::Pop();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    88
	return object;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    89
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    90
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    91
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    92
// CStateMachine::CStateMachine
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    93
// C++ default constructor.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    94
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    95
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    96
CStateMachine::CStateMachine(CBootstrapAppUi& aBsAppUiObj, TUint32 aWrapperUid) :
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    97
							CActive(CActive::EPriorityStandard),
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    98
							iAppUi(aBsAppUiObj),
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
    99
							iWrapperPackageUid(aWrapperUid),
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   100
							iAdmChangesInfo(),
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   101
							iBootstrapFailed(EFalse)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   102
#ifdef USE_LOGFILE
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   103
							, iLog(aBsAppUiObj.iLog)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   104
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   105
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   106
	CActiveScheduler::Add(this);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   107
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   108
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   110
// CStateMachine::ConstructL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   111
// 2nd phase constructor.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   112
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   113
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   114
void CStateMachine::ConstructL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   115
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   116
	// Connect to the Download Manager
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   117
	TBool masterInstance(!(iAppUi.EikonEnv()->StartedAsServerApp()));
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   118
	iDownloadManager.ConnectL( KUidBootstrapApp, *this, masterInstance );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   119
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   120
	User::LeaveIfError(iLauncher.Connect());
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   121
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   122
	iIsAdmInstalled = IsPackagePresentL(KUidAdm, iAdmInstalledVersion);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   123
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   124
	ReadConfigurationL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   125
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   126
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   127
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   128
// CStateMachine::~CStateMachine
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   129
// Virtual Destructor.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   131
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   132
CStateMachine::~CStateMachine()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   133
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   134
	LOG( "~StateMachine()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   135
	Cancel();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   136
	DELETE_IF_NONNULL( iDepFilename );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   137
	DELETE_IF_NONNULL( iSisFilename );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   138
	DELETE_IF_NONNULL( iDownloadUrl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   139
	delete iInstallObsrv;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   140
	delete iConfigUrl;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   141
	delete iUrl;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   142
	delete iDownloadFileName;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   143
	iIapArray.Close();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   144
	iDownloadManager.DeleteAll();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   145
	iDownloadManager.Close();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   146
	iLauncher.Close();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   147
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   148
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   149
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   150
// CStateMachine::RunL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   151
// Called for each state transition
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   152
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   153
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   154
void CStateMachine::RunL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   155
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   156
	switch (iAppState)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   157
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   158
		case EBSStateInit:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   159
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   160
			StateInitL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   161
			RequestState(EBSStateDownloadChanges);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   162
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   163
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   164
		case EBSStateDownloadChanges:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   165
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   166
			StateDownloadL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   167
			// No need to request a state change. HandleDMgrEventL() will
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   168
			// trigger a correct event after the download has completed.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   169
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   170
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   171
		case EBSStateParseChanges:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   172
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   173
			StateParseChangesL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   174
			if( IsAdmDownloadRequired() )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   175
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   176
				RequestState(EBSStateDownloadAdm);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   177
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   178
			else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   179
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   180
				RequestState(EBSStateLaunchAdm);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   181
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   182
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   183
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   184
		case EBSStateDownloadAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   185
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   186
			StateDownloadL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   187
			// No need to request a state change. HandleDMgrEventL() will
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   188
			// trigger a correct event after the download has completed.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   189
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   190
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   191
		case EBSStateInstallAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   192
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   193
			StateInstallAdmL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   194
			// No need to request a state change. HandleInstallCompleteL() will
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   195
			// trigger a correct event after the installation has completed.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   196
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   197
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   198
		case EBSStateLaunchAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   199
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   200
			StateLaunchAdmL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   201
			RequestState(EBSStateExit);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   202
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   203
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   204
		case EBSStateExit:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   205
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   206
			// Exit the application
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   207
			Cancel();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   208
			iAppUi.ExitApp(iAppState);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   209
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   210
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   211
		case EBSStateExitWithError:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   212
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   213
			Cancel();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   214
			//Error Id needs to be already set before the state transition.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   215
			iAppUi.ExitApp(iAppState);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   216
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   217
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   218
		default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   219
			LOG2( "Ignoring state change %d", iAppState );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   220
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   221
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   222
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   223
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   224
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   225
// CStateMachine::StateComplete
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   226
// Trigger the state transition.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   227
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   228
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   229
void CStateMachine::RequestState(const EBSAppState aNextState)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   230
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   231
	LOG3( "+ RequestState(): %d->%d", iAppState, aNextState );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   232
	iAppState = aNextState;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   233
	iStatus = KRequestPending;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   234
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   235
	if( !IsActive() )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   236
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   237
		SetActive();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   238
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   239
	TRequestStatus* status = &iStatus;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   240
	User::RequestComplete( status, KErrNone );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   241
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   242
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   243
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   244
// CStateMachine::RunError
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   245
// Call Handlefailure incase of error.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   246
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   247
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   248
TInt CStateMachine::RunError(TInt aError)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   249
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   250
	LOG2( "+ CStateMachine::RunError(%d)", aError );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   251
	if ( aError != KLeaveExit )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   252
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   253
		HandleFailure();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   254
		return KErrNone;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   255
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   256
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   257
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   258
		return KLeaveExit;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   259
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   260
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   261
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   262
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   263
// CStateMachine::DoCancel
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   264
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   265
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   266
void CStateMachine::DoCancel()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   267
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   268
	LOG( "+ CStateMachine::DoCancel()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   269
	iLauncher.CancelAsyncRequest(SwiUI::ERequestSilentInstall);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   270
	iDownloadManager.DeleteAll();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   271
	LOG( "- CStateMachine::DoCancel()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   272
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   273
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   274
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   275
// CStateMachine::Start
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   276
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   277
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   278
void CStateMachine::Start()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   279
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   280
	SetActive();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   281
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   282
	// send signal that this request has completed
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   283
	TRequestStatus* status = &iStatus;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   284
	User::RequestComplete(status, KErrNone);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   285
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   286
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   287
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   288
// CStateMachine::Stop
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   289
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   290
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   291
void CStateMachine::Stop()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   292
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   293
	LOG( "+ CStateMachine::Stop()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   294
	Cancel();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   295
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   296
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   297
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   298
// CBootstrapAppUi::ReadConfigurationL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   299
// Leaves if runs out of memory
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   300
// Called from ConstructL in InitState
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   301
// @return KErrNone if configuration was read correctly, error code otherwise
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   302
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   303
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   304
TInt CStateMachine::ReadConfigurationL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   305
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   306
	LOG( "+ ReadConfiguration()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   307
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   308
	TFileName configFile;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   309
	RArray< TPtrC > lineBuffer;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   310
	RFs& rfs = CEikonEnv::Static()->FsSession();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   311
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   312
	// Find the configuration file from the private directory
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   313
	TInt ret = rfs.PrivatePath( configFile );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   314
	if ( ret == KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   315
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   316
		TBuf<2> appDrive;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   317
		// Insert the drive of the running application
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   318
		appDrive.Copy(iAppUi.Application()->AppFullName().Left(2));
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   319
		configFile.Insert( 0, appDrive );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   320
		// Append the configuration file name
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   321
		configFile.Append( KConfigFile );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   322
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   323
		LOG2( "configFile = %S", &configFile );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   324
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   325
		HBufC* buffer = ReadConfigFile( rfs, configFile, lineBuffer, ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   326
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   327
		if ( buffer && ret == KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   328
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   329
			// Get Url from the config file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   330
			TPtrC urlLine = GetConfigValue( KCfgTagUrl, lineBuffer, ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   331
			if ( ret == KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   332
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   333
				iConfigUrl = HBufC8::NewL( urlLine.Length() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   334
				iConfigUrl->Des().Copy(urlLine );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   335
				LOG8_2( "configUrl = %S", iConfigUrl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   336
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   337
			delete buffer;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   338
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   339
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   340
	if ( !iConfigUrl )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   341
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   342
		// Error occured while reading the configuration, use default URL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   343
		iConfigUrl = HBufC8::NewL( KDefaultDepServerUrl().Length() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   344
		*iConfigUrl = KDefaultDepServerUrl;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   345
		LOG8_2( "configUrl = %S (default)", iConfigUrl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   346
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   347
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   348
	lineBuffer.Close();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   349
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   350
	LOG2("-  ReadConfiguration(): %d", ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   351
	return ret;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   352
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   353
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   354
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   355
// CBootstrapAppUi::StateInitL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   356
// Enter in EBSStateSetup,
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   357
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   358
// Read the sis file name and dep file name, based on Bootstrap version
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   359
// Set the ADM changes file to download and the url to download from.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   360
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   361
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   362
void CStateMachine::StateInitL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   363
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   364
	LOG2( "+ SetFileNameInfo(): ver = %d", KBootstrapVersion );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   365
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   366
	if( ( KBootstrapVersion < 1 ) && ( KBootstrapVersion > 4 ) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   367
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   368
		// Unsupported Bootstrap version
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   369
		User::Leave( KErrNotSupported );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   370
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   371
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   372
	// Connect to SisRegistry to fetch Package info
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   373
	Swi::RSisRegistrySession registrySession;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   374
	User::LeaveIfError( registrySession.Connect() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   375
	CleanupClosePushL( registrySession );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   376
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   377
	Swi::RSisRegistryEntry entry;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   378
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   379
	// Open registry entry
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   380
	User::LeaveIfError( entry.Open( registrySession, TUid::Uid( iWrapperPackageUid ) ) );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   381
	CleanupClosePushL( entry );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   382
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   383
	RPointerArray<HBufC> packageFiles;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   384
	entry.FilesL( packageFiles );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   385
	const TInt filesCount( packageFiles.Count() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   386
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   387
	// look into the files installed as part of the package,
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   388
	// to find the dep file name and actuall application file name.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   389
	for ( TInt i=0; i<filesCount; i++ )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   390
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   391
		TParsePtrC parse( *packageFiles[i] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   392
		TPtrC orgExtn = parse.Ext();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   393
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   394
		if ( orgExtn.Length() == 0 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   395
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   396
			continue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   397
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   398
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   399
		HBufC* extn = orgExtn.AllocLC();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   400
		TPtr extnPtr = extn->Des();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   401
		extnPtr.UpperCase();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   402
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   403
		if ( KBootstrapVersion != 3 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   404
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   405
			if (( extnPtr.Compare(KSisExtn) == 0 ) || ( extnPtr.Compare(KSisxExtn) == 0 ) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   406
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   407
				TPtrC privatePath( KNullDesC );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   408
				const TInt KDriveLength = 2;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   409
				if ( ( packageFiles[i]->Length() ) > ( KSWIDaemonPrivateFolder().Length() + KDriveLength ) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   410
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   411
					privatePath.Set( packageFiles[i]->Des().Mid( KDriveLength ) );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   412
					privatePath.Set( privatePath.Left( KSWIDaemonPrivateFolder().Length() ) );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   413
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   414
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   415
				// Ignore if its a Stub Sis file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   416
				if ( privatePath.CompareF( KSWIDaemonPrivateFolder ) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   417
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   418
					if ( iSisFilename == NULL )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   419
						{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   420
						iSisFilename = packageFiles[i]->AllocL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   421
						LOG2( "Application sis '%S'", iSisFilename );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   422
						}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   423
					else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   424
						// More than one sis present in the Wrapper Pkg
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   425
						{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   426
						LOG2( "! More than one sis file present: '%S'. LEAVE.", packageFiles[i] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   427
						//TODO:GM: should there be a new error code for this??
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   428
						User::Leave( KErrNotSupported );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   429
						}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   430
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   431
				} // if sis extension
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   432
			} // if (KBoostraVersion != 3)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   433
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   434
		if ( KBootstrapVersion != 4 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   435
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   436
			if( extnPtr.Compare(KXMLExtn) == 0 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   437
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   438
				TPtrC orgName = parse.Name();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   439
				const TInt namelength = orgName.Length();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   440
				const TInt depSuffixlength = KDepExtn().Length();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   441
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   442
				if ( namelength > depSuffixlength )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   443
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   444
					TPtrC depSuffix = orgName.Mid( ( namelength-depSuffixlength ), depSuffixlength );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   445
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   446
					HBufC* name = depSuffix.AllocLC();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   447
					TPtr namePtr = name->Des();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   448
					namePtr.UpperCase();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   449
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   450
					if ( namePtr.Compare( KDepExtn ) == 0 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   451
						{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   452
						if ( iDepFilename == NULL )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   453
							{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   454
							iDepFilename = packageFiles[i]->AllocL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   455
							LOG2( "Dep file name is '%S'", iDepFilename );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   456
							}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   457
						else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   458
							// More than one dep file present in the Wrapper Pkg
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   459
							{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   460
							LOG2( "! More than one dep file present: '%S'. LEAVE.", packageFiles[i] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   461
							//TODO:GM: should there be a new error code for this??
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   462
							User::Leave( KErrNotSupported );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   463
							}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   464
						}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   465
					CleanupStack::PopAndDestroy( name );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   466
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   467
				} // if XML extn
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   468
			} // if (KBoostrapVersion != 4)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   469
		CleanupStack::PopAndDestroy( extn );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   470
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   471
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   472
	packageFiles.ResetAndDestroy();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   473
	packageFiles.Close();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   474
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   475
	if (KBootstrapVersion != 3)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   476
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   477
		if ( iSisFilename == NULL )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   478
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   479
			User::Leave( KErrNotSupported );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   480
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   481
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   482
	if (KBootstrapVersion != 4)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   483
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   484
		if ( iDepFilename == NULL )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   485
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   486
			User::Leave( KErrNotSupported );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   487
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   488
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   489
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   490
	CleanupStack::PopAndDestroy(&entry);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   491
	CleanupStack::PopAndDestroy(&registrySession);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   492
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   493
	iFileName.Set(KAdmChangesFile);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   494
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   495
	// URL is already set
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   496
	DELETE_IF_NONNULL(iUrl);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   497
	iUrl = iConfigUrl->AllocL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   498
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   499
	LOG2( "Filename is '%S'",&iFileName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   500
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   501
#ifdef FEATURE_BOOTSTRAP_SETIAP
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   502
	SetAndValidateIAPL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   503
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   504
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   505
	LOG( "- SetFileNameInfo()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   506
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   507
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   508
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   509
// CStateMachine::::IsAdmDownloadRequired
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   510
// Enter after EBSStateParseChanges
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   511
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   512
// Verify whether ADM sis download is required. Based on this, the next state will be set.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   513
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   514
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   515
TBool CStateMachine::IsAdmDownloadRequired()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   516
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   517
	const TBool isAdmDownloadRequired =
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   518
			CompareVersions(iAdmInstalledVersion, iAdmChangesInfo.iVersion)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   519
				== EGreaterSecondVersion;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   520
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   521
	if ( isAdmDownloadRequired )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   522
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   523
		LOG7( "ADM update required (v%d.%02d.%d -> v%d.%02d.%d)",
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   524
			iAdmInstalledVersion.iMajor, iAdmInstalledVersion.iMinor, iAdmInstalledVersion.iBuild,
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   525
			iAdmChangesInfo.iVersion.iMajor, iAdmChangesInfo.iVersion.iMinor, iAdmChangesInfo.iVersion.iBuild
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   526
			);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   527
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   528
		iFileName.Set(*iAdmChangesInfo.iSisName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   529
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   530
		DELETE_IF_NONNULL(iUrl);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   531
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   532
		iUrl = iConfigUrl->AllocL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   533
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   534
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   535
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   536
		LOG4( "ADM is up-to-date (v%d.%02d.%d)",
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   537
			iAdmInstalledVersion.iMajor, iAdmInstalledVersion.iMinor, iAdmInstalledVersion.iBuild
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   538
			);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   539
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   540
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   541
	return isAdmDownloadRequired;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   542
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   543
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   544
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   545
// CStateMachine::::StateDownloadL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   546
// Enter in case EBSStateDownloadChanges, EBSStateDownloadAdm
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   547
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   548
// Download the specified file from the given url.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   549
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   550
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   551
void CStateMachine::StateDownloadL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   552
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   553
	LOG( "+ StateDownloadL()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   554
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   555
	// Create the full URL for download
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   556
	DELETE_IF_NONNULL( iDownloadUrl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   557
	// +1 for '/'
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   558
	iDownloadUrl = HBufC8::NewL(iUrl->Length() + iFileName.Length() + 1 );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   559
	TPtr8 ptr(iDownloadUrl->Des());
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   560
	ptr.Copy(*iUrl);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   561
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   562
	// Append forward slash if that's missing
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   563
	if (ptr.Right(1)[0] != '/')
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   564
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   565
		ptr.Append('/');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   566
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   567
	ptr.Append(iFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   568
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   569
	iDownloadError = EDlErrNoError;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   570
	iConnectionAttempt = 0;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   571
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   572
	// Set download file name along with path
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   573
	TChar systemDrive;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   574
	RFs::DriveToChar(RFs::GetSystemDrive(), systemDrive);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   575
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   576
	DELETE_IF_NONNULL( iDownloadFileName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   577
	iDownloadFileName = HBufC::NewL(KDownloadFolder().Length() + iFileName.Length());
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   578
	TPtr responseFilenamePtr = iDownloadFileName->Des();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   579
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   580
	responseFilenamePtr.Copy(KDownloadFolder);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   581
	responseFilenamePtr[0] = systemDrive;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   582
	responseFilenamePtr.Append(iFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   583
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   584
	// Create new download
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   585
	LOG2( "Downloading '%S'", iDownloadFileName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   586
	LOG8_2( "  from '%S'", iDownloadUrl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   587
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   588
	TBool isNewDl = ETrue, tried = EFalse;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   589
retry:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   590
	RHttpDownload& dl = iDownloadManager.CreateDownloadL( *iDownloadUrl, isNewDl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   591
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   592
	ConeUtils::EnsurePathExistsL(*iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   593
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   594
	if (isNewDl)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   595
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   596
		LOG2( "Receiving '%S'", iDownloadFileName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   597
		dl.SetStringAttribute( EDlAttrDestFilename, *iDownloadFileName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   598
		User::LeaveIfError( dl.Start() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   599
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   600
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   601
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   602
		LOG( "Dl exists." );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   603
		dl.Delete();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   604
		LOG( "Dl deleted." );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   605
		if (tried)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   606
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   607
			LOG( "Tried already, leaving" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   608
			User::Leave(KErrAlreadyExists);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   609
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   610
		else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   611
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   612
			tried = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   613
			goto retry;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   614
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   615
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   616
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   617
	LOG( "- Download()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   618
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   619
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   620
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   621
// CStateMachine::StateParseChangesL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   622
// Enter in case EBSStateParseChanges
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   623
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   624
// Parse the given changes file.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   625
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   626
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   627
void CStateMachine::StateParseChangesL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   628
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   629
	LOG2( "+ ParseFile('%S')", iDownloadFileName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   630
	User::LeaveIfNull(iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   631
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   632
	// Initialize the parser
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   633
	CSenXmlReader* XmlReader = CSenXmlReader::NewLC(EErrorOnUnrecognisedTags);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   634
	CSenDomFragment* DomFragment = CSenDomFragment::NewL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   635
	CleanupStack::PushL(DomFragment);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   636
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   637
	XmlReader->SetContentHandler(*DomFragment);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   638
	DomFragment->SetReader(*XmlReader);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   639
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   640
	// Parse the provided changes file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   641
	XmlReader->ParseL(CEikonEnv::Static()->FsSession(), *iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   642
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   643
	// Get package version
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   644
	CSenElement* packageElement;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   645
	packageElement = DomFragment->AsElement().Element(KFieldVersion);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   646
	if (packageElement == NULL)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   647
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   648
		User::Leave(EXmlErrorMissingVersion);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   649
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   650
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   651
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   652
		TPtrC8 versionPtr = packageElement->Content();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   653
		TVersion ver;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   654
		if (SetVersion(versionPtr, iAdmChangesInfo.iVersion) == EFalse)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   655
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   656
			User::Leave(EXmlErrorInvalidVersion);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   657
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   658
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   659
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   660
	// Get the ADM sis file name
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   661
	packageElement = DomFragment->AsElement().Element(KFieldSisName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   662
	if (packageElement)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   663
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   664
		iAdmChangesInfo.iSisName = packageElement->ContentUnicodeL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   665
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   666
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   667
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   668
		User::Leave(EXmlErrorMissingSisFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   669
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   670
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   671
	// URL read from ADM changes file.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   672
	// ADM.sis will be fetched from this url, if present. Or else default config url will be used.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   673
#if USE_ADMCHANGES_URL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   674
	// Get the optional URL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   675
	packageElement = DomFragment->AsElement().Element(KFieldUrl);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   676
	if (packageElement)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   677
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   678
		TPtrC8 urlPtr = packageElement->Content();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   679
		iAdmChangesInfo.iUrl = urlPtr.AllocL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   680
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   681
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   682
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   683
	CleanupStack::PopAndDestroy( DomFragment );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   684
	CleanupStack::PopAndDestroy( XmlReader );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   685
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   686
	// Delete no longer required changes file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   687
	DeleteFile(*iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   688
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   689
	LOG( "- ParseFile()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   690
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   691
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   692
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   693
// CStateMachine::StateInstallAdmL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   694
// Enter in case EBSStateInstallAdm
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   695
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   696
// Silent Install the given sis file. This is asynchronous and the next state transition happens only in the handle function.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   697
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   698
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   699
void CStateMachine::StateInstallAdmL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   700
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   701
	LOG( "+ InstallPackage()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   702
	SwiUI::TInstallOptions Options;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   703
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   704
	Options.iUpgrade = SwiUI::EPolicyAllowed;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   705
	Options.iOCSP    = SwiUI::EPolicyNotAllowed;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   706
	Options.iDrive   = 'c';
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   707
	Options.iUntrusted = SwiUI::EPolicyNotAllowed;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   708
	Options.iCapabilities = SwiUI::EPolicyNotAllowed;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   709
	Options.iOverwrite = SwiUI::EPolicyAllowed;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   710
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   711
	iOptionsPckg = Options;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   712
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   713
	if (iInstallObsrv == NULL)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   714
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   715
		iInstallObsrv = new (ELeave) CInstallObserver(this);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   716
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   717
	iInstallObsrv->iStatus = KRequestPending;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   718
	iInstallObsrv->Start();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   719
	// Start asynchronous installation
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   720
	iLauncher.SilentInstall(iInstallObsrv->iStatus, *iDownloadFileName, iOptionsPckg);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   721
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   722
	LOG( "- InstallPackage()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   723
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   724
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   725
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   726
// CStateMachine::StateLaunchAdmL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   727
// Enter in case EBSStateLaunchAdm
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   728
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   729
// Launch ADM. A few command line args are passed and this depends on the bootstrap version.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   730
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   731
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   732
void CStateMachine::StateLaunchAdmL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   733
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   734
	LOG( "+ LaunchAdm()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   735
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   736
	TUint32 protocolVer = KBootstrapAdmProtocolVersion;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   737
	TUint32 launchCtrl = 0;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   738
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   739
	// Command line arguments, version 15 specification:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   740
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   741
	//31               9  8  7  6  5  4  3  2  1  0
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   742
	// +-------------+--+--+--+--+--+--+--+--+--+--+
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   743
	// | reserved    |  |  |  |  |  |  |           |
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   744
	// +-------------+--+--+--+--+--+--+--+--+--+--+
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   745
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   746
	//      value
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   747
	// bits range description
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   748
	//  0-3  0-15 Command line parameter protocol version:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   749
	//             0 = not supported
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   750
	//             1 = ADM.exe 1 <wrapper_uid> <iap> <depfile> <sisfile>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   751
	//             2 = ADM.exe 2 <wrapper_uid> <iap> <depfile> <sisfile>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   752
	//             3 = ADM.exe 3 <wrapper_uid> <iap> <depfile>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   753
	//             4 = ADM.exe 4 <wrapper_uid> <iap> <sisfile> (this was used in beta1, beta2)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   754
	//            15 = ADM.exe 15 [parameters as specified by other bits]
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   755
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   756
	//         since
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   757
	//  bit  version type command line parameter present
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   758
	//    4      4     N  Bootstrap version number
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   759
	//    5      4     N  Wrapper UID
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   760
	//    6      4     N  IAP
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   761
	//    7      4     N  ADM launch condition code:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   762
	//                    KCmdLineCancelAdm: ADM needs to cancel installation
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   763
	//                    KCmdLineLaunchAdm: ADM starts normally
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   764
	//    8      4     S  Full path to dependency XML file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   765
	//    9      4     S  Full path to application SIS file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   766
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   767
	// Types:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   768
	//  N  Natural decimal number (range 0 - 2^32-1, fits to TUint32)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   769
	//  S  UTF-8 string, must NOT contains spaces or other whitespaces
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   770
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   771
	// Command line parameters appear in the order of the bits set, i.e.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   772
	// if bits 4, 8, 9 are set the command line parameters are:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   773
	// ADM.exe 784 <bootstrap_version> <dep_file> <sis_file>
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   774
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   775
	// If command line protocol version is less than 15, it is assumed that
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   776
	// old version command line parameter format is used.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   777
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   778
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   779
	// In case of approach 3 , cleanup of only BootStrap
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   780
	// is required.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   781
	if (KBootstrapVersion == 3)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   782
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   783
		iWrapperPackageUid = KUidBootstrapApp.iUid;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   784
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   785
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   786
	// Set the launchCtrl based on Bootstrap Failure/Success
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   787
	if ( iBootstrapFailed )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   788
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   789
		if (iSisFilename)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   790
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   791
			// SisFile exists -> resuming is possible
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   792
			launchCtrl = KCmdLineCancelAdm;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   793
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   794
		else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   795
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   796
			launchCtrl = KCmdLineCancelAdmNoResume;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   797
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   798
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   799
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   800
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   801
		launchCtrl = KCmdLineLaunchAdm;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   802
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   803
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   804
	LOG2( "LaunchCtrl: %d", launchCtrl );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   805
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   806
	// By default, set the following bits:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   807
	// 1. BootstrapVersion,
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   808
	// 2. WrapperUid
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   809
	// 3. Launchctrl
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   810
	// 4. IAP (If not set, the value is 0)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   811
	protocolVer |= (KCmdLineBitBootstrapVersion | KCmdLineBitWrapperUid)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   812
			| KCmdLineBitADMLaunchControl
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   813
			| KCmdLineBitIAP;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   814
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   815
	// Set the mandatory command line parameters
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   816
	//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   817
	// Size of 32-bit Bootstrap Version Value is 10 characters
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   818
	// Size of 32-bit UID when converted to numeric string is 10 characters (4294967295)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   819
	// Size of 32-bit iIAP (TUint32) when converted to numeric string is 10 characters
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   820
	// Size of 2 spaces is 2 characters
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   821
	if ( (launchCtrl == KCmdLineCancelAdm) || (launchCtrl == KCmdLineLaunchAdm) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   822
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   823
		switch (KBootstrapVersion)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   824
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   825
			case 1:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   826
			case 2:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   827
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   828
				User::LeaveIfNull(iSisFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   829
				User::LeaveIfNull(iDepFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   830
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   831
				protocolVer |= (KCmdLineBitFileSis | KCmdLineBitFileDep);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   832
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   833
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   834
			case 3:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   835
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   836
				User::LeaveIfNull(iDepFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   837
				protocolVer |= (KCmdLineBitFileDep);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   838
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   839
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   840
			case 4:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   841
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   842
				User::LeaveIfNull(iSisFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   843
				protocolVer |= (KCmdLineBitFileSis);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   844
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   845
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   846
			default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   847
				// Unsupported Bootstrap Version
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   848
				User::Leave(KErrNotSupported);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   849
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   850
			} // switch (KBootstrapVersion)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   851
		} // if ( (launchCtrl == KCmdLineCancelAdm) || (launchCtrl == KCmdLineLaunchAdm) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   852
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   853
	// Build the command line parameter string
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   854
	HBufC *processArgs = NULL;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   855
	TInt processArgsLen = 11; // obligatory protocol version number and ' '
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   856
	TUint32 tmp = (protocolVer & ~KCmdLineBitProtocolVerMask) >> KCmdLineProtocolVerBits;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   857
	for (TInt i = 0; tmp != 0 || i < sizeof(KCmdLineParamLengths); tmp >>= 1, i++)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   858
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   859
		if (tmp & 1)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   860
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   861
			processArgsLen += KCmdLineParamLengths[i];
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   862
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   863
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   864
	if (iDepFilename)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   865
		processArgsLen += iDepFilename->Length()+1; // +1 comes from the appended ' '
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   866
	if (iSisFilename)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   867
		processArgsLen += iSisFilename->Length();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   868
	LOG2( "len %d", processArgsLen );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   869
	processArgs = HBufC::NewLC(processArgsLen);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   870
	TPtr ptr = processArgs->Des();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   871
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   872
	// append the obligatory protocol version number
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   873
	ptr.AppendNum(protocolVer);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   874
	ptr.Append(' ');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   875
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   876
	if (protocolVer & KCmdLineBitBootstrapVersion)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   877
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   878
		ptr.AppendNum(KBootstrapVersion);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   879
		ptr.Append(' ');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   880
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   881
	if (protocolVer & KCmdLineBitWrapperUid)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   882
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   883
		ptr.AppendNum(iWrapperPackageUid);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   884
		ptr.Append(' ');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   885
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   886
	if (protocolVer & KCmdLineBitIAP)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   887
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   888
		ptr.AppendNum(iIAP);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   889
		ptr.Append(' ');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   890
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   891
	if (protocolVer & KCmdLineBitADMLaunchControl)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   892
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   893
		ptr.AppendNum(launchCtrl);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   894
		ptr.Append(' ');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   895
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   896
	if (protocolVer & KCmdLineBitFileDep)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   897
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   898
		ptr.Append(*iDepFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   899
		ptr.Append(' ');
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   900
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   901
	if (protocolVer & KCmdLineBitFileSis)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   902
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   903
		ptr.Append(*iSisFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   904
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   905
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   906
	// Launch ADM
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   907
	LOG3( "Launching %S '%S'", &KAdmExePath, processArgs);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   908
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   909
	RProcess process;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   910
	CleanupClosePushL<RProcess>( process );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   911
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   912
	const TInt err = process.Create( KAdmExePath, processArgs->Des() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   913
	if (err != KErrNone)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   914
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   915
		LOG2( "ADM launch failed with error: %d", err );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   916
		CleanupStack::PopAndDestroy( &process );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   917
		CleanupStack::PopAndDestroy( processArgs );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   918
		User::Leave(err);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   919
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   920
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   921
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   922
		// ADM was launched properly, set it visible in the menu grid
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   923
		LOG( "Revealing ADM menu icon" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   924
		CUtils::HideApplicationFromMenuL( KUidAdm.iUid, EFalse );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   925
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   926
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   927
// Do not lower the priority: it will cause the "OK" note to be shown
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   928
// on faster, more recent S60 devices
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   929
//	process.SetPriority( EPriorityBackground );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   930
	process.Resume();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   931
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   932
	CleanupStack::PopAndDestroy( &process );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   933
	CleanupStack::PopAndDestroy( processArgs );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   934
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   935
	LOG2( "- LaunchAdmL(): %d", err );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   936
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   937
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   938
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   939
// CStateMachine::HandleDMgrEventL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   940
// Callback to handle the download manager events
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   941
// Called in EBSStateDownloadChanges, EBSStateDownloadAdm
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   942
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   943
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   944
void CStateMachine::HandleDMgrEventL( RHttpDownload& aDownload, THttpDownloadEvent aEvent )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   945
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   946
	TInt32 glErrId = KErrNone;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   947
	TInt32 errId = ENoError;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   948
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   949
	// Get error IDs
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   950
	aDownload.GetIntAttribute( EDlAttrGlobalErrorId, glErrId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   951
	aDownload.GetIntAttribute( EDlAttrErrorId, errId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   952
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   953
#ifdef DO_LOG
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   954
	_LIT(KFmt, ", GlErrId=%6d, ErrId=%d");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   955
	TBuf<64> buf;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   956
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   957
	if ( ((glErrId != KErrNone) || (errId != ENoError)) && glErrId != KErrUnknown )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   958
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   959
		buf.AppendFormat(KFmt, glErrId, errId);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   960
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   961
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   962
	if ( ( iDownloadState != aEvent.iDownloadState ) ||
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   963
		 ( iProgressState != aEvent.iProgressState ) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   964
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   965
		iDownloadState = aEvent.iDownloadState;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   966
		iProgressState = aEvent.iProgressState;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   967
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   968
		LOG4( "DlSt=%5d, PrSt=%5d%S", iDownloadState, iProgressState, &buf );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   969
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   970
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   971
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   972
	switch ( aEvent.iDownloadState )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   973
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   974
		case EHttpDlCreated:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   975
		case EHttpDlInprogress:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   976
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   977
			//Nothing done.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   978
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   979
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   980
		case EHttpDlPaused:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   981
		case EHttpDlFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   982
// These two fill fold to EHttpDlFailed. We don't want to process failure events twice.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   983
//		case EHttpDlNonPausableNetworkLoss:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   984
//		case EHttpDlMultipleMOFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   985
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   986
			//Continue download if paused in EHttpContentTypeReceived.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   987
			//Pause is received even in ProgNone state!
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   988
			if( ( aEvent.iProgressState == EHttpContentTypeReceived ) ||
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   989
				( (aEvent.iProgressState == EHttpProgNone ) && ( errId == ENoError ) ) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   990
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   991
				LOG( "Starting download" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   992
				aDownload.Start();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   993
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   994
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   995
			if ( ProcessDlErrors(glErrId, errId, iDownloadError) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   996
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   997
				if ( (iIapArrayIndex+1) < iIapArray.Count() )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   998
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
   999
					// Try the next IAP
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1000
					iIapArrayIndex++;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1001
					LOG3( "Starting download with next IAP[%d]=%d.", iIapArrayIndex, iIapArray[iIapArrayIndex] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1002
					SetIAP( iIapArray[iIapArrayIndex] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1003
					aDownload.Start();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1004
					break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1005
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1006
				else if ( (iIapArrayIndex+1) == iIapArray.Count() )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1007
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1008
					// We've gone through all the IAPs in the SNAP, prompt the user for an access point
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1009
					SetIAP( 0 );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1010
					// This ensures that this code path is taken only once
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1011
					iIapArrayIndex++;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1012
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1013
				if (++iConnectionAttempt < KDownloadConnectionRetries)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1014
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1015
					LOG4( "Restarting download due to network failure (%d: %d, %d)", iConnectionAttempt, glErrId, errId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1016
					// TODO: Do we need to do a Reset() before Start()?
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1017
					aDownload.Start();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1018
					// We don't restart the download timer on purpose
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1019
					//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1020
					// Clear the error id so it doesn't get caught below
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1021
					// as this is not an error situation.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1022
					iDownloadError = EDlErrNoError;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1023
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1024
				else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1025
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1026
					LOG4( "Too many download retries, cancelling download (%d; %d, %d)", iDownloadError, glErrId, errId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1027
					// iDownloadError has been set properly by ProcessDlErrors()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1028
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1029
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1030
			if ( iDownloadError != EDlErrNoError )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1031
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1032
				LOG2( "DlErr=%d", iDownloadError );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1033
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1034
				if ( iDownloadError == EDlErrCancelled )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1035
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1036
					HandleFailure(ETrue); // If user pressed cancel, then iIsIapCancelled is 1
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1037
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1038
				else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1039
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1040
					HandleFailure(EFalse);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1041
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1042
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1043
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1044
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1045
		case EHttpDlCompleted:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1046
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1047
			// TODO: Get the DownloadfileName??
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1048
			iDownloadManager.GetIntAttribute( EDlMgrIap, iIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1049
			LOG2( "IAP set to %d", iIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1050
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1051
			switch (iAppState)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1052
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1053
				case EBSStateDownloadChanges:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1054
					RequestState(EBSStateParseChanges);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1055
					break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1056
				case EBSStateDownloadAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1057
					RequestState(EBSStateInstallAdm);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1058
					break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1059
				default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1060
					LOG2( "DlEvent from unknown state %d", iAppState );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1061
					// TODO: Fix the panic code
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1062
					User::Panic(_L("SmartInst"), 42);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1063
					break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1064
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1065
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1066
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1067
		default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1068
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1069
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1070
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1071
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1072
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1073
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1074
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1075
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1076
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1077
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1078
TBool CStateMachine::ProcessDlErrors(const TInt32 aGlErrId, const TInt32 aErrId, EDownloadError& aDownloadError)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1079
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1080
	LOG4( "+ ProcessDlErrors(%d, %d, %d)", aGlErrId, aErrId, aDownloadError );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1081
	TBool requestRestart = EFalse;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1082
	const TUint count = iIapArray.Count();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1083
	// Process the error codes
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1084
	switch (aErrId)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1085
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1086
		case KErrNone:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1087
			// everything a-OK!
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1088
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1089
		case EConnectionFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1090
			// Request restart, if we haven't exhausted all the IAPs on the list.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1091
			if (count > 0 && iIapArrayIndex < count)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1092
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1093
				requestRestart = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1094
				goto exit;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1095
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1096
			else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1097
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1098
				aDownloadError = EDlErrDownloadFailure;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1099
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1100
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1101
		case ETransactionFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1102
			// We set the download error to network failure as that's the
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1103
			// error propagated to TState::DownloadFailed().
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1104
			// The state machine will try to restart the download, if the
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1105
			// error code is EDlErrDownloadFailure, but NOT for EDlErrNetworkFailure.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1106
			aDownloadError = EDlErrDownloadFailure;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1107
			requestRestart = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1108
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1109
		case EObjectNotFound:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1110
			aDownloadError = EDlErrFileNotFound;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1111
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1112
		default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1113
			LOG2( "Unhandled ErrId %d", aErrId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1114
			aDownloadError = EDlErrDownloadFailure;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1115
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1116
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1117
	// Process the global error code
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1118
	switch (aGlErrId)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1119
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1120
		case KErrNone:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1121
			// everything a-OK!
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1122
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1123
		case KErrCancel:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1124
		case KErrAbort:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1125
			// The user has cancelled the download / IAP selection box
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1126
			aDownloadError = EDlErrCancelled;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1127
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1128
		case KErrDiskFull:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1129
			// Disk full
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1130
			aDownloadError = EDlErrNotEnoughSpace;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1131
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1132
		case KErrUnknown:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1133
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1134
			if( aErrId == KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1135
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1136
				aDownloadError = EDlErrDownloadFailure;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1137
				requestRestart = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1138
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1139
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1140
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1141
		case KErrNotFound:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1142
		case KErrBadName:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1143
		case KErrNotSupported:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1144
		case KErrCommsLineFail:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1145
		case KErrTimedOut:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1146
		case KErrCouldNotConnect:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1147
		case KErrDisconnected:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1148
		case KErrGprsServicesNotAllowed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1149
		case KErrGsmMMNetworkFailure:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1150
		case -8268: // KErrGsmOfflineOpNotAllowed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1151
		// WLAN network related errors:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1152
		case KErrWlanNetworkNotFound:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1153
		case KErrWlanRoamingFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1154
		case KErrWlanNetworkLost:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1155
#if 0
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1156
		case KErrBadName:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1157
		case KErrNotSupported:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1158
		case KErrWlanOpenAuthFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1159
		case KErrWlanSharedKeyAuthRequired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1160
		case KErrWlanSharedKeyAuthFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1161
		case KErrWlanWpaAuthRequired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1162
		case KErrWlanIllegalEncryptionKeys:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1163
		case KErrWlanPskModeRequired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1164
		case KErrWlanEapModeRequired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1165
		case KErrWlanSimNotInstalled:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1166
		case KErrWlanNotSubscribed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1167
		case KErrWlanAccessBarred:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1168
		case KErrWlanPasswordExpired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1169
		case KErrWlanNoDialinPermissions:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1170
		case KErrWlanAccountDisabled:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1171
		case KErrWlanRestrictedLogonHours:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1172
		case KErrWlanServerCertificateExpired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1173
		case KErrWlanCerficateVerifyFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1174
		case KErrWlanNoUserCertificate:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1175
		case KErrWlanNoCipherSuite:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1176
		case KErrWlanUserRejected:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1177
		case KErrWlanUserCertificateExpired:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1178
		// less fatal, but still needs to fail the download:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1179
		case KErrWlanWpaAuthFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1180
		case KErrWlan802dot1xAuthFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1181
		case KErrWlanIllegalWpaPskKey:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1182
		case KErrWlanEapSimFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1183
		case KErrWlanEapTlsFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1184
		case KErrWlanEapPeapFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1185
		case KErrWlanEapMsChapv2:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1186
		case KErrWlanEapAkaFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1187
		case KErrWlanEapTtlsFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1188
		case KErrWlanLeapFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1189
		case KErrWlanEapGtcFailed:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1190
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1191
			// A fatal network error has occured, don't retry the download
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1192
			requestRestart = EFalse;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1193
			aDownloadError = EDlErrNetworkFailure;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1194
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1195
		default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1196
			if (!requestRestart)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1197
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1198
				// We assume all the other error codes to be 'hard' network errors
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1199
				LOG2( "Unhandled GlErrId %d", aGlErrId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1200
				aDownloadError = EDlErrNetworkFailure;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1201
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1202
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1203
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1204
exit:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1205
	LOG3( "- ProcessDlErrors(): %d, %d", requestRestart, aDownloadError );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1206
	return requestRestart;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1207
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1208
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1209
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1210
// CStateMachine::HandleInstallCompleteL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1211
// Callback to handle the Installation events
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1212
// Called in EBSStateInstallAdm
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1213
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1214
// If SWI is busy, re attempt installation 6 times
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1215
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1216
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1217
void CStateMachine::HandleInstallCompleteL(const TInt& aStatus)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1218
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1219
	LOG2("+ HandleInstallCompleteL(%d)", aStatus);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1220
	TBool retrying = EFalse;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1221
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1222
	User::LeaveIfNull(iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1223
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1224
	// If the install server is busy , try connecting multiple times.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1225
	if ( (aStatus == SwiUI::KSWInstErrBusy ||
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1226
			aStatus == KErrInUse ||
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1227
			aStatus == KErrServerBusy)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1228
			&& ((++iInstallAttempt) <= KMaxInstallerConnectionAttempts))
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1229
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1230
		LOG3( "Installer busy (%d), requesting retry (%d)", iInstallAttempt, aStatus );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1231
		retrying = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1232
		User::After(KIterationTimer * iInstallAttempt);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1233
		RequestState(EBSStateInstallAdm);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1234
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1235
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1236
	if (aStatus == KErrNone)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1237
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1238
		LOG( "ADM installed OK, deleting SIS." );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1239
		// Delete no longer required sis file.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1240
		DeleteFile(*iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1241
		// ADM was installed succesfully, launch it!
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1242
		RequestState(EBSStateLaunchAdm);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1243
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1244
	else if (!retrying)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1245
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1246
		LOG3( "Installation unsuccessful (%d) after %d attempts, leaving.", aStatus, iInstallAttempt );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1247
		// TODO: Better error handling
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1248
		User::Leave(aStatus);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1249
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1250
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1251
	LOG("- HandleInstallCompleteL()");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1252
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1253
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1254
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1255
// CStateMachine::IsPackagePresentL
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1256
// Check whether the given Package (uid & version) is already present in the device.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1257
// Called in EBSStateInit to check for ADM Presence
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1258
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1259
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1260
TBool CStateMachine::IsPackagePresentL(const TUid& aUid, TVersion& aVersion)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1261
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1262
	LOG( "+ ADMPresent()");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1263
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1264
	// Connect to SisRegistry to find if the package is
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1265
	// already installed.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1266
	Swi::RSisRegistrySession registrySession;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1267
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1268
	User::LeaveIfError(registrySession.Connect());
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1269
	CleanupClosePushL(registrySession);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1270
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1271
	const TBool isPkgInstalled = registrySession.IsInstalledL(aUid);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1272
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1273
	if (isPkgInstalled)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1274
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1275
		Swi::RSisRegistryEntry entry;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1276
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1277
		// Open registry entry
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1278
		User::LeaveIfError(entry.Open(registrySession, aUid));
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1279
		CleanupClosePushL(entry);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1280
		aVersion = entry.VersionL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1281
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1282
		CleanupStack::PopAndDestroy(&entry);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1283
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1284
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1285
	CleanupStack::PopAndDestroy(&registrySession);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1286
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1287
	LOG3( "- ADMPresent(): 0x%x = %d", aUid.iUid, isPkgInstalled );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1288
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1289
	return isPkgInstalled;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1290
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1291
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1292
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1293
// CStateMachine::DeleteFile
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1294
// Delete the given file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1295
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1296
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1297
void CStateMachine::DeleteFile(const TDesC& aFileName)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1298
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1299
	CCoeEnv::Static()->FsSession().Delete(aFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1300
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1301
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1302
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1303
// CStateMachine::HandleWaitNoteCancel
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1304
// Call HandleFailure.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1305
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1306
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1307
//TODO: Can this be removed and call HandleFailure() directly?
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1308
void CStateMachine::HandleWaitNoteCancel()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1309
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1310
	HandleFailure(ETrue);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1311
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1312
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1313
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1314
// CStateMachine::HandleFailure
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1315
// Perform the state specific cleanup incase of failure.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1316
// And then call AppUi Exit.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1317
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1318
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1319
void CStateMachine::HandleFailure(TInt aError)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1320
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1321
	LOG2( "+ HandleFailure(): %d", aError );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1322
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1323
	switch (iAppState)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1324
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1325
		case EBSStateInit:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1326
		case EBSStateSetup:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1327
		case EBSStateLaunchAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1328
			// No cleanUp required here
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1329
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1330
		case EBSStateDownloadChanges:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1331
		case EBSStateDownloadAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1332
			// Deletion of all downloads is taken care in destructor
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1333
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1334
		case EBSStateInstallAdm:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1335
			// Cancel the installation
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1336
			iLauncher.CancelAsyncRequest(SwiUI::ERequestSilentInstall);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1337
			// fall-through
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1338
		case EBSStateParseChanges:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1339
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1340
			// Delete the downloaded dep file
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1341
			if (iDownloadFileName)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1342
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1343
				DeleteFile(*iDownloadFileName);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1344
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1345
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1346
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1347
		default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1348
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1349
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1350
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1351
	// Even in case of any failure, launch ADM, if present in device.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1352
	// ADM needs to be launched in Cancel mode.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1353
	if( (iAppState < EBSStateLaunchAdm) && iIsAdmInstalled )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1354
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1355
		// If it is user press cancel or Filenames are itself not set, then remove the whole wrapper package.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1356
		// TODO: Should the failure reason be passed to ADM?
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1357
		// TODO: or show the error note in bootstrap, but launch ADM to remove the wrapper?
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1358
		if ( aError || ( iAppState <= EBSStateSetup) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1359
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1360
			// No need to delete the files here, as the whole package will get removed.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1361
			iBootstrapFailed = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1362
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1363
		RequestState(EBSStateLaunchAdm);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1364
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1365
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1366
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1367
		// Delete the dep file is present
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1368
		if ( (KBootstrapVersion == 3) && iDepFilename )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1369
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1370
			DeleteFile(*iDepFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1371
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1372
		else if ( (KBootstrapVersion == 4) && iSisFilename )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1373
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1374
			DeleteFile(*iSisFilename);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1375
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1376
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1377
		// Set the Error ID based on App State and User Cancel.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1378
		if( aError || ((iAppState != EBSStateDownloadChanges) && (iAppState != EBSStateDownloadAdm)) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1379
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1380
			iAppUi.SetErrorId(EInstallationFailed);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1381
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1382
		else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1383
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1384
			iAppUi.SetErrorId(EDownloadFailed);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1385
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1386
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1387
		// Now call App Exit to display the error note and exit bootstrap.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1388
		RequestState(EBSStateExitWithError);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1389
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1390
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1391
	LOG( "- HandleFailure()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1392
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1393
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1394
#ifdef FEATURE_BOOTSTRAP_SETIAP
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1395
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1396
// Sets the used internet access point (IAP) to same that the Browser uses
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1397
// with additional verification that the selected IAP actually exist.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1398
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1399
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1400
void CStateMachine::SetIAP(const TUint aIAP)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1401
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1402
	LOG2( "+ SetDlMgrIAP(): %d", aIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1403
	iIAP = aIAP;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1404
	// Set the download manager to silent mode, if the IAP is valid
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1405
	iDownloadManager.SetBoolAttribute( EDlMgrSilentMode, aIAP != 0 );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1406
	iDownloadManager.SetIntAttribute( EDlMgrIap, iIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1407
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1408
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1409
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1410
// Sets the used internet access point (IAP) to same that the Browser uses
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1411
// with additional verification that the selected IAP actually exist.
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1412
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1413
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1414
void CStateMachine::SetAndValidateIAPL()
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1415
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1416
	LOG( "+ CBootstrapAppUi::SetAndValidateIAPL()" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1417
	// Use the browser default IAP, if available
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1418
	TInt ret;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1419
	TInt browserIAP, browserIAPmode, browserSNAP;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1420
	TRequestStatus status;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1421
	RConnectionMonitor connMon;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1422
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1423
	// IsIapActive() requires this
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1424
	CleanupClosePushL(connMon);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1425
	connMon.ConnectL();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1426
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1427
	CRepository *repository = CRepository::NewLC( KCRUidBrowser );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1428
	User::LeaveIfError( repository->Get(KBrowserAccessPointSelectionMode, browserIAPmode) );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1429
	User::LeaveIfError( repository->Get(KBrowserDefaultAccessPoint, browserIAP) );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1430
	ret = repository->Get( KBrowserNGDefaultSnapId, browserSNAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1431
	CleanupStack::PopAndDestroy( repository );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1432
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1433
	LOG5( "Browser IAP = %d, mode %d, SNAP %d (%d)", browserIAP, browserIAPmode, browserSNAP, ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1434
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1435
	if ( OviStoreRunning() && IsIapActive(connMon, browserIAP) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1436
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1437
		LOG2( "Using Ovi Store IAP %d", browserIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1438
		browserIAPmode = EBrowserCenRepApSelModeUserDefined;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1439
		// browserIAP now contains the IAP ID that OviStore is using
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1440
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1441
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1442
	// Get the IAP IDs for the browser SNAP, if we got the SNAP ID properly
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1443
	if (ret == KErrNone && browserSNAP > 0)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1444
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1445
		GetSnapIapsL(browserSNAP);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1446
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1447
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1448
	switch (browserIAPmode)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1449
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1450
		case EBrowserCenRepApSelModeDestination:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1451
			//LOG( "Destination network ");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1452
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1453
		case EBrowserCenRepApSelModeUserDefined:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1454
			//LOG( "User defined IAP" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1455
			if (browserIAP > 0)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1456
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1457
				SetIAP(browserIAP);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1458
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1459
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1460
			// else fall-through
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1461
		case EBrowserCenRepApSelModeAlwaysAsk:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1462
		default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1463
			LOG( "'Always ask'" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1464
			// if browser IAP is already active: then we utilise it directly, no prompting
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1465
			if ( IsIapActive(connMon, browserIAP) )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1466
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1467
				LOG2( "Connection already up (%d)", browserIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1468
				SetIAP(browserIAP);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1469
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1470
			else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1471
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1472
				LOG( "Prompting IAP" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1473
				// Set to always ask, we obey it as well
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1474
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1475
			// need to set this, if we ended up here with default:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1476
			browserIAPmode = EBrowserCenRepApSelModeAlwaysAsk;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1477
			break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1478
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1479
	// Found a proper IAP?
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1480
	if (iIAP != 0 || browserIAPmode == EBrowserCenRepApSelModeAlwaysAsk)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1481
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1482
#if 0
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1483
		TBuf<64> iapName;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1484
		connMon.GetStringAttribute( iIAP, 0, KIAPName, iapName, status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1485
		User::WaitForRequest( status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1486
		if ( status.Int() != KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1487
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1488
			// Try access point name
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1489
			connMon.GetStringAttribute( iIAP, 0, KAccessPointName, iapName, status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1490
			User::WaitForRequest( status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1491
			if ( status.Int() != KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1492
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1493
				LOG2( "ConnMon.GetStrAttr() ret = %d, ignoring.", status.Int() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1494
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1495
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1496
		LOG3( "Using IAP %d ('%S')", iIAP, &iapName );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1497
#else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1498
		//LOG2( "Using IAP %d", iIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1499
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1500
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1501
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1502
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1503
		// set the IAP from SNAP, if it's valid
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1504
		if (iIapArray.Count() > 0 && iIapArray[0] > 0)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1505
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1506
			LOG2( "Starting with IAP %d", iIapArray[0] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1507
			SetIAP(iIapArray[0]);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1508
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1509
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1510
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1511
	CleanupStack::PopAndDestroy( &connMon );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1512
	LOG3( "- CBootstrapAppUi::SetAndValidateIAPL(): %d, %d", ret, iIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1513
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1514
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1515
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1516
// Get the default IAP for the selected SNAP. SNAP is available since 3.2
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1517
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1518
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1519
void CStateMachine::GetSnapIapsL(const TUint aSNAPId)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1520
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1521
	// Load the helper library dynamically
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1522
	_LIT(KLibHelper, "smartinstaller.dll");
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1523
	LOG( "Loading helper" );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1524
	RLibrary lib;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1525
	const TInt ret = lib.Load( KLibHelper() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1526
	if (ret == KErrNone)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1527
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1528
		CleanupClosePushL(lib);
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1529
		const TInt KHelperNewLC = 2;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1530
		CHelper* helper = (CHelper*)lib.Lookup(KHelperNewLC)();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1531
		TRAPD(ret, helper->GetSnapIapsL(aSNAPId, iIapArray) );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1532
		LOG3( "Got %d IAPs (%d)", iIapArray.Count(), ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1533
#ifdef DO_LOG
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1534
		for (TInt i = 0; i < iIapArray.Count(); i++)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1535
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1536
			LOG3( "IAP[%d]=%d", i, iIapArray[i] );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1537
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1538
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1539
		CleanupStack::PopAndDestroy(2, &lib); // helper, lib
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1540
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1541
	else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1542
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1543
		LOG2( "Helper load failed %d", ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1544
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1545
	lib.Close();
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1546
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1547
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1548
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1549
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1550
// ---------------------------------------------------------------------------
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1551
//
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1552
TBool CStateMachine::IsIapActive(RConnectionMonitor &aConnMon, TInt& aIAP)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1553
	{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1554
	LOG2( "+ IsIapActive(): %d", aIAP );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1555
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1556
	TBool ret = EFalse;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1557
	// Get the connection info for each connection
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1558
	TUint id, iapId, count, countSubConn;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1559
	TRequestStatus status = KRequestPending;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1560
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1561
	aConnMon.GetConnectionCount( count, status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1562
	User::WaitForRequest( status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1563
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1564
	if (status.Int() != KErrNone)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1565
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1566
		LOG2( "GetConnCount() failed %d.", status.Int() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1567
		return ret;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1568
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1569
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1570
	LOG2( "Active connections: %d", count );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1571
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1572
	TInt oviStoreIap = KErrNotFound;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1573
	for ( TInt i = 1; i <= count && !ret; i++ )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1574
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1575
		const TInt err = aConnMon.GetConnectionInfo( i, id, countSubConn );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1576
		if ( err == KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1577
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1578
			LOG3( "ConnID[%d] = %d" , i, id );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1579
			// Get the IAP Id of the connection
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1580
			aConnMon.GetUintAttribute( id, 0, KIAPId, iapId, status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1581
			User::WaitForRequest( status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1582
			if ( status.Int() != KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1583
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1584
				LOG2( "GetIapId failed (%d), trying next", status.Int() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1585
				// try next connection
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1586
				continue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1587
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1588
			else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1589
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1590
				LOG2( "Active IAP = %d", iapId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1591
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1592
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1593
			// Find the UIDs using this connection
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1594
			TConnMonClientEnumBuf clientBuf;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1595
			aConnMon.GetPckgAttribute( id, 0, KClientInfo, clientBuf, status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1596
			User::WaitForRequest( status );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1597
			if ( status.Int() == KErrNone )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1598
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1599
				//LOG3( "%d clients sharing IAP %d", clientBuf().iCount, iapId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1600
				for (TUint client = 0; client < clientBuf().iCount; client++)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1601
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1602
					//LOG2( "0x%08X", clientBuf().iUid[client].iUid );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1603
					const TInt KUidSecureWidgetUi = 0x102829A0;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1604
					if ( clientBuf().iUid[client].iUid == KUidSecureWidgetUi
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1605
							&& OviStoreRunning() )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1606
						{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1607
						if (oviStoreIap == KErrNotFound)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1608
							{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1609
							//LOG2( "Possible OviStore IAP %d", iapId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1610
							oviStoreIap = iapId;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1611
							}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1612
						else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1613
							{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1614
							// Another secure widget is running, we cannot determine
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1615
							// which one is ovi store, default to browser IAP
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1616
							oviStoreIap = 0;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1617
							}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1618
						}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1619
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1620
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1621
			else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1622
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1623
				LOG2( "GetClientInfo failed (%d)", status.Int() );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1624
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1625
			// ignore any errors in KClientInfo query
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1626
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1627
			// If we found Ovi Store IAP, use that
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1628
			if (oviStoreIap > 0)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1629
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1630
				LOG2( "Sharing Ovi Store IAP %d", oviStoreIap );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1631
				iapId = oviStoreIap;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1632
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1633
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1634
			if ( iIapArray.Count() > 0 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1635
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1636
				// Go through all the SNAP's IAPs
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1637
				for (TInt iap = 0; iap < iIapArray.Count(); iap++)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1638
					{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1639
					if ( iapId == iIapArray[iap] )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1640
						{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1641
						LOG3( "Using %d (SNAP idx %d)", iapId, iap );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1642
						// Update the IAP to match the found one
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1643
						aIAP = iapId;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1644
						ret = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1645
						break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1646
						}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1647
					}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1648
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1649
			else if ( iapId == aIAP )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1650
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1651
				LOG2( "Using %d", iapId );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1652
				ret = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1653
				// we found matching IAP ID, break out of the loop
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1654
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1655
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1656
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1657
		else
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1658
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1659
			LOG3( "GetConnInfo[%d] failed (%d), trying next", i, err );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1660
			// try next connection
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1661
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1662
		} // for
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1663
#if 0
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1664
	// If we didn't have any connections up, try to find the last used browser
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1665
	// IAP from the SNAP and use that:
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1666
	if (!ret && count == 0 && iIapArray.Count() > 0 )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1667
		{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1668
		// Go through all the SNAP's IAPs
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1669
		for (TInt iap = 0; iap < iIapArray.Count(); iap++)
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1670
			{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1671
			if ( iapId == iIapArray[iap] )
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1672
				{
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1673
				LOG3( "Using %d (SNAP idx %d)", iapId, iap );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1674
				// Update the IAP to match the found one
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1675
				aIAP = iapId;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1676
				ret = ETrue;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1677
				break;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1678
				}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1679
			}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1680
		}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1681
#endif
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1682
	LOG3( "- IsIapActive(): %d = %d", aIAP, ret );
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1683
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1684
	return ret;
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1685
	}
364021cecc90 SmartInstaller contribution based on the Nokia Qt SDK 1.0 release
Santosh V Patil <santosh.v.patil@nokia.com>
parents:
diff changeset
  1686
#endif // FEATURE_BOOTSTRAP_SETIAP