usbengines/usbwatcher/src/cusbwatcher.cpp
branchRCL_3
changeset 7 ff9df6630274
parent 6 a15c582fbf97
child 22 5b2a402e96ac
--- a/usbengines/usbwatcher/src/cusbwatcher.cpp	Fri Mar 12 15:48:40 2010 +0200
+++ b/usbengines/usbwatcher/src/cusbwatcher.cpp	Mon Mar 15 12:44:42 2010 +0200
@@ -26,6 +26,7 @@
 #include <UsbWatcherInternalPSKeys.h>
 #include <e32property.h>
 #include <startupdomainpskeys.h> //for global system state
+#include <featmgr.h> //FeatureManager
 
 #include "cusbwatcher.h"
 #include "cusbactivestate.h"
@@ -1007,9 +1008,28 @@
 TInt CUsbWatcher::GetChargingPersonalityId( TInt& aPersonalityId )
     {
     LOG_FUNC
+    
+    TUint32 chargingKey( KUsbWatcherChargingDefaultPersonality );
+    // Check if it is now in certificate test mode
+    TRAPD(ret, FeatureManager::InitializeLibL());
+    LOG1( "FeatureManager::InitializeLibL(): %d", ret );
+    if ( KErrNone == ret )
+        {
+        if( FeatureManager::FeatureSupported(
+             KFeatureIdEnableIsiCommunicationInUsbChargingMode  ) )
+            {
+            chargingKey = KUsbWatcherCertTestChargingPersonality;
+            LOG( "KFeatureIdEnableIsiCommunicationInUsbChargingMode true" );
+            }
+        else
+            {
+            LOG( "KFeatureIdEnableIsiCommunicationInUsbChargingMode false" );
+            }
+        FeatureManager::UnInitializeLib();
+        }
 
-    TInt ret = iPersonalityRepository->Get(
-            KUsbWatcherChargingDefaultPersonality, aPersonalityId );
+    ret = iPersonalityRepository->Get( chargingKey, aPersonalityId );
+    LOG2( "ret = %d ( aPersonalityId: %d )", ret, aPersonalityId );
     return ret;
     }