--- a/omadm/omadmextensions/adapters/syncmldm12/src/NSmlDmSettingsAdapter12.cpp Thu Jan 07 12:39:15 2010 +0200
+++ b/omadm/omadmextensions/adapters/syncmldm12/src/NSmlDmSettingsAdapter12.cpp Mon Jan 18 20:09:30 2010 +0200
@@ -1000,6 +1000,16 @@
iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
return;
}
+ else
+ {
+ TInt ret = iCallBack->RemoveMappingL(KNSmlDMSettingsAdapterImplUid,
+ GetDynamicDMNodeUri( aURI ), ETrue );
+ if(ret != KErrNone)
+ {
+ iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+ return;
+ }
+ }
}
iNewProfile = ETrue;
AddNodeBufferL (aURI, aStatusRef);
@@ -3961,5 +3971,23 @@
return ImplementationTable;
}
+//------------------------------------------------------------------------------
+// TPtrC8 CNSmlDMSettingsAdapter12::GetDynamicDMNodeUri( const TDesC8& aURI )
+// returns DM/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDMSettingsAdapter12::GetDynamicDMNodeUri(const TDesC8& aURI)
+ {
+ TInt i= 0;
+ TBuf8<50> DmAccRoot(KNSmlDefDMAcc);
+ for ( i = aURI.Find( KNSmlDefDMAcc ) + DmAccRoot.Length() + 1; i < aURI.Length(); i++ )
+ {
+ if( aURI[i] == '/' )
+ {
+ break;
+ }
+ }
+
+ return aURI.Left( i );
+ }
// End of File