49 delete iWait; |
52 delete iWait; |
50 delete iDeviceDialog; |
53 delete iDeviceDialog; |
51 delete iVariantMap; |
54 delete iVariantMap; |
52 delete iBitmap; |
55 delete iBitmap; |
53 delete iSelectableDrives; |
56 delete iSelectableDrives; |
|
57 delete iCertificateInfo; |
54 } |
58 } |
55 |
59 |
56 // --------------------------------------------------------------------------- |
60 // --------------------------------------------------------------------------- |
57 // CSifUiPrivate::ShowConfirmationL() |
61 // CSifUiPrivate::ShowConfirmationL() |
58 // --------------------------------------------------------------------------- |
62 // --------------------------------------------------------------------------- |
59 // |
63 // |
60 TBool CSifUiPrivate::ShowConfirmationL( const Swi::CAppInfo& aAppInfo, |
64 TBool CSifUiPrivate::ShowConfirmationL( const CSifUiAppInfo& aAppInfo ) |
61 TInt aAppSize, const CApaMaskedBitmap* aAppIcon ) |
65 { |
62 { |
66 ChangeNoteTypeL( ESifUiConfirmationQuery ); |
63 ChangeNoteTypeL( ESifUiConfirmationQuery ); |
67 |
64 |
68 AddParamsAppInfoL( aAppInfo ); |
65 AddParamsAppInfoAndSizeL( aAppInfo, aAppSize ); |
69 if( iSelectableDrives ) |
66 if( aAppIcon ) |
70 { |
67 { |
71 AddParamL( KSifUiMemorySelection, *iSelectableDrives ); |
68 AddParamsIconL( aAppIcon ); |
72 } |
69 } |
73 if( iCertificateInfo ) |
70 if( iSelectableDrives ) |
74 { |
71 { |
75 User::LeaveIfError( VariantMapL()->Add( KSifUiCertificates, iCertificateInfo ) ); |
72 AddParamL( KSifUiMemorySelection, *iSelectableDrives ); |
76 iCertificateInfo = NULL; |
73 } |
77 } |
74 |
78 |
75 DisplayDeviceDialogL(); |
79 DisplayDeviceDialogL(); |
76 User::LeaveIfError( WaitForResponse() ); |
80 User::LeaveIfError( WaitForResponse() ); |
77 return( iReturnValue == KErrNone ); |
81 return( iReturnValue == KErrNone ); |
78 } |
82 } |
79 |
83 |
80 // --------------------------------------------------------------------------- |
84 // --------------------------------------------------------------------------- |
81 // CSifUiPrivate::SetMemorySelectionL() |
85 // CSifUiPrivate::SetMemorySelectionL() |
82 // --------------------------------------------------------------------------- |
86 // --------------------------------------------------------------------------- |
83 // |
87 // |
84 void CSifUiPrivate::SetMemorySelectionL( const RArray<TInt>& aDriveNumbers ) |
88 void CSifUiPrivate::SetMemorySelectionL( const RArray<TInt>& aDriveNumbers ) |
85 { |
89 { |
86 if( iSelectableDrives ) |
90 if( iSelectableDrives ) |
87 { |
91 { |
88 delete iSelectableDrives; |
92 delete iSelectableDrives; |
89 iSelectableDrives = NULL; |
93 iSelectableDrives = NULL; |
90 } |
94 } |
91 |
95 |
92 TInt driveCount = aDriveNumbers.Count(); |
96 TInt driveCount = aDriveNumbers.Count(); |
93 if( driveCount > 0 ) |
97 if( driveCount > 0 ) |
94 { |
98 { |
95 const TChar KComma = ','; |
99 const TChar KComma = ','; |
96 TBuf<KDriveLettersLen> driveList; |
100 TBuf<KDriveLettersLen> driveList; |
97 for( TInt index = 0; index < driveCount; ++index ) |
101 for( TInt index = 0; index < driveCount; ++index ) |
98 { |
102 { |
99 TChar driveLetter; |
103 TChar driveLetter; |
100 TInt err = RFs::DriveToChar( aDriveNumbers[ index ], driveLetter ); |
104 TInt err = RFs::DriveToChar( aDriveNumbers[ index ], driveLetter ); |
101 if( !err ) |
105 if( !err ) |
102 { |
106 { |
103 driveList.Append( driveLetter ); |
107 driveList.Append( driveLetter ); |
104 driveList.Append( KComma ); |
108 driveList.Append( KComma ); |
105 } |
109 } |
106 } |
110 } |
107 iSelectableDrives = driveList.AllocL(); |
111 iSelectableDrives = driveList.AllocL(); |
108 } |
112 } |
109 } |
113 } |
110 |
114 |
111 // --------------------------------------------------------------------------- |
115 // --------------------------------------------------------------------------- |
112 // CSifUiPrivate::SelectedDrive() |
116 // CSifUiPrivate::SelectedDrive() |
113 // --------------------------------------------------------------------------- |
117 // --------------------------------------------------------------------------- |
114 // |
118 // |
115 TInt CSifUiPrivate::SelectedDrive( TInt& aDriveNumber ) |
119 TInt CSifUiPrivate::SelectedDrive( TInt& aDriveNumber ) |
116 { |
120 { |
117 if( iSelectedDriveSet ) |
121 if( iSelectedDriveSet ) |
118 { |
122 { |
119 return RFs::CharToDrive( iSelectedDrive, aDriveNumber ); |
123 return RFs::CharToDrive( iSelectedDrive, aDriveNumber ); |
120 } |
124 } |
121 return KErrNotFound; |
125 return KErrNotFound; |
122 } |
126 } |
123 |
127 |
124 // --------------------------------------------------------------------------- |
128 // --------------------------------------------------------------------------- |
125 // CSifUiPrivate::SetCertificateInfoL() |
129 // CSifUiPrivate::SetCertificateInfoL() |
126 // --------------------------------------------------------------------------- |
130 // --------------------------------------------------------------------------- |
127 // |
131 // |
128 void CSifUiPrivate::SetCertificateInfoL( |
132 void CSifUiPrivate::SetCertificateInfoL( |
129 const RPointerArray<Swi::CCertificateInfo>& aCertificates ) |
133 const RPointerArray<CSifUiCertificateInfo>& aCertificates ) |
130 { |
134 { |
131 if( aCertificates.Count() ) |
135 if( iCertificateInfo ) |
132 { |
136 { |
133 AddParamsCertificatesL( aCertificates ); |
137 delete iCertificateInfo; |
134 } |
138 iCertificateInfo = NULL; |
135 } |
139 } |
|
140 if( aCertificates.Count() ) |
|
141 { |
|
142 CBufBase* buf = CBufFlat::NewL( KCertificateBufferGranularity ); |
|
143 CleanupStack::PushL( buf ); |
|
144 RBufWriteStream writeStream( *buf ); |
|
145 CleanupClosePushL( writeStream ); |
|
146 |
|
147 TInt32 count = aCertificates.Count(); |
|
148 writeStream.WriteInt32L( count ); |
|
149 for( TInt index = 0; index < count; ++index ) |
|
150 { |
|
151 aCertificates[ index ]->ExternalizeL( writeStream ); |
|
152 } |
|
153 |
|
154 const TPtrC8 dataPtr( buf->Ptr( 0 ).Ptr(), buf->Size() ); |
|
155 iCertificateInfo = CHbSymbianVariant::NewL( &dataPtr, CHbSymbianVariant::EBinary ); |
|
156 |
|
157 CleanupStack::PopAndDestroy( 2, buf ); // writeStream, buf |
|
158 } |
|
159 } |
136 |
160 |
137 // --------------------------------------------------------------------------- |
161 // --------------------------------------------------------------------------- |
138 // CSifUiPrivate::ShowProgressL() |
162 // CSifUiPrivate::ShowProgressL() |
139 // --------------------------------------------------------------------------- |
163 // --------------------------------------------------------------------------- |
140 // |
164 // |
141 void CSifUiPrivate::ShowProgressL( const Swi::CAppInfo& aAppInfo, |
165 void CSifUiPrivate::ShowProgressL( const CSifUiAppInfo& aAppInfo, |
142 TInt aAppSize, TInt aProgressBarFinalValue ) |
166 TInt aProgressBarFinalValue ) |
143 { |
167 { |
144 ChangeNoteTypeL( ESifUiProgressNote ); |
168 ChangeNoteTypeL( ESifUiProgressNote ); |
145 |
169 |
146 AddParamsAppInfoAndSizeL( aAppInfo, aAppSize ); |
170 AddParamsAppInfoL( aAppInfo ); |
147 AddParamL( KSifUiProgressNoteFinalValue, aProgressBarFinalValue ); |
171 AddParamL( KSifUiProgressNoteFinalValue, aProgressBarFinalValue ); |
148 |
172 |
149 DisplayDeviceDialogL(); |
173 DisplayDeviceDialogL(); |
150 } |
174 } |
151 |
175 |
275 iWait = new( ELeave ) CActiveSchedulerWait; |
300 iWait = new( ELeave ) CActiveSchedulerWait; |
276 // iDeviceDialog is allocated later, first call of DisplayDeviceDialogL() |
301 // iDeviceDialog is allocated later, first call of DisplayDeviceDialogL() |
277 } |
302 } |
278 |
303 |
279 // --------------------------------------------------------------------------- |
304 // --------------------------------------------------------------------------- |
280 // CSifUiPrivate::ClearParamsL() |
305 // CSifUiPrivate::ClearParams() |
281 // --------------------------------------------------------------------------- |
306 // --------------------------------------------------------------------------- |
282 // |
307 // |
283 void CSifUiPrivate::ClearParamsL() |
308 void CSifUiPrivate::ClearParams() |
284 { |
309 { |
285 if( iVariantMap ) |
310 if( iVariantMap ) |
286 { |
311 { |
287 delete iVariantMap; |
312 delete iVariantMap; |
288 iVariantMap = NULL; |
313 iVariantMap = NULL; |
289 } |
314 } |
290 iVariantMap = CHbSymbianVariantMap::NewL(); |
315 } |
|
316 |
|
317 // --------------------------------------------------------------------------- |
|
318 // CSifUiPrivate::VariantMapL() |
|
319 // --------------------------------------------------------------------------- |
|
320 // |
|
321 CHbSymbianVariantMap* CSifUiPrivate::VariantMapL() |
|
322 { |
|
323 if( !iVariantMap ) |
|
324 { |
|
325 iVariantMap = CHbSymbianVariantMap::NewL(); |
|
326 } |
|
327 return iVariantMap; |
291 } |
328 } |
292 |
329 |
293 // --------------------------------------------------------------------------- |
330 // --------------------------------------------------------------------------- |
294 // CSifUiPrivate::ChangeNoteTypeL() |
331 // CSifUiPrivate::ChangeNoteTypeL() |
295 // --------------------------------------------------------------------------- |
332 // --------------------------------------------------------------------------- |
296 // |
333 // |
297 void CSifUiPrivate::ChangeNoteTypeL( TInt aType ) |
334 void CSifUiPrivate::ChangeNoteTypeL( TInt aType ) |
298 { |
335 { |
299 ClearParamsL(); |
336 ClearParams(); |
300 AddParamL( KSifUiDialogType, aType ); |
337 AddParamL( KSifUiDialogType, aType ); |
301 } |
338 } |
302 |
339 |
303 // --------------------------------------------------------------------------- |
340 // --------------------------------------------------------------------------- |
304 // CSifUiPrivate::AddParamL() |
341 // CSifUiPrivate::AddParamL() |
306 // |
343 // |
307 void CSifUiPrivate::AddParamL( const TDesC& aKey, TInt aValue ) |
344 void CSifUiPrivate::AddParamL( const TDesC& aKey, TInt aValue ) |
308 { |
345 { |
309 CHbSymbianVariant* variant = NULL; |
346 CHbSymbianVariant* variant = NULL; |
310 variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EInt ); |
347 variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EInt ); |
311 iVariantMap->Add( aKey, variant ); |
348 User::LeaveIfError( VariantMapL()->Add( aKey, variant ) ); |
312 } |
349 } |
313 |
350 |
314 // --------------------------------------------------------------------------- |
351 // --------------------------------------------------------------------------- |
315 // CSifUiPrivate::AddParamL() |
352 // CSifUiPrivate::AddParamL() |
316 // --------------------------------------------------------------------------- |
353 // --------------------------------------------------------------------------- |
317 // |
354 // |
318 void CSifUiPrivate::AddParamL( const TDesC& aKey, const TDesC& aValue ) |
355 void CSifUiPrivate::AddParamL( const TDesC& aKey, const TDesC& aValue ) |
319 { |
356 { |
320 CHbSymbianVariant* variant = NULL; |
357 CHbSymbianVariant* variant = NULL; |
321 variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EDes ); |
358 variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EDes ); |
322 iVariantMap->Add( aKey, variant ); |
359 User::LeaveIfError( VariantMapL()->Add( aKey, variant ) ); |
323 } |
360 } |
324 |
361 |
325 // --------------------------------------------------------------------------- |
362 // --------------------------------------------------------------------------- |
326 // CSifUiPrivate::AddParamListL() |
363 // CSifUiPrivate::AddParamListL() |
327 // --------------------------------------------------------------------------- |
364 // --------------------------------------------------------------------------- |
328 // |
365 // |
329 void CSifUiPrivate::AddParamListL( const TDesC& aKey, const MDesCArray& aList ) |
366 void CSifUiPrivate::AddParamListL( const TDesC& aKey, const MDesCArray& aList ) |
330 { |
367 { |
331 CHbSymbianVariant* variant = NULL; |
368 CHbSymbianVariant* variant = NULL; |
332 variant = CHbSymbianVariant::NewL( &aList, CHbSymbianVariant::EDesArray ); |
369 variant = CHbSymbianVariant::NewL( &aList, CHbSymbianVariant::EDesArray ); |
333 iVariantMap->Add( aKey, variant ); |
370 User::LeaveIfError( VariantMapL()->Add( aKey, variant ) ); |
334 } |
371 } |
335 |
372 |
336 // --------------------------------------------------------------------------- |
373 // --------------------------------------------------------------------------- |
337 // CSifUiPrivate::AddParamsAppInfoAndSizeL() |
374 // CSifUiPrivate::AddParamsAppInfoL() |
338 // --------------------------------------------------------------------------- |
375 // --------------------------------------------------------------------------- |
339 // |
376 // |
340 void CSifUiPrivate::AddParamsAppInfoAndSizeL( const Swi::CAppInfo& aAppInfo, TInt aAppSize ) |
377 void CSifUiPrivate::AddParamsAppInfoL( const CSifUiAppInfo& aAppInfo ) |
341 { |
378 { |
342 AddParamL( KSifUiApplicationName, aAppInfo.AppName() ); |
379 // TODO: icons missing, could use binary transfer as in certificates |
343 const TVersion& version( aAppInfo.AppVersion() ); |
380 AddParamL( KSifUiApplicationName, aAppInfo.Name() ); |
|
381 const TVersion& version( aAppInfo.Version() ); |
344 if( version.iBuild || version.iMajor || version.iMinor ) |
382 if( version.iBuild || version.iMajor || version.iMinor ) |
345 { |
383 { |
346 AddParamL( KSifUiApplicationVersion, version.Name() ); |
384 AddParamL( KSifUiApplicationVersion, version.Name() ); |
347 } |
385 } |
348 if( aAppInfo.AppVendor().Length() ) |
386 if( aAppInfo.Vendor().Length() ) |
349 { |
387 { |
350 AddParamL( KSifUiApplicationDetails, aAppInfo.AppVendor() ); |
388 AddParamL( KSifUiApplicationDetails, aAppInfo.Vendor() ); |
351 } |
389 } |
352 if( aAppSize > 0 ) |
390 if( aAppInfo.Size() > 0 ) |
353 { |
391 { |
354 AddParamL( KSifUiApplicationSize, aAppSize ); |
392 AddParamL( KSifUiApplicationSize, aAppInfo.Size() ); |
355 } |
393 } |
356 } |
394 } |
357 |
395 |
358 // --------------------------------------------------------------------------- |
396 // --------------------------------------------------------------------------- |
359 // CSifUiPrivate::AddParamsIconL() |
397 // CSifUiPrivate::AddParamsIconL() |
360 // --------------------------------------------------------------------------- |
398 // --------------------------------------------------------------------------- |
361 // |
399 // |
362 void CSifUiPrivate::AddParamsIconL( const CApaMaskedBitmap* aIcon ) |
400 void CSifUiPrivate::AddParamsIconL( const CApaMaskedBitmap* aIcon ) |
363 { |
401 { |
|
402 // TODO: remove this function |
364 if( aIcon ) |
403 if( aIcon ) |
365 { |
404 { |
366 if( iBitmap ) |
405 if( iBitmap ) |
367 { |
406 { |
368 delete iBitmap; |
407 delete iBitmap; |
369 iBitmap = NULL; |
408 iBitmap = NULL; |
370 } |
409 } |
371 iBitmap = CApaMaskedBitmap::NewL( aIcon ); |
410 iBitmap = CApaMaskedBitmap::NewL( aIcon ); |
372 |
411 |
|
412 CHbSymbianVariantMap* map = VariantMapL(); |
373 CHbSymbianVariant* variant = NULL; |
413 CHbSymbianVariant* variant = NULL; |
374 TInt bitmapHandle = iBitmap->Handle(); |
414 TInt bitmapHandle = iBitmap->Handle(); |
375 variant = CHbSymbianVariant::NewL( &bitmapHandle, CHbSymbianVariant::EInt ); |
415 variant = CHbSymbianVariant::NewL( &bitmapHandle, CHbSymbianVariant::EInt ); |
376 iVariantMap->Add( KSifUiApplicationIconHandle, variant ); |
416 User::LeaveIfError( map->Add( KSifUiApplicationIconHandle, variant ) ); |
377 TInt bitmapMaskHandle = iBitmap->Mask()->Handle(); |
417 TInt bitmapMaskHandle = iBitmap->Mask()->Handle(); |
378 variant = CHbSymbianVariant::NewL( &bitmapMaskHandle, CHbSymbianVariant::EInt ); |
418 variant = CHbSymbianVariant::NewL( &bitmapMaskHandle, CHbSymbianVariant::EInt ); |
379 iVariantMap->Add( KSifUiApplicationIconMaskHandle, variant ); |
419 User::LeaveIfError( map->Add( KSifUiApplicationIconMaskHandle, variant ) ); |
380 } |
420 } |
381 } |
|
382 |
|
383 // --------------------------------------------------------------------------- |
|
384 // CSifUiPrivate::AddParamsCertificatesL() |
|
385 // --------------------------------------------------------------------------- |
|
386 // |
|
387 void CSifUiPrivate::AddParamsCertificatesL( const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ ) |
|
388 { |
|
389 // TODO: implement |
|
390 } |
421 } |
391 |
422 |
392 // --------------------------------------------------------------------------- |
423 // --------------------------------------------------------------------------- |
393 // CSifUiPrivate::DisplayDeviceDialogL() |
424 // CSifUiPrivate::DisplayDeviceDialogL() |
394 // --------------------------------------------------------------------------- |
425 // --------------------------------------------------------------------------- |
395 // |
426 // |
396 void CSifUiPrivate::DisplayDeviceDialogL() |
427 void CSifUiPrivate::DisplayDeviceDialogL() |
397 { |
428 { |
398 if( iDeviceDialog && iIsDisplayingDialog ) |
429 if( iDeviceDialog && iIsDisplayingDialog ) |
399 { |
430 { |
400 iDeviceDialog->Update( *iVariantMap ); |
431 User::LeaveIfError( iDeviceDialog->Update( *VariantMapL() ) ); |
401 } |
432 } |
402 else |
433 else |
403 { |
434 { |
404 if( !iDeviceDialog ) |
435 if( !iDeviceDialog ) |
405 { |
436 { |
406 iDeviceDialog = CHbDeviceDialogSymbian::NewL(); |
437 iDeviceDialog = CHbDeviceDialogSymbian::NewL(); |
407 } |
438 } |
408 iDeviceDialog->Show( KSifUiDeviceDialog, *iVariantMap, this ); |
439 User::LeaveIfError( iDeviceDialog->Show( KSifUiDeviceDialog, *VariantMapL(), this ) ); |
409 iIsDisplayingDialog = ETrue; |
440 iIsDisplayingDialog = ETrue; |
410 } |
441 } |
411 } |
442 } |
412 |
443 |
413 // --------------------------------------------------------------------------- |
444 // --------------------------------------------------------------------------- |