diff -r 19bba8228ff0 -r 5cc2995847ea syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp --- 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 // CommsDB columname defs #include #include -#include +#include #include #include #include @@ -38,8 +38,9 @@ #include #include "NSmlDmProvisioningAdapter.h" #include "NSmlTransportHandler.h" - #include +#include "ProvisioningInternalCRKeys.h" +#include // ============================ 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"); }