XDMSettingsUI/src/XDMPluginSLContainer.cpp
branchRCL_3
changeset 11 b4758b4b2d20
parent 7 895b8e06c769
child 18 52d91a16fec3
--- a/XDMSettingsUI/src/XDMPluginSLContainer.cpp	Wed Mar 31 22:15:41 2010 +0300
+++ b/XDMSettingsUI/src/XDMPluginSLContainer.cpp	Wed Apr 14 16:22:17 2010 +0300
@@ -36,6 +36,7 @@
 #include    <AknQueryDialog.h>
 #include    <aknnotewrappers.h>
 #include    <aknnotedialog.h>
+#include    <escapeutils.h>
 
 #include    "XDMPluginSLContainer.h"
 #include    "XDMPluginSettinglist.h"
@@ -234,8 +235,31 @@
         {
         iData->iAccessPoint = -1;
         }
-
-    iData->iUserID = xDMSet->Property(EXdmPropAuthName);
+    
+    TBuf<KMaxUserIDLength> username = xDMSet->Property( EXdmPropAuthName );
+    
+    // to show special chars in UI correctly
+    _LIT( KProcent, "%" );
+    if ( username.Find( KProcent ) != KErrNotFound )
+        {
+        // convert to 8 bit
+        HBufC8* tmp = HBufC8::NewLC( username.Length() );
+        tmp->Des().Copy( username );
+        
+        // Decode encoded username
+        HBufC8* decodedUsername = EscapeUtils::EscapeDecodeL( *tmp );
+        CleanupStack::PopAndDestroy( tmp );
+        CleanupStack::PushL( decodedUsername );
+        
+        // convert to unicode
+        HBufC* userName16 =
+             EscapeUtils::ConvertToUnicodeFromUtf8L( decodedUsername->Des() );
+        CleanupStack::PopAndDestroy( decodedUsername );        
+        username = userName16->Des();
+        delete userName16;
+        }
+    
+    iData->iUserID = username;
     iData->iPassword = xDMSet->Property(EXdmPropAuthSecret);
     
     CleanupStack::PopAndDestroy(1); //xDMSet