syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp
branchRCL_3
changeset 65 5cc2995847ea
parent 62 19bba8228ff0
child 76 3cdbd92ee07b
--- a/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp	Wed Sep 01 12:27:42 2010 +0100
+++ b/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp	Tue Sep 14 22:54:36 2010 +0300
@@ -23,7 +23,7 @@
 #include <cdbcols.h>			 // CommsDB columname defs
 #include <stringresourcereader.h>
 #include <barsread.h>
-#include <NSmlDMProvisioningAdapter.rsg>
+#include <nsmldmprovisioningadapter.rsg>
 #include <f32file.h>
 #include <bautils.h>
 #include <ApUtils.h>
@@ -38,8 +38,9 @@
 #include <NSmlPrivateAPI.h>
 #include "NSmlDmProvisioningAdapter.h"
 #include "NSmlTransportHandler.h"
-
 #include <data_caging_path_literals.hrh>
+#include "ProvisioningInternalCRKeys.h"
+#include <centralrepository.h>
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -132,8 +133,24 @@
 // -----------------------------------------------------------------------------
 TInt CNSmlDmProvisioningAdapter::ItemCount() const
 	{
-	return iProfiles.Count();
-	}
+		  
+	  CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV );	       
+	  TInt adapterCount( 0 );	  
+		TInt getErr = repository->Get( KOMAProvCriticalAdapterSettingCount, adapterCount);
+		if(getErr != KErrNone)
+    	{
+        _DBG_FILE("CWPMessage::ProcessL: get KOMAProvCriticalAdapterSettingCount Failed" );
+      }	
+    TInt criticalAdapterSettingCount =   adapterCount +  iProfiles.Count();    	
+    
+    TInt setErr = repository->Set(KOMAProvCriticalAdapterSettingCount, criticalAdapterSettingCount);      
+    if(setErr != KErrNone)
+      {
+    		_DBG_FILE("CNSmlDmProvisioningAdapter::ItemCount(): set KOMAProvCriticalAdapterSettingCount failed");
+    	}
+    CleanupStack::PopAndDestroy(); // repository         
+	  return iProfiles.Count();
+	 }
 
 // -----------------------------------------------------------------------------
 // CNSmlDmProvisioningAdapter::SummaryTitle
@@ -488,7 +505,39 @@
 
 	if(iState!=CNSmlDmProvisioningAdapter::EStateNull)
 		{
-		aCharacteristic.AcceptL( *this );
+		
+		TInt authType( 0 );
+		TInt allowCriticalSetting( 0 );
+		CRepository* repository = CRepository::NewLC( KOMAProvAuthenticationLV );
+		
+		TInt error = repository->Get( KOMAProvMessageOpen, authType );
+		if(error !=KErrNone)
+			{
+				_DBG_FILE("CNSmlDmProvisioningAdapter::VisitL Get KOMAProvMessageOpen Failed");
+			}			
+			
+		error = repository->Get( KOMAProvAllowCriticalAdapterSetting, allowCriticalSetting );
+		if(error !=KErrNone)
+			{
+				_DBG_FILE("CNSmlDmProvisioningAdapter::VisitL Get KOMAProvMessageOpen Failed");
+			}			
+		CleanupStack::PopAndDestroy(); // repository
+		
+		if(allowCriticalSetting)
+			{
+				if(authType != 1)
+				{			
+				aCharacteristic.AcceptL( *this );
+				}
+				else
+				{
+				iState = CNSmlDmProvisioningAdapter::EStateNull;			
+				}	
+			}
+			else
+			{
+				aCharacteristic.AcceptL( *this );
+			}
 		}
 	_DBG_FILE("CNSmlDmProvisioningAdapter::VisitL(CWPCharacteristic): end");
 	}