diff -r 1481bf457703 -r 00671737faf2 commondrm/drmutility/src/drmutilitywmdrmwrapper.cpp --- a/commondrm/drmutility/src/drmutilitywmdrmwrapper.cpp Wed Sep 01 12:21:16 2010 +0100 +++ b/commondrm/drmutility/src/drmutilitywmdrmwrapper.cpp Tue Sep 14 21:50:40 2010 +0300 @@ -276,7 +276,7 @@ if ( !value ) { - ShowNoRightsNoteL( aContent, reason ); + ShowNoRightsNoteL( aContent, reason, aOperationId, aObserver ); User::LeaveIfError( aContent.GetAttribute( ContentAccess::ECanPlay, value ) ); if ( value ) { @@ -500,7 +500,7 @@ { case DRM::EUHCheckRightsActionDefault: { - ShowNoRightsNoteL( aContent, aReason ); + ShowNoRightsNoteL( aContent, aReason, aOperationId, aObserver ); } break; @@ -558,8 +558,11 @@ // void DRM::CDrmUtilityWMDrmWrapper::ShowNoRightsNoteL( ContentAccess::CData& aContent, - TUint32 /*aReason*/ ) + TUint32 /*aReason*/, + TInt aOperationId, + DRM::MDrmHandleErrorObserver* aObserver ) { + TInt value; TRAPD( err, LoadDlaWrapperL() ); if ( !err ) { @@ -589,6 +592,14 @@ if ( !err && ( ret == EAknSoftkeyYes || ret == EAknSoftkeyOk ) && iWmDrmDlaSupportOn) { TRAP_IGNORE( DlaLicenseAcquisitionL( file ) ); + + // Ask the rights from CAF, same call for both ECanPlay and ECanView + aContent.GetAttribute( ContentAccess::ECanPlay, value ); + // call given HandleErrorObserver + if( value > 0 ) + { + aObserver->RightsAvailable( aOperationId, KErrNone ); + } } CleanupStack::PopAndDestroy( &file ); }