295 // Use DRMUtility for DRM check. Utility class is much faster then |
295 // Use DRMUtility for DRM check. Utility class is much faster then |
296 // IsDRMProtected function. |
296 // IsDRMProtected function. |
297 DRM::CDrmUtility* utility = DRM::CDrmUtility::NewLC(); |
297 DRM::CDrmUtility* utility = DRM::CDrmUtility::NewLC(); |
298 |
298 |
299 for ( TInt fileIndex = 0; fileIndex < files.Count(); fileIndex++ ) |
299 for ( TInt fileIndex = 0; fileIndex < files.Count(); fileIndex++ ) |
300 { |
300 { |
|
301 #ifdef _DEBUG |
|
302 HBufC* tempName = files[ fileIndex ]; |
|
303 FLOG( "CAppMngr2SisxAppInfo::ConstructL, File name: %S", tempName ); |
|
304 #endif |
301 RFile fileHandle; |
305 RFile fileHandle; |
302 TInt error = fileHandle.Open( iFs, *files[ fileIndex ], EFileRead ); |
306 TInt error = fileHandle.Open( iFs, *files[ fileIndex ], EFileRead ); |
303 FLOG( "CAppMngr2SisxAppInfo::ConstructL, File open error %d", |
307 FLOG( "CAppMngr2SisxAppInfo::ConstructL, File open error %d", |
304 error ); |
308 error ); |
305 |
309 |
306 if ( error == KErrNone ) |
310 if ( error == KErrNone ) |
307 { |
311 { |
308 CleanupClosePushL( fileHandle ); |
312 CleanupClosePushL( fileHandle ); |
|
313 TInt err = KErrNone; |
|
314 // We need to tarp this function since it may leave with some |
|
315 // files which do not have enough data. If ConstrucL leaves |
|
316 // package is not shown in UI. |
|
317 TRAP( err, iIsDRMProtected = utility->IsProtectedL( fileHandle ) ); |
|
318 |
|
319 if ( err ) |
|
320 { |
|
321 // If we have leave let's handle this as not DRM procteded. |
|
322 iIsDRMProtected = EFalse; |
|
323 FLOG( "CAppMngr2SisxAppInfo, IsProtectedL error: %d", err ); |
|
324 } |
309 |
325 |
310 iIsDRMProtected = utility->IsProtectedL( fileHandle ); |
|
311 |
|
312 CleanupStack::PopAndDestroy( &fileHandle ); |
326 CleanupStack::PopAndDestroy( &fileHandle ); |
313 |
327 |
314 if ( iIsDRMProtected ) |
328 if ( iIsDRMProtected ) |
315 { |
329 { |
316 HBufC* fileName = files[ fileIndex ]; |
330 FLOG( "CAppMngr2SisxAppInfo: File is DRM protected" ); |
317 FLOG( "CAppMngr2SisxAppInfo::ConstructL, iProtectedFile %S", |
331 |
318 fileName ); |
332 HBufC* fileName = files[ fileIndex ]; |
319 |
|
320 iProtectedFile = fileName; // takes ownership |
333 iProtectedFile = fileName; // takes ownership |
321 files.Remove( fileIndex ); |
334 files.Remove( fileIndex ); |
322 |
335 |
323 CDRMHelper* helper = CDRMHelper::NewLC(); |
336 CDRMHelper* helper = CDRMHelper::NewLC(); |
324 CDRMHelperRightsConstraints* playconst = NULL; |
337 CDRMHelperRightsConstraints* playconst = NULL; |
325 CDRMHelperRightsConstraints* dispconst = NULL; |
338 CDRMHelperRightsConstraints* dispconst = NULL; |
326 CDRMHelperRightsConstraints* execconst = NULL; |
339 CDRMHelperRightsConstraints* execconst = NULL; |
327 CDRMHelperRightsConstraints* printconst = NULL; |
340 CDRMHelperRightsConstraints* printconst = NULL; |
328 TBool sendingallowed = EFalse; |
341 TBool sendingallowed = EFalse; |
329 |
342 |
330 FLOG( "CAppMngr2SisxAppInfo::ConstructL: GetRightsDetailsL" ); |
343 FLOG( "CAppMngr2SisxAppInfo: GetRightsDetailsL" ); |
331 error = KErrNone; |
344 error = KErrNone; |
332 TRAP( error, helper->GetRightsDetailsL( *fileName, |
345 TRAP( error, helper->GetRightsDetailsL( *fileName, |
333 ContentAccess::EView, |
346 ContentAccess::EView, |
334 iIsRightsObjectMissingOrExpired, |
347 iIsRightsObjectMissingOrExpired, |
335 sendingallowed, |
348 sendingallowed, |