--- a/omadrm/drmplugins/drmrohandler/src/CRoHandler.cpp Tue Apr 27 16:56:11 2010 +0300
+++ b/omadrm/drmplugins/drmrohandler/src/CRoHandler.cpp Tue May 11 16:28:38 2010 +0300
@@ -42,6 +42,7 @@
#include <PushMtmUi.rsg> // for R_PUSHMISC_UNK_SENDER
#include <RoHandler.rsg> // for R_QTN_DRM_MGR_INB_TITLE
#include <sysutil.h> // Disk space checking
+#include <featmgr.h> // Feature Manager
#include "CRoHandler.h"
#include "RoMtmCli.h" // for CRightsObjectMtmClient
@@ -398,7 +399,7 @@
)
: CPushHandlerBase(),
iFirstTime( ETrue ), iPushMsg( NULL ), iMsvId( NULL ),
- iPutRightsToInbox( ETrue )
+ iPutRightsToInbox( ETrue ), iFeatureManagerFound( EFalse )
{
}
@@ -428,7 +429,14 @@
CRepository* repository( NULL );
TInt err( KErrNone );
+ TInt ret( KErrNone );
+ TRAP( ret, FeatureManager::InitializeLibL() );
+ if ( !ret )
+ {
+ iFeatureManagerFound = ETrue;
+ }
+
User::LeaveIfError( iFs.Connect() );
// create drm
@@ -510,7 +518,12 @@
// session must be deleted last (and constructed first)
delete iSession;
-
+
+ if ( iFeatureManagerFound )
+ {
+ FeatureManager::UnInitializeLib();
+ }
+
#ifdef _DRM_TESTING
TRAP( r, WriteL( _L8( "~CRoHandler-End" ) ) );
#endif
@@ -657,26 +670,36 @@
{
case EOma1Ro:
{
- HandleRightsMessageL();
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm1FullSupport ) )
+ {
+ HandleRightsMessageL();
+ }
break;
}
#ifdef __DRM_OMA2
case EOma2RoapTrigger:
case EOma2RoapTriggerRoAcquisition:
- {
- HandleRoapTriggerL();
- break;
- }
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm2Support ) )
+ {
+ HandleRoapTriggerL();
+ }
+ break;
case EOma2RoapTriggerMetering:
- {
- HandleMeteringTriggerSilentlyL();
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm2Support ) )
+ {
+ HandleMeteringTriggerSilentlyL();
+ }
break;
- }
case EOma2RoapPdu:
- {
- HandleRoapPduL();
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm2Support ) )
+ {
+ HandleRoapPduL();
+ }
break;
- }
#endif
default:
{
@@ -1400,22 +1423,30 @@
switch( iMsgType )
{
case EOma1Ro:
- {
- HandleRightsMessageL();
+ {
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm1FullSupport ) )
+ {
+ HandleRightsMessageL();
+ }
break;
}
#ifdef __DRM_OMA2
case EOma2RoapTrigger:
case EOma2RoapTriggerRoAcquisition:
- {
- HandleRoapTriggerL();
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm2Support ) )
+ {
+ HandleRoapTriggerL();
+ }
break;
- }
case EOma2RoapPdu:
- {
- HandleRoapPduL();
+ if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
+ KFeatureIdFfOmadrm2Support ) )
+ {
+ HandleRoapPduL();
+ }
break;
- }
#endif
default:
{