--- a/omadm/omadmextensions/adapters/email/src/nsmldmemailadapter.cpp Thu Jan 07 12:39:15 2010 +0200
+++ b/omadm/omadmextensions/adapters/email/src/nsmldmemailadapter.cpp Mon Jan 18 20:09:30 2010 +0200
@@ -767,12 +767,19 @@
{
data = iBuffer->At(index).iImap4Settings->ServerAddress().AllocLC();
}
- HBufC8 *data8 = HBufC8::NewLC(data->Size());
- TPtr8 dataPtr8 = data8->Des();
- CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
+ else
+ {
+ status = CSmlDmAdapter::ENotFound;
+ }
+ if(data)
+ {
+ HBufC8 *data8 = HBufC8::NewLC(data->Size());
+ TPtr8 dataPtr8 = data8->Des();
+ CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
- object->InsertL(0,dataPtr8);
- CleanupStack::PopAndDestroy(2); //data, data8
+ object->InsertL(0,dataPtr8);
+ CleanupStack::PopAndDestroy(2); //data, data8
+ }
}
else if(lastUriSeg.Compare(KNSmlDMEmailMsnd)==0)
@@ -1246,6 +1253,17 @@
_DBG_FILE("CNSmlDmEmailAdapter::AddNodeObjectL(): EAlreadyExists end");
return;
}
+ else
+ {
+ TInt ret = Callback().RemoveMappingL( KNSmlDMEmailAdapterImplUid,
+ GetDynamicEmailNodeUri(aURI), ETrue );
+ if(ret != KErrNone)
+ {
+ Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
+ _DBG_FILE("CNSmlDmEmailAdapter::AddNodeObjectL(): EError end");
+ return;
+ }
+ }
Callback().SetMappingL(aURI,KNullDesC8);
}
@@ -2832,6 +2850,11 @@
{
data = iBuffer->At(index).iImap4Settings->ServerAddress().AllocLC();
}
+ else
+ {
+ status = CSmlDmAdapter::ENotFound;
+ return status;
+ }
HBufC8 *data8 = HBufC8::NewLC(data->Size());
TPtr8 dataPtr8 = data8->Des();
CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
@@ -3331,4 +3354,27 @@
CleanupStack::PopAndDestroy(); //emailAccs
return ret;
}
+
+//------------------------------------------------------------------------------
+// TPtrC8 CNSmlDmEmailAdapter::GetDynamicEmailNodeUri( const TDesC8& aURI )
+// returns Email/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDmEmailAdapter::GetDynamicEmailNodeUri( const TDesC8& aURI )
+ {
+ DBG_ARGS8(_S8("CNSmlDmEmailAdapter::GetDynamicEmailNodeUri() - <%S> "), &aURI);
+ TInt i= 0;
+ TBuf8<50> EmailAccRoot(KNSmlDMEmailNodeName);
+ for ( i = aURI.Find( KNSmlDMEmailNodeName ) + EmailAccRoot.Length() + 1;
+ i < aURI.Length(); i++ )
+ {
+ if( aURI[i] == '/' )
+ {
+ break;
+ }
+ }
+ _DBG_FILE("CNSmlDmEmailAdapter::GetDynamicEmailNodeUri(): end");
+ return aURI.Left( i );
+ }
+
+
// End of File