author | hgs |
Wed, 20 Oct 2010 14:52:56 +0300 | |
changeset 80 | 9dcba1ee99f7 |
parent 37 | 6e7b00453237 |
permissions | -rw-r--r-- |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
4 |
* This component and the accompanying materials are made available |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0" |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
6 |
* which accompanies this distribution, and is available |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
* |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
9 |
* Initial Contributors: |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
10 |
* Nokia Corporation - initial contribution. |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
11 |
* |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
12 |
* Contributors: |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
* |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
14 |
* Description: Startup list updater implementation. |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
15 |
* |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
16 |
*/ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
18 |
#include "startuplistupdater.h" // CStartupListUpdater |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
#include "cleanupresetanddestroy.h" // CleanupResetAndDestroyPushL |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
#include <featmgr.h> // FeatureManager |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
#include <driveinfo.h> // DriveInfo |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include <barsc.h> // RResourceFile |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
#include <barsread.h> // TResourceReader |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
#include <StartupItem.hrh> // EStartupItemExPolicyNone |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
25 |
#include <dscitem.h> // CDscItem |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
26 |
#include <swi/sisregistrysession.h> // Swi::RSisRegistrySession |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
27 |
#include <swi/sisregistrypackage.h> // Swi::CSisRegistryPackage |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
28 |
#include <swi/sisregistryentry.h> // Swi::RSisRegistryEntry |
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
29 |
#include <swi/sistruststatus.h> // Swi::TSisTrustStatus::IsTrusted |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
30 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
31 |
_LIT( KImport, "import\\" ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
32 |
_LIT( KDriveAndPathFormat, "%c:%S" ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
33 |
_LIT( KResourceFileSpec, "c:*.rsc" ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
34 |
_LIT( KExecutableExtension, ".exe" ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
35 |
_LIT( KAsterisk, "*" ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
37 |
const TInt KDriveSpecLength = 2; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
38 |
const TInt KFirstStartupItemInfo = 1; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
|
80 | 40 |
#ifdef _DEBUG |
41 |
#define FLOG(x) RDebug::Print(x); |
|
42 |
#define FLOG_1(x,y) RDebug::Print(x, y); |
|
43 |
#define FLOG_2(x,y,z) RDebug::Print(x, y, z); |
|
44 |
#define FLOG_3(x,y,z,v) RDebug::Print(x, y, z, v); |
|
45 |
#else |
|
46 |
#define FLOG(x) |
|
47 |
#define FLOG_1(x,y) |
|
48 |
#define FLOG_2(x,y,z) |
|
49 |
#define FLOG_3(x,y,z,v) |
|
50 |
#endif |
|
51 |
||
52 |
_LIT( KDevTraceDir, "c:\\data\\logs\\swinst\\" ); |
|
53 |
_LIT( KDevTraceFile, "startuplistmgmt.log" ); |
|
54 |
const TInt KDevTraceBuffer = 256; |
|
55 |
||
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
56 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
57 |
// ======== LOCAL FUNCTIONS ======== |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
60 |
// FileNamesEqual() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
62 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
TBool FileNamesEqual( const HBufC& aFile1, const HBufC& aFile2 ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
64 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
65 |
return ( aFile1.CompareF( aFile2 ) == 0 ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
66 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
67 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
68 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
69 |
// ======== MEMBER FUNCTIONS ======== |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
70 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
71 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
72 |
// CStartupListUpdater::NewL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
73 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
74 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
75 |
CStartupListUpdater* CStartupListUpdater::NewL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
76 |
{ |
80 | 77 |
FLOG( _L("CStartupListUpdater::NewL") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
78 |
CStartupListUpdater* self = new( ELeave ) CStartupListUpdater; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
79 |
CleanupStack::PushL( self ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
80 |
self->ConstructL(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
81 |
CleanupStack::Pop( self ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
82 |
return self; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
83 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
84 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
85 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
86 |
// CStartupListUpdater::~CStartupListUpdater() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
87 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
88 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
89 |
CStartupListUpdater::~CStartupListUpdater() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
90 |
{ |
80 | 91 |
FLOG( _L("CStartupListUpdater::~CStartupListUpdater") ); |
92 |
iLogFile.Close(); |
|
93 |
iFileBuf.Close(); |
|
94 |
delete iLogBuf; |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
95 |
delete iPrivateImportPath; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
96 |
iFs.Close(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
97 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
98 |
FeatureManager::UnInitializeLib(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
99 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
100 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
101 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
102 |
// CStartupListUpdater::UpdateStartupListL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
103 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
104 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
105 |
void CStartupListUpdater::UpdateStartupListL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
106 |
{ |
80 | 107 |
FLOG( _L("CStartupListUpdater::UpdateStartupListL") ); |
108 |
if( FeatureManager::FeatureSupported( KFeatureIdExtendedStartup ) ) |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
109 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
110 |
ProcessImportsAndUninstallsL(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
111 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
112 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
113 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
114 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
115 |
// CStartupListUpdater::CStartupListUpdater() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
116 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
117 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
118 |
CStartupListUpdater::CStartupListUpdater() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
119 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
120 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
121 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
122 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
123 |
// CStartupListUpdater::ConstructL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
124 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
125 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
126 |
void CStartupListUpdater::ConstructL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
127 |
{ |
80 | 128 |
FLOG( _L("CStartupListUpdater::ConstructL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
129 |
FeatureManager::InitializeLibL(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
130 |
User::LeaveIfError( iFs.Connect() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
131 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
132 |
TInt err = iFs.MkDirAll( PrivateImportPathL() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
133 |
if( err != KErrNone && err != KErrAlreadyExists ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
134 |
{ |
80 | 135 |
FLOG_1( _L("CStartupListUpdater::ConstructL, err %d"), err ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
136 |
User::Leave( err ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
137 |
} |
80 | 138 |
FLOG( _L("CStartupListUpdater::ConstructL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
139 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
140 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
141 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
142 |
// CStartupListUpdater::PrivateImportPathL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
143 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
144 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
145 |
const TDesC& CStartupListUpdater::PrivateImportPathL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
146 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
147 |
if( !iPrivateImportPath ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
148 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
149 |
TFileName privateImportPath; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
150 |
User::LeaveIfError( iFs.PrivatePath( privateImportPath ) ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
151 |
privateImportPath.Append( KImport ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
152 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
153 |
TInt driveNumber; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
154 |
TInt err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
155 |
User::LeaveIfError( err ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
156 |
TChar driveLetter; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
157 |
User::LeaveIfError( RFs::DriveToChar( driveNumber, driveLetter ) ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
158 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
159 |
iPrivateImportPath = HBufC::NewL( KDriveSpecLength + privateImportPath.Length() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
160 |
TPtr ptr( iPrivateImportPath->Des() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
161 |
ptr.Format( KDriveAndPathFormat, static_cast< TUint >( driveLetter ), &privateImportPath ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
162 |
} |
80 | 163 |
FLOG_1( _L("CStartupListUpdater::PrivateImportPathL %S"), iPrivateImportPath ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
164 |
return *iPrivateImportPath; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
165 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
166 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
167 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
168 |
// CStartupListUpdater::ProcessImportsAndUninstallsL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
169 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
170 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
171 |
void CStartupListUpdater::ProcessImportsAndUninstallsL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
172 |
{ |
80 | 173 |
FLOG( _L("CStartupListUpdater::ProcessImportsAndUninstallsL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
174 |
RDscStore dscStore; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
175 |
OpenDscStoreLC( dscStore ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
176 |
|
80 | 177 |
TRAPD( err, ImportNewResourceFilesL( dscStore ) ); |
178 |
if( err ) |
|
179 |
{ |
|
180 |
DevTrace( _L("Error: import failed, error code %d"), err ); |
|
181 |
User::Leave( err ); |
|
182 |
} |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
183 |
DeregisterUninstalledAppsL( dscStore ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
184 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
185 |
CleanupStack::PopAndDestroy( &dscStore ); |
80 | 186 |
FLOG( _L("CStartupListUpdater::ProcessImportsAndUninstallsL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
187 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
188 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
189 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
190 |
// CStartupListUpdater::OpenDscStoreLC() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
191 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
192 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
193 |
void CStartupListUpdater::OpenDscStoreLC( RDscStore& aDscStore ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
194 |
{ |
80 | 195 |
FLOG( _L("CStartupListUpdater::OpenDscStoreLC") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
196 |
if( !aDscStore.IsOpened() ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
197 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
198 |
aDscStore.OpenL(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
199 |
CleanupClosePushL( aDscStore ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
200 |
if( !aDscStore.DscExistsL() ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
201 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
202 |
aDscStore.CreateDscL(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
203 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
204 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
205 |
else |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
206 |
{ |
80 | 207 |
FLOG( _L("CStartupListUpdater::OpenDscStoreLC, KErrAlreadyExists") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
208 |
User::Leave( KErrAlreadyExists ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
209 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
210 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
211 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
212 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
213 |
// CStartupListUpdater::ImportNewResourceFilesL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
214 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
215 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
216 |
void CStartupListUpdater::ImportNewResourceFilesL( RDscStore& aDscStore ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
217 |
{ |
80 | 218 |
FLOG( _L("CStartupListUpdater::ImportNewResourceFilesL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
219 |
RPointerArray<HBufC> executableArray; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
220 |
CleanupResetAndDestroyPushL( executableArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
221 |
RPointerArray<HBufC> resourceFileArray; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
222 |
CleanupResetAndDestroyPushL( resourceFileArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
223 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
224 |
GetDataToBeImportedL( executableArray, resourceFileArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
225 |
ImportExecutablesL( aDscStore, executableArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
226 |
RemoveImportedResourceFiles( resourceFileArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
227 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
228 |
CleanupStack::PopAndDestroy( 2, &executableArray ); |
80 | 229 |
FLOG( _L("CStartupListUpdater::ImportNewResourceFilesL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
230 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
231 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
232 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
233 |
// CStartupListUpdater::DeregisterUninstalledAppsL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
234 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
235 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
236 |
void CStartupListUpdater::DeregisterUninstalledAppsL( RDscStore& aDscStore ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
237 |
{ |
80 | 238 |
FLOG( _L("CStartupListUpdater::DeregisterUninstalledAppsL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
239 |
RPointerArray<HBufC> startedAtBootArray; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
240 |
CleanupResetAndDestroyPushL( startedAtBootArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
241 |
RPointerArray<HBufC> installedArray; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
242 |
CleanupResetAndDestroyPushL( installedArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
243 |
RPointerArray<HBufC> startedNotInstalled; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
244 |
CleanupResetAndDestroyPushL( startedNotInstalled ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
245 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
246 |
GetStartupListAppsL( aDscStore, startedAtBootArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
247 |
GetInstalledAppsL( installedArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
248 |
StartedButNotInstalledAppsL( startedAtBootArray, installedArray, startedNotInstalled ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
249 |
RemoveFromStartupListL( aDscStore, startedNotInstalled ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
250 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
251 |
CleanupStack::PopAndDestroy( 3, &startedAtBootArray ); |
80 | 252 |
FLOG( _L("CStartupListUpdater::DeregisterUninstalledAppsL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
253 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
254 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
255 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
256 |
// CStartupListUpdater::GetDataToBeImportedL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
257 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
258 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
259 |
void CStartupListUpdater::GetDataToBeImportedL( |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
260 |
RPointerArray<HBufC>& aExecutableArray, |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
261 |
RPointerArray<HBufC>& aResourceFileArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
262 |
{ |
80 | 263 |
FLOG( _L("CStartupListUpdater::GetDataToBeImportedL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
264 |
TParse resourceFiles; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
265 |
User::LeaveIfError( resourceFiles.Set( KResourceFileSpec, &PrivateImportPathL(), NULL ) ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
266 |
const TPtrC importDir( resourceFiles.FullName() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
267 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
268 |
CDir* dir; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
269 |
User::LeaveIfError( iFs.GetDir( importDir, KEntryAttMaskSupported, ESortNone, dir ) ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
270 |
CleanupStack::PushL( dir ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
271 |
for( TInt index = 0; index < dir->Count(); ++index ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
272 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
273 |
TFileName resourceFile; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
274 |
TInt lastSeparator = importDir.LocateReverse( '\\' ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
275 |
if( lastSeparator > 0 ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
276 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
277 |
resourceFile.Copy( importDir.Mid( 0, lastSeparator + 1 ) ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
278 |
resourceFile.Append( ( *dir )[ index ].iName ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
279 |
aResourceFileArray.AppendL( resourceFile.AllocL() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
280 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
281 |
AppendExecutablesFromResourceFileL( resourceFile, aExecutableArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
282 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
283 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
284 |
CleanupStack::PopAndDestroy( dir ); |
80 | 285 |
FLOG( _L("CStartupListUpdater::GetDataToBeImportedL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
286 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
287 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
288 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
289 |
// CStartupListUpdater::ImportExecutablesL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
290 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
291 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
292 |
void CStartupListUpdater::ImportExecutablesL( RDscStore& aDscStore, |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
293 |
RPointerArray<HBufC>& aExecutableArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
294 |
{ |
80 | 295 |
FLOG( _L("CStartupListUpdater::ImportExecutablesL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
296 |
for( TInt index = 0; index < aExecutableArray.Count(); ++index ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
297 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
298 |
const TDesC& executableName = *( aExecutableArray[ index ] ); |
80 | 299 |
FLOG_1( _L("CStartupListUpdater::ImportExecutablesL, exe %S"), &executableName ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
300 |
CDscItem* item = CDscItem::NewLC( executableName, KNullDesC ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
301 |
if( !aDscStore.ItemExistsL( *item ) ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
302 |
{ |
80 | 303 |
FLOG( _L("CStartupListUpdater::ImportExecutablesL, add item to DscStore") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
304 |
aDscStore.AddItemL( *item ); |
80 | 305 |
DevTrace( _L("Success: '%S' will be started at boot"), &executableName ); |
306 |
} |
|
307 |
else |
|
308 |
{ |
|
309 |
DevTrace( _L("Error: '%S' already in start list"), &executableName ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
310 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
311 |
CleanupStack::PopAndDestroy( item ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
312 |
} |
80 | 313 |
FLOG( _L("CStartupListUpdater::ImportExecutablesL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
314 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
315 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
316 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
317 |
// CStartupListUpdater::RemoveImportedResourceFiles() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
318 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
319 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
320 |
void CStartupListUpdater::RemoveImportedResourceFiles( |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
321 |
RPointerArray<HBufC>& aResourceFileArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
322 |
{ |
80 | 323 |
FLOG( _L("CStartupListUpdater::RemoveImportedResourceFiles, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
324 |
for( TInt index = 0; index < aResourceFileArray.Count(); ++index ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
325 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
326 |
const TDesC& fileName = *( aResourceFileArray[ index ] ); |
80 | 327 |
FLOG_1( _L("CStartupListUpdater::RemoveImportedResourceFiles, deleting %S"), &fileName ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
328 |
TInt err = iFs.Delete( fileName ); |
80 | 329 |
FLOG_1( _L("CStartupListUpdater::RemoveImportedResourceFiles, err %d"), err ); |
330 |
if( !err ) |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
331 |
{ |
80 | 332 |
DevTrace( _L("Resource file '%S' processed"), &fileName ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
333 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
334 |
} |
80 | 335 |
FLOG( _L("CStartupListUpdater::RemoveImportedResourceFiles, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
336 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
337 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
338 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
339 |
// CStartupListUpdater::AppendExecutablesFromResourceFileL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
340 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
341 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
342 |
void CStartupListUpdater::AppendExecutablesFromResourceFileL( |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
343 |
const TDesC& aResourceFile, |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
344 |
RPointerArray<HBufC>& aExecutableArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
345 |
{ |
80 | 346 |
FLOG( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, begin") ); |
347 |
OpenDevTraceL(); |
|
348 |
DevTrace( _L("Processing resource file: %S"), &aResourceFile ); |
|
349 |
||
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
350 |
RResourceFile resource; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
351 |
CleanupClosePushL( resource ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
352 |
resource.OpenL( iFs, aResourceFile ); |
80 | 353 |
FLOG_1( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, %S"), &aResourceFile ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
354 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
355 |
for( TInt id = KFirstStartupItemInfo; resource.OwnsResourceId( id ); ++id ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
356 |
{ |
80 | 357 |
FLOG_1( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, resource id %d"), id ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
358 |
HBufC8* buffer = resource.AllocReadLC( id ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
359 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
360 |
TResourceReader reader; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
361 |
reader.SetBuffer( buffer ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
362 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
363 |
// Read STARTUP_ITEM_INFO |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
364 |
TInt versionInfo = reader.ReadUint8(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
365 |
TFileName executableName; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
366 |
executableName.Copy( reader.ReadTPtrC() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
367 |
TInt recoveryPolicy = reader.ReadUint16(); |
80 | 368 |
FLOG_1( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, executableName %S"), |
369 |
&executableName ); |
|
370 |
FLOG_1( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, recoveryPolicy %d"), |
|
371 |
recoveryPolicy ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
372 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
373 |
CleanupStack::PopAndDestroy( buffer ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
374 |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
375 |
if( versionInfo == 0 && recoveryPolicy == EStartupItemExPolicyNone ) |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
376 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
377 |
// PKG files use '!' for drive letters that user can decide at installation time |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
378 |
if( executableName.Length() > 0 && executableName[ 0 ] == '!' ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
379 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
380 |
executableName.Replace( 0, 1, KAsterisk ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
381 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
382 |
TFindFile fileFinder( iFs ); |
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
383 |
CDir* executableDir; // next FindWildByDir needs AllFiles capability |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
384 |
TInt err = fileFinder.FindWildByDir( executableName, KNullDesC, executableDir ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
385 |
if( !err ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
386 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
387 |
CleanupStack::PushL( executableDir ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
388 |
executableName.Replace( 0, 1, fileFinder.File() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
389 |
CleanupStack::PopAndDestroy( executableDir ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
390 |
} |
80 | 391 |
|
392 |
FLOG_1( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, new name %S"), |
|
393 |
&executableName ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
394 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
395 |
|
80 | 396 |
DevTrace( _L("Executable file: %S"), &executableName ); |
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
397 |
if( IsValidExecutableForStartupL( aResourceFile, executableName ) ) |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
398 |
{ |
80 | 399 |
FLOG( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, adding to array") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
400 |
aExecutableArray.AppendL( executableName.AllocL() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
401 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
402 |
} |
80 | 403 |
else |
404 |
{ |
|
405 |
if( versionInfo != 0 ) |
|
406 |
{ |
|
407 |
DevTrace( _L("Error: unsupported STARTUP_ITEM_INFO version: %d"), versionInfo ); |
|
408 |
} |
|
409 |
else |
|
410 |
{ |
|
411 |
DevTrace( _L("Error: unsupported recovery policy: %d"), recoveryPolicy ); |
|
412 |
} |
|
413 |
} |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
414 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
415 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
416 |
CleanupStack::PopAndDestroy( &resource ); |
80 | 417 |
FLOG( _L("CStartupListUpdater::AppendExecutablesFromResourceFileL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
418 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
419 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
420 |
// --------------------------------------------------------------------------- |
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
421 |
// CStartupListUpdater::IsValidExecutableForStartupL() |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
422 |
// --------------------------------------------------------------------------- |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
423 |
// |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
424 |
TBool CStartupListUpdater::IsValidExecutableForStartupL( const TDesC& aResourceFile, |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
425 |
const TDesC& aExecutableName ) |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
426 |
{ |
80 | 427 |
FLOG( _L("CStartupListUpdater::IsValidExecutableForStartupL, begin") ); |
428 |
FLOG_1( _L("CStartupListUpdater::IsValidExecutableForStartupL, res %S"), &aResourceFile ); |
|
429 |
FLOG_1( _L("CStartupListUpdater::IsValidExecutableForStartupL, exe %S"), &aExecutableName ); |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
430 |
TBool isValid = EFalse; |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
431 |
|
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
432 |
TEntry entry; |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
433 |
if( iFs.Entry( aExecutableName, entry ) == KErrNone ) // needs AllFiles capability |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
434 |
{ |
80 | 435 |
FLOG( _L("CStartupListUpdater::IsValidExecutableForStartupL, exe file exists") ); |
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
436 |
|
80 | 437 |
TUid packageUid = KNullUid; |
438 |
ExtractPackageUidFromResourceFileL( aResourceFile, packageUid ); |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
439 |
|
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
440 |
if( packageUid != KNullUid ) |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
441 |
{ |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
442 |
Swi::RSisRegistrySession sisRegSession; |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
443 |
User::LeaveIfError( sisRegSession.Connect() ); |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
444 |
CleanupClosePushL( sisRegSession ); |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
445 |
|
80 | 446 |
isValid = IsResourceFileValidForPackageL( sisRegSession, aResourceFile, packageUid ) && |
447 |
IsExeFileIncludedInPackageL( sisRegSession, aExecutableName, packageUid ); |
|
448 |
||
449 |
CleanupStack::PopAndDestroy( &sisRegSession ); |
|
450 |
} |
|
451 |
else |
|
452 |
{ |
|
453 |
DevTrace( _L("Error: invalid package UID - check resource file name") ); |
|
454 |
} |
|
455 |
} |
|
456 |
else |
|
457 |
{ |
|
458 |
DevTrace( _L("Error: executable file '%S' not found"), &aExecutableName ); |
|
459 |
} |
|
460 |
||
461 |
FLOG_1( _L("CStartupListUpdater::IsValidExecutableForStartupL, return %d"), isValid ); |
|
462 |
return isValid; |
|
463 |
} |
|
464 |
||
465 |
// --------------------------------------------------------------------------- |
|
466 |
// CStartupListUpdater::ExtractPackageUidFromResourceFileL() |
|
467 |
// --------------------------------------------------------------------------- |
|
468 |
// |
|
469 |
void CStartupListUpdater::ExtractPackageUidFromResourceFileL( const TDesC& aResourceFile, |
|
470 |
TUid& aPackageUid ) |
|
471 |
{ |
|
472 |
FLOG( _L("CStartupListUpdater::ExtractPackageUidFromResourceFileL, begin") ); |
|
473 |
||
474 |
// Extract package UID from the resource file name |
|
475 |
// - allow both "[1234ABCD]" and "1234ABCD" formats |
|
476 |
// - allow possible "0x" prefix too |
|
477 |
aPackageUid = KNullUid; |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
478 |
|
80 | 479 |
TParse parse; |
480 |
parse.Set( aResourceFile, NULL, NULL ); |
|
481 |
TPtrC parseName = parse.Name(); |
|
482 |
TInt fileNameLength = parseName.Length(); |
|
483 |
if( !parse.IsNameWild() && fileNameLength > 0 ) |
|
484 |
{ |
|
485 |
TPtr fileName( const_cast<TUint16*>( parseName.Ptr() ), |
|
486 |
fileNameLength, fileNameLength ); |
|
487 |
||
488 |
if( fileName[ 0 ] == '[' && fileName[ fileNameLength - 1 ] == ']' ) |
|
489 |
{ |
|
490 |
const TInt KTwoCharsLength = 2; |
|
491 |
fileNameLength -= KTwoCharsLength; |
|
492 |
fileName = fileName.Mid( 1, fileNameLength ); |
|
493 |
} |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
494 |
|
80 | 495 |
_LIT( KHexPrefix, "0x" ); |
496 |
const TInt KHexPrefixLength = 2; |
|
497 |
if( fileName.Left( KHexPrefixLength ) == KHexPrefix ) |
|
498 |
{ |
|
499 |
fileNameLength -= KHexPrefixLength; |
|
500 |
fileName = fileName.Mid( KHexPrefixLength, fileNameLength ); |
|
501 |
} |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
502 |
|
80 | 503 |
FLOG_1( _L("CStartupListUpdater::ExtractPackageUidFromResourceFileL, fileName %S"), |
504 |
&fileName ); |
|
505 |
TLex lex( fileName ); |
|
506 |
TUint32 uidValue = 0; |
|
507 |
TInt lexError = lex.Val( uidValue, EHex ); |
|
508 |
if( !lexError ) |
|
509 |
{ |
|
510 |
aPackageUid.iUid = uidValue; |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
511 |
} |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
512 |
} |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
513 |
|
80 | 514 |
FLOG_1( _L("CStartupListUpdater::ExtractPackageUidFromResourceFileL, end, ret 0x%08x"), |
515 |
aPackageUid.iUid ); |
|
516 |
} |
|
517 |
||
518 |
// --------------------------------------------------------------------------- |
|
519 |
// CStartupListUpdater::IsResourceFileValidForPackageL() |
|
520 |
// --------------------------------------------------------------------------- |
|
521 |
// |
|
522 |
TBool CStartupListUpdater::IsResourceFileValidForPackageL( |
|
523 |
Swi::RSisRegistrySession& aSisRegSession, |
|
524 |
const TDesC& aResourceFile, |
|
525 |
const TUid& aPackageUid ) |
|
526 |
{ |
|
527 |
FLOG( _L("CStartupListUpdater::IsResourceFileValidForPackageL, begin") ); |
|
528 |
TBool isValidForPackage = EFalse; |
|
529 |
||
530 |
// Get package info from RSisRegistry, and check that |
|
531 |
// - the package contains the resource file, and |
|
532 |
// - the package is properly signed |
|
533 |
||
534 |
Swi::RSisRegistryEntry package; |
|
535 |
CleanupClosePushL( package ); |
|
536 |
TInt openError = package.Open( aSisRegSession, aPackageUid ); |
|
537 |
FLOG_1( _L("CStartupListUpdater::IsResourceFileValidForPackageL, openError %d"), openError ); |
|
538 |
if( !openError ) |
|
539 |
{ |
|
540 |
Swi::TSisTrustStatus trustStatus = package.TrustStatusL(); |
|
541 |
Swi::TValidationStatus validationStatus = trustStatus.ValidationStatus(); |
|
542 |
FLOG_1( _L("CStartupListUpdater::IsResourceFileValidForPackageL, validationStatus %d"), |
|
543 |
validationStatus ); |
|
544 |
Swi::TRevocationStatus revocationStatus = trustStatus.RevocationStatus(); |
|
545 |
FLOG_1( _L("CStartupListUpdater::IsResourceFileValidForPackageL, revocationStatus %d"), |
|
546 |
revocationStatus ); |
|
547 |
TBool isTrusted = (validationStatus == Swi::EPackageInRom || |
|
548 |
validationStatus == Swi::EValidatedToAnchor) && |
|
549 |
revocationStatus != Swi::EOcspRevoked; |
|
550 |
FLOG_1( _L("CStartupListUpdater::IsResourceFileValidForPackageL, isTrusted %d"), |
|
551 |
isTrusted ); |
|
552 |
||
553 |
if( isTrusted ) |
|
554 |
{ |
|
555 |
isValidForPackage = IsFileIncludedInPackageL( aResourceFile, package ); |
|
556 |
||
557 |
if( !isValidForPackage ) |
|
558 |
{ |
|
559 |
DevTrace( _L("Error: package 0x%08x does not install resource file %S"), |
|
560 |
aPackageUid.iUid, &aResourceFile ); |
|
561 |
} |
|
562 |
} |
|
563 |
else |
|
564 |
{ |
|
565 |
DevTrace( _L("Error: package 0x%08x not trusted"), aPackageUid.iUid ); |
|
566 |
} |
|
567 |
} |
|
568 |
else |
|
569 |
{ |
|
570 |
DevTrace( _L("Error: package 0x%08x open failed, error %d - check resource file name"), |
|
571 |
aPackageUid.iUid, openError ); |
|
572 |
} |
|
573 |
||
574 |
CleanupStack::PopAndDestroy( &package ); |
|
575 |
||
576 |
FLOG_1( _L("CStartupListUpdater::IsResourceFileValidForPackageL, ret %d"), isValidForPackage ); |
|
577 |
return isValidForPackage; |
|
578 |
} |
|
579 |
||
580 |
// --------------------------------------------------------------------------- |
|
581 |
// CStartupListUpdater::IsFileIncludedInPackageL() |
|
582 |
// --------------------------------------------------------------------------- |
|
583 |
// |
|
584 |
TBool CStartupListUpdater::IsFileIncludedInPackageL( const TDesC& aFile, |
|
585 |
Swi::RSisRegistryEntry& aPackage ) |
|
586 |
{ |
|
587 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInPackageL, begin, file %S"), &aFile ); |
|
588 |
TBool isIncluded = EFalse; |
|
589 |
||
590 |
RPointerArray<HBufC> files; |
|
591 |
CleanupResetAndDestroyPushL( files ); |
|
592 |
aPackage.FilesL( files ); |
|
593 |
TInt fileCount = files.Count(); |
|
594 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInPackageL, pckg fileCount %d"), fileCount ); |
|
595 |
for( TInt index = 0; index < fileCount && !isIncluded; ++index ) |
|
596 |
{ |
|
597 |
TPtrC pckgFile( *files[ index ] ); |
|
598 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInPackageL, pckgFile %S"), &pckgFile ); |
|
599 |
isIncluded = ( aFile.CompareF( pckgFile ) == 0 ); |
|
600 |
} |
|
601 |
CleanupStack::PopAndDestroy( &files ); |
|
602 |
||
603 |
if( isIncluded ) |
|
604 |
{ |
|
605 |
DevTrace( _L("File '%S' installed by package 0x%08x" ), &aFile, aPackage.UidL().iUid ); |
|
606 |
} |
|
607 |
else |
|
608 |
{ |
|
609 |
DevTrace( _L("File '%S' not installed by package 0x%08x" ), &aFile, aPackage.UidL().iUid ); |
|
610 |
} |
|
611 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInPackageL, ret %d"), isIncluded ); |
|
612 |
return isIncluded; |
|
613 |
} |
|
614 |
||
615 |
// --------------------------------------------------------------------------- |
|
616 |
// CStartupListUpdater::IsFileIncludedInEmbeddedPackagesL() |
|
617 |
// --------------------------------------------------------------------------- |
|
618 |
// |
|
619 |
TBool CStartupListUpdater::IsFileIncludedInEmbeddedPackagesL( |
|
620 |
Swi::RSisRegistrySession& aSisRegSession, const TDesC& aFile, |
|
621 |
Swi::RSisRegistryEntry& aPackage ) |
|
622 |
{ |
|
623 |
FLOG( _L("CStartupListUpdater::IsFileIncludedInEmbeddedPackagesL, begin") ); |
|
624 |
TBool isIncluded = EFalse; |
|
625 |
||
626 |
RPointerArray<Swi::CSisRegistryPackage> embeddedPackages; |
|
627 |
CleanupResetAndDestroyPushL( embeddedPackages ); |
|
628 |
aPackage.EmbeddedPackagesL( embeddedPackages ); |
|
629 |
||
630 |
TInt embeddedPackagesCount = embeddedPackages.Count(); |
|
631 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInEmbeddedPackagesL, embeddedPackagesCount %d"), |
|
632 |
embeddedPackagesCount ); |
|
633 |
for( TInt index = 0; index < embeddedPackagesCount && !isIncluded; ++index ) |
|
634 |
{ |
|
635 |
TUid uid = embeddedPackages[index]->Uid(); |
|
636 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInEmbeddedPackagesL, uid 0x%08x"), |
|
637 |
uid.iUid ); |
|
638 |
||
639 |
Swi::RSisRegistryEntry package; |
|
640 |
if( package.Open( aSisRegSession, uid ) == KErrNone ) |
|
641 |
{ |
|
642 |
CleanupClosePushL( package ); |
|
643 |
isIncluded = IsFileIncludedInPackageL( aFile, package ); |
|
644 |
if( !isIncluded ) |
|
645 |
{ |
|
646 |
// Check other embedded packages recursively if necessary |
|
647 |
isIncluded = IsFileIncludedInEmbeddedPackagesL( aSisRegSession, aFile, package ); |
|
648 |
} |
|
649 |
CleanupStack::PopAndDestroy( &package ); |
|
650 |
} |
|
651 |
} |
|
652 |
CleanupStack::PopAndDestroy( &embeddedPackages ); |
|
653 |
||
654 |
FLOG_1( _L("CStartupListUpdater::IsFileIncludedInEmbeddedPackagesL, ret %d"), isIncluded ); |
|
655 |
return isIncluded; |
|
656 |
} |
|
657 |
||
658 |
// --------------------------------------------------------------------------- |
|
659 |
// CStartupListUpdater::IsExeFileIncludedInPackageL() |
|
660 |
// --------------------------------------------------------------------------- |
|
661 |
// |
|
662 |
TBool CStartupListUpdater::IsExeFileIncludedInPackageL( |
|
663 |
Swi::RSisRegistrySession& aSisRegSession, |
|
664 |
const TDesC& aExeFile, const TUid& aPackageUid ) |
|
665 |
{ |
|
666 |
FLOG_1( _L("CStartupListUpdater::IsExeFileIncludedInPackageL, begin, file %S"), &aExeFile ); |
|
667 |
TBool isIncluded = EFalse; |
|
668 |
||
669 |
Swi::RSisRegistryEntry package; |
|
670 |
CleanupClosePushL( package ); |
|
671 |
TInt openError = package.Open( aSisRegSession, aPackageUid ); |
|
672 |
if( !openError ) |
|
673 |
{ |
|
674 |
isIncluded = IsFileIncludedInPackageL( aExeFile, package ) || |
|
675 |
IsFileIncludedInEmbeddedPackagesL( aSisRegSession, aExeFile, package ); |
|
676 |
if( !isIncluded ) |
|
677 |
{ |
|
678 |
DevTrace( _L("Error: exe not installed by this package or it's subpackages") ); |
|
679 |
} |
|
680 |
} |
|
681 |
CleanupStack::PopAndDestroy( &package ); |
|
682 |
||
683 |
FLOG_1( _L("CStartupListUpdater::IsExeFileIncludedInPackageL, return %d"), isIncluded ); |
|
684 |
return isIncluded; |
|
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
685 |
} |
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
686 |
|
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
687 |
// --------------------------------------------------------------------------- |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
688 |
// CStartupListUpdater::GetInstalledAppsL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
689 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
690 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
691 |
void CStartupListUpdater::GetInstalledAppsL( |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
692 |
RPointerArray<HBufC>& aInstalledExecutableArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
693 |
{ |
80 | 694 |
FLOG( _L("CStartupListUpdater::GetInstalledAppsL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
695 |
Swi::RSisRegistrySession sisRegistrySession; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
696 |
User::LeaveIfError( sisRegistrySession.Connect() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
697 |
CleanupClosePushL( sisRegistrySession ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
698 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
699 |
RPointerArray<Swi::CSisRegistryPackage> removablePackages; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
700 |
CleanupResetAndDestroyPushL( removablePackages ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
701 |
sisRegistrySession.RemovablePackagesL( removablePackages ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
702 |
|
80 | 703 |
TInt removablePackagesCount = removablePackages.Count(); |
704 |
FLOG_1( _L("CStartupListUpdater::GetInstalledAppsL, removablePackagesCount %d"), |
|
705 |
removablePackagesCount ); |
|
706 |
for( TInt index = 0; index < removablePackagesCount; ++index ) |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
707 |
{ |
80 | 708 |
FLOG_1( _L("CStartupListUpdater::GetInstalledAppsL, index %d"), index ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
709 |
Swi::RSisRegistryEntry entry; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
710 |
CleanupClosePushL( entry ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
711 |
entry.OpenL( sisRegistrySession, *( removablePackages[ index ] ) ); |
37
6e7b00453237
Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
33
diff
changeset
|
712 |
if( entry.RemovableL() ) |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
713 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
714 |
GetExecutablesFromEntryL( entry, aInstalledExecutableArray ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
715 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
716 |
CleanupStack::PopAndDestroy( &entry ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
717 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
718 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
719 |
CleanupStack::PopAndDestroy( 2, &sisRegistrySession ); |
80 | 720 |
FLOG( _L("CStartupListUpdater::GetInstalledAppsL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
721 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
722 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
723 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
724 |
// CStartupListUpdater::GetStartupListAppsL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
725 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
726 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
727 |
void CStartupListUpdater::GetStartupListAppsL( RDscStore& aDscStore, |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
728 |
RPointerArray<HBufC>& aStartedExecutableArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
729 |
{ |
80 | 730 |
FLOG( _L("CStartupListUpdater::GetStartupListAppsL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
731 |
aDscStore.EnumOpenLC(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
732 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
733 |
while( CDscItem* item = aDscStore.EnumReadNextL() ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
734 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
735 |
CleanupStack::PushL( item ); |
80 | 736 |
TPtrC fileName( item->FileName() ); |
737 |
FLOG_1( _L("CStartupListUpdater::GetStartupListAppsL, fileName %S"), &fileName ); |
|
738 |
aStartedExecutableArray.AppendL( fileName.AllocL() ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
739 |
CleanupStack::PopAndDestroy( item ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
740 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
741 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
742 |
CleanupStack::PopAndDestroy(); // runs EnumClose |
80 | 743 |
FLOG( _L("CStartupListUpdater::GetStartupListAppsL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
744 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
745 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
746 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
747 |
// CStartupListUpdater::StartedButNotInstalledAppsL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
748 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
749 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
750 |
void CStartupListUpdater::StartedButNotInstalledAppsL( |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
751 |
RPointerArray<HBufC>& aStartedExecutableArray, // in |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
752 |
RPointerArray<HBufC>& aInstalledExecutableArray, // in |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
753 |
RPointerArray<HBufC>& aStartedButNotInstalledExecutableArray ) // out |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
754 |
{ |
80 | 755 |
FLOG( _L("CStartupListUpdater::StartedButNotInstalledAppsL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
756 |
aStartedButNotInstalledExecutableArray.ResetAndDestroy(); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
757 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
758 |
TIdentityRelation<HBufC> identityRelation( FileNamesEqual ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
759 |
for( TInt index = 0; index < aStartedExecutableArray.Count(); ++index ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
760 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
761 |
const HBufC* startedAppName = aStartedExecutableArray[ index ]; |
80 | 762 |
FLOG_1( _L("CStartupListUpdater::StartedButNotInstalledAppsL, startedAppName %S"), |
763 |
startedAppName ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
764 |
if( aInstalledExecutableArray.Find( startedAppName, identityRelation ) == KErrNotFound ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
765 |
{ |
80 | 766 |
FLOG( _L("CStartupListUpdater::StartedButNotInstalledAppsL, adding to array") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
767 |
aStartedButNotInstalledExecutableArray.AppendL( startedAppName->AllocL() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
768 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
769 |
} |
80 | 770 |
FLOG( _L("CStartupListUpdater::StartedButNotInstalledAppsL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
771 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
772 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
773 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
774 |
// CStartupListUpdater::RemoveFromStartupListL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
775 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
776 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
777 |
void CStartupListUpdater::RemoveFromStartupListL( RDscStore& aDscStore, |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
778 |
RPointerArray<HBufC>& aExecutableArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
779 |
{ |
80 | 780 |
FLOG( _L("CStartupListUpdater::RemoveFromStartupListL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
781 |
for( TInt index = 0; index < aExecutableArray.Count(); ++index ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
782 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
783 |
const TDesC& executableName = *( aExecutableArray[ index ] ); |
80 | 784 |
FLOG_1( _L("CStartupListUpdater::RemoveFromStartupListL, executableName %S"), |
785 |
&executableName ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
786 |
CDscItem* item = CDscItem::NewLC( executableName, KNullDesC ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
787 |
if( aDscStore.ItemExistsL( *item ) ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
788 |
{ |
80 | 789 |
FLOG( _L("CStartupListUpdater::RemoveFromStartupListL, removing from DscStore") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
790 |
aDscStore.DeleteItemL( *item ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
791 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
792 |
CleanupStack::PopAndDestroy( item ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
793 |
} |
80 | 794 |
FLOG( _L("CStartupListUpdater::RemoveFromStartupListL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
795 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
796 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
797 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
798 |
// CStartupListUpdater::GetExecutablesFromEntryL() |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
799 |
// --------------------------------------------------------------------------- |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
800 |
// |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
801 |
void CStartupListUpdater::GetExecutablesFromEntryL( Swi::RSisRegistryEntry& aEntry, |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
802 |
RPointerArray<HBufC>& aExecutableArray ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
803 |
{ |
80 | 804 |
FLOG( _L("CStartupListUpdater::GetExecutablesFromEntryL, begin") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
805 |
RPointerArray<HBufC> filesList; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
806 |
CleanupResetAndDestroyPushL( filesList ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
807 |
aEntry.FilesL( filesList ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
808 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
809 |
for( TInt index = 0; index < filesList.Count(); ++index ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
810 |
{ |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
811 |
TParse parse; |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
812 |
TInt err = parse.SetNoWild( KNullDesC, filesList[ index ], NULL ); |
80 | 813 |
FLOG_3( _L("CStartupListUpdater::GetExecutablesFromEntryL, index %d, parse %S, err %d"), |
814 |
index, &(parse.FullName()), err ); |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
815 |
if( !err && ( parse.Ext().CompareF( KExecutableExtension ) == 0 ) ) |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
816 |
{ |
80 | 817 |
FLOG( _L("CStartupListUpdater::GetExecutablesFromEntryL, adding to array") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
818 |
aExecutableArray.AppendL( parse.FullName().AllocL() ); |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
819 |
} |
80 | 820 |
else |
821 |
{ |
|
822 |
FLOG( _L("CStartupListUpdater::GetExecutablesFromEntryL, skipped") ); |
|
823 |
} |
|
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
824 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
825 |
|
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
826 |
CleanupStack::PopAndDestroy( &filesList ); |
80 | 827 |
FLOG( _L("CStartupListUpdater::GetExecutablesFromEntryL, end") ); |
33
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
828 |
} |
8110bf1194d1
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
829 |
|
80 | 830 |
// --------------------------------------------------------------------------- |
831 |
// CStartupListUpdater::OpenDevTraceL() |
|
832 |
// --------------------------------------------------------------------------- |
|
833 |
// |
|
834 |
void CStartupListUpdater::OpenDevTraceL() |
|
835 |
{ |
|
836 |
if( !iLogBuf ) |
|
837 |
{ |
|
838 |
TEntry entry; |
|
839 |
if( iFs.Entry( KDevTraceDir, entry ) == KErrNone ) |
|
840 |
{ |
|
841 |
FLOG( _L("CStartupListUpdater::OpenDevTraceL, log dir exists") ); |
|
842 |
TFileName fileName; |
|
843 |
fileName.Copy( KDevTraceDir ); |
|
844 |
fileName.Append( KDevTraceFile ); |
|
845 |
if( iLogFile.Replace( iFs, fileName, EFileWrite ) == KErrNone ) |
|
846 |
{ |
|
847 |
iLogBuf = HBufC::NewL( KDevTraceBuffer ); |
|
848 |
iFileBuf.CreateL( KDevTraceBuffer ); |
|
849 |
FLOG( _L("CStartupListUpdater::OpenDevTraceL, log file opened") ); |
|
850 |
} |
|
851 |
} |
|
852 |
} |
|
853 |
} |
|
854 |
||
855 |
// --------------------------------------------------------------------------- |
|
856 |
// CStartupListUpdater::DevTrace() |
|
857 |
// --------------------------------------------------------------------------- |
|
858 |
// |
|
859 |
void CStartupListUpdater::DevTrace( TRefByValue<const TDesC> aFmt, ... ) |
|
860 |
{ |
|
861 |
if( iLogBuf ) |
|
862 |
{ |
|
863 |
VA_LIST list; |
|
864 |
VA_START( list, aFmt ); |
|
865 |
TPtr line( iLogBuf->Des() ); |
|
866 |
line.FormatList( aFmt, list ); |
|
867 |
FLOG_1( _L("CStartupListUpdater::DevTrace: %S"), iLogBuf ); |
|
868 |
||
869 |
const TChar KNewLine( '\n' ); |
|
870 |
line.Append( KNewLine ); |
|
871 |
iFileBuf.Copy( line ); |
|
872 |
iLogFile.Write( iFileBuf ); // return value ignored |
|
873 |
} |
|
874 |
} |
|
875 |