emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp
branchRCL_3
changeset 16 b5fbb9b25d57
parent 14 b13141f05c3d
child 17 67369d1b217f
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp	Tue May 11 15:57:15 2010 +0300
@@ -546,38 +546,43 @@
 TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
     {
     FUNC_LOG;    
-    TInt ret(KErrNotFound);
+    TInt ret( KErrNotFound );
     
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {
-        TBuf<KMaxDescLen> value;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, value );
-        TInt result = value.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase+ i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            ret = i;
-            break;
-            }
-        }
-    if (ret < 0 )
-        {
-        for (TInt i = 0; i < KMaxMailboxCount; i++)
-            {       
-            TBuf<KMaxDescLen> value;
-            TUint32 key(KCMailWidgetContentIdBase+i);
-            iCenRep->Get( key, value );
-            TInt result = value.Compare(KDissociated);
-            if (!result)
+            if ( iCenrepText.Compare( aContentId ) == 0 )
                 {
                 ret = i;
                 break;
                 }
             }
         }
+    
+    if ( ret < 0 )
+        {
+        for ( TInt i = 0; i < KMaxMailboxCount; i++ )
+            {       
+            TUint32 key( KCMailWidgetContentIdBase + i );
+            TInt err = iCenRep->Get( key, iCenrepText );
+            if ( err == KErrNone )
+                {
+                if ( iCenrepText.Compare( KDissociated ) == 0 )
+                    {
+                    ret = i;
+                    break;
+                    }
+                }
+            }
+        }
+    
     return ret;
     }
 
+
 // ---------------------------------------------------------------------------
 // CMailCpsSettings::Associated
 // ---------------------------------------------------------------------------
@@ -585,20 +590,22 @@
 TBool CMailCpsSettings::Associated( const TDesC& aContentId )
     {
     FUNC_LOG;    
-    TBool ret(EFalse);
+    TBool ret( EFalse );
     
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {
-        TBuf<KMaxDescLen> value;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, value );
-        TInt result = value.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase + i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            ret = ETrue;
-            break;
+            if ( iCenrepText.Compare( aContentId ) == 0 )
+                {
+                ret = ETrue;
+                break;
+                }
             }
         }
+    
     return ret;
     }
 
@@ -670,30 +677,39 @@
     return ret;
     }
 
+
 // ---------------------------------------------------------------------------
-// CMailCpsSettings::GetSettingToAssociate
+// CMailCpsSettings::GetMailboxUidByContentId
 // ---------------------------------------------------------------------------
 //
 TUint CMailCpsSettings::GetMailboxUidByContentId( const TDesC& aContentId )
     {
     FUNC_LOG;
-    TInt ret(KErrNone);
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+    
+    TInt ret( KErrNone );
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {       
-        TBuf<KMaxDescLen> cid;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, cid );
-        TInt result = cid.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase + i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            TUint32 key2(KCMailMailboxIdBase+i);
-            iCenRep->Get( key2, ret );
-            break;
+            if ( iCenrepText.Compare( aContentId ) == 0 )
+                {
+                TUint32 key2( KCMailMailboxIdBase + i );
+                err = iCenRep->Get( key2, ret );
+                if ( err == KErrNone )
+                    {
+                    break;
+                    }
+                }
             }
         }
+    
     return ret;
     }
 
+
+
 // ---------------------------------------------------------------------------
 // CMailCpsSettings::GetPluginUidByContentId
 // ---------------------------------------------------------------------------
@@ -701,23 +717,30 @@
 TUint CMailCpsSettings::GetPluginUidByContentId( const TDesC& aContentId )
     {
     FUNC_LOG;
-    TInt ret(KErrNone);
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+  
+    TInt ret( KErrNone );
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {       
-        TBuf<KMaxDescLen> cid;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, cid );
-        TInt result = cid.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase + i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            TUint32 key2(KCMailPluginIdBase+i);
-            iCenRep->Get( key2, ret );
-            break;
+            if ( iCenrepText.Compare( aContentId ) == 0 )
+                {
+                TUint32 key2( KCMailPluginIdBase + i );
+                err = iCenRep->Get( key2, ret );
+                if ( err == KErrNone )
+                    {
+                    break;
+                    }
+                }
             }
         }
+    
     return ret;
     }
 
+
 // ---------------------------------------------------------------------------
 // CMailCpsSettings::Configuration
 // ---------------------------------------------------------------------------
@@ -748,68 +771,77 @@
 void CMailCpsSettings::ToggleWidgetNewMailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox )
     {
     FUNC_LOG;
-    TBuf<KMaxDescLen> mailbox;
-    mailbox.Num(aMailBox.Id());
-
-    TBuf<KMaxDescLen> str;
-    str.Copy(KStartSeparator);    
-    str.Append(mailbox);
-    str.Append(KEndSeparator);    
-
-    TBuf<KMaxDescLen> stored;
-    TUint32 key(KCMailMailboxesWithNewMail);
-    iCenRep->Get( key, stored );
+ 
+    _LIT( KFormat, "%S%d%S" );
+    const TInt KStrLen = 64;
+        
+    TBuf<KStrLen> mailbox;
+    mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
     
-    TInt result = stored.Find(str);
+    TUint32 key( KCMailMailboxesWithNewMail );
+    TInt err = iCenRep->Get( key, iCenrepText );
+    
+    if ( err == KErrNone )
+        {
+        TInt pos = iCenrepText.Find( mailbox );
     
-    if (aIconOn)
-        {
-        if (result < 0) // Not found
+        if ( aIconOn )
             {
-            stored.Append(str);
-            iCenRep->Set( key, stored );
+            if ( pos < 0 ) // Not found
+                {
+                iCenrepText.Append( mailbox );
+                iCenRep->Set( key, iCenrepText );
+                }
             }
-        }
-    else
-        {
-        if (result >= 0)
+        else
             {
-            stored.Delete(result, str.Length());
-            iCenRep->Set( key, stored );
+            if ( pos >= 0 )
+                {
+                iCenrepText.Delete( pos, mailbox.Length() );
+                iCenRep->Set( key, iCenrepText );
+                }
             }
         }
     }
 
+
+
 // -----------------------------------------------------------------------------
 // CMailCpsSettings::GetNewMailStateL
 // -----------------------------------------------------------------------------
 TBool CMailCpsSettings::GetNewMailStateL( const TFSMailMsgId& aMailBox, TInt aUnreadCount )
     {
     FUNC_LOG;
+
+    _LIT( KFormat, "%S%d%S" );
+    const TInt KStrLen = 64;
+
+
     TBool ret(EFalse);
     if ( aUnreadCount )
         {
-        TBuf<KMaxDescLen> mailbox;
-        mailbox.Num(aMailBox.Id());
-
-        TBuf<KMaxDescLen> str;
-        str.Copy(KStartSeparator);    
-        str.Append(mailbox);
-        str.Append(KEndSeparator);    
+        TBuf<KStrLen> mailbox;
+        mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
 
-        TBuf<KMaxDescLen> stored;
-        TUint32 key(KCMailMailboxesWithNewMail);
-        iCenRep->Get( key, stored );
-    
-        TInt result = stored.Find(str);
-        if (result >= 0)
+        TUint32 key( KCMailMailboxesWithNewMail );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            ret = ETrue;
+            TInt pos = iCenrepText.Find( mailbox );
+            if ( pos >= 0 )
+                {
+                ret = ETrue;
+                }
             }
         }
     else
         {
         ToggleWidgetNewMailIconL( EFalse, aMailBox );
         }
+    
     return ret;
     }
+
+
+
+