simpledatamodeladapter/src/presenceplugindata.cpp
branchRCL_3
changeset 11 b4758b4b2d20
parent 0 c8caa15ef882
child 18 52d91a16fec3
--- a/simpledatamodeladapter/src/presenceplugindata.cpp	Wed Mar 31 22:15:41 2010 +0300
+++ b/simpledatamodeladapter/src/presenceplugindata.cpp	Wed Apr 14 16:22:17 2010 +0300
@@ -48,7 +48,7 @@
 #include <spdefinitions.h>
 #include <avabilitytext.h>
 #include <cvimpstsettingsstore.h>
-
+#include <escapeutils.h>
 
 #include "presenceplugindata.h"
 #include "presenceplugincommon.h"
@@ -1460,7 +1460,22 @@
 
     TBool updateCache( ETrue );
     
-    HBufC* cacheUri = ResolveCacheXspIdentifierL( aPresentityId );
+    // Decode encoded username (spaces to %20).
+    HBufC* decodedUsername = EscapeUtils::EscapeDecodeL( aPresentityId );
+    CleanupStack::PushL( decodedUsername );
+    
+    // convert to 8 bit version
+    HBufC8* tmp = HBufC8::NewLC( decodedUsername->Length() );
+    tmp->Des().Copy( *decodedUsername );
+    
+    // convert to unicode
+    HBufC* userName16 =
+            EscapeUtils::ConvertToUnicodeFromUtf8L( tmp->Des() );
+    
+    HBufC* cacheUri = ResolveCacheXspIdentifierL( userName16->Des() );
+    CleanupStack::PopAndDestroy( tmp );
+    CleanupStack::PopAndDestroy( decodedUsername );
+    delete userName16;
     CleanupStack::PushL( cacheUri );
     
     DP_SDA(" -> WriteStatusToCacheL - read previous values from cache");