diff -r b13141f05c3d -r b5fbb9b25d57 emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp --- 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 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 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 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 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 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 mailbox; - mailbox.Num(aMailBox.Id()); - - TBuf str; - str.Copy(KStartSeparator); - str.Append(mailbox); - str.Append(KEndSeparator); - - TBuf stored; - TUint32 key(KCMailMailboxesWithNewMail); - iCenRep->Get( key, stored ); + + _LIT( KFormat, "%S%d%S" ); + const TInt KStrLen = 64; + + TBuf 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 mailbox; - mailbox.Num(aMailBox.Id()); - - TBuf str; - str.Copy(KStartSeparator); - str.Append(mailbox); - str.Append(KEndSeparator); + TBuf mailbox; + mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator ); - TBuf 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; } + + + +