emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp
branchRCL_3
changeset 16 b5fbb9b25d57
parent 14 b13141f05c3d
child 17 67369d1b217f
equal deleted inserted replaced
14:b13141f05c3d 16:b5fbb9b25d57
   544 // ---------------------------------------------------------------------------
   544 // ---------------------------------------------------------------------------
   545 //
   545 //
   546 TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
   546 TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
   547     {
   547     {
   548     FUNC_LOG;    
   548     FUNC_LOG;    
   549     TInt ret(KErrNotFound);
   549     TInt ret( KErrNotFound );
   550     
   550     
   551     for (TInt i = 0; i < KMaxMailboxCount; i++)
   551     for ( TInt i = 0; i < KMaxMailboxCount; i++ )
   552         {
   552         {
   553         TBuf<KMaxDescLen> value;
   553         TUint32 key( KCMailWidgetContentIdBase+ i );
   554         TUint32 key(KCMailWidgetContentIdBase+i);
   554         TInt err = iCenRep->Get( key, iCenrepText );
   555         iCenRep->Get( key, value );
   555         if ( err == KErrNone )
   556         TInt result = value.Compare(aContentId);
   556             {
   557         if (!result)
   557             if ( iCenrepText.Compare( aContentId ) == 0 )
   558             {
       
   559             ret = i;
       
   560             break;
       
   561             }
       
   562         }
       
   563     if (ret < 0 )
       
   564         {
       
   565         for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   566             {       
       
   567             TBuf<KMaxDescLen> value;
       
   568             TUint32 key(KCMailWidgetContentIdBase+i);
       
   569             iCenRep->Get( key, value );
       
   570             TInt result = value.Compare(KDissociated);
       
   571             if (!result)
       
   572                 {
   558                 {
   573                 ret = i;
   559                 ret = i;
   574                 break;
   560                 break;
   575                 }
   561                 }
   576             }
   562             }
   577         }
   563         }
       
   564     
       
   565     if ( ret < 0 )
       
   566         {
       
   567         for ( TInt i = 0; i < KMaxMailboxCount; i++ )
       
   568             {       
       
   569             TUint32 key( KCMailWidgetContentIdBase + i );
       
   570             TInt err = iCenRep->Get( key, iCenrepText );
       
   571             if ( err == KErrNone )
       
   572                 {
       
   573                 if ( iCenrepText.Compare( KDissociated ) == 0 )
       
   574                     {
       
   575                     ret = i;
       
   576                     break;
       
   577                     }
       
   578                 }
       
   579             }
       
   580         }
       
   581     
   578     return ret;
   582     return ret;
   579     }
   583     }
   580 
   584 
       
   585 
   581 // ---------------------------------------------------------------------------
   586 // ---------------------------------------------------------------------------
   582 // CMailCpsSettings::Associated
   587 // CMailCpsSettings::Associated
   583 // ---------------------------------------------------------------------------
   588 // ---------------------------------------------------------------------------
   584 //
   589 //
   585 TBool CMailCpsSettings::Associated( const TDesC& aContentId )
   590 TBool CMailCpsSettings::Associated( const TDesC& aContentId )
   586     {
   591     {
   587     FUNC_LOG;    
   592     FUNC_LOG;    
   588     TBool ret(EFalse);
   593     TBool ret( EFalse );
   589     
   594     
   590     for (TInt i = 0; i < KMaxMailboxCount; i++)
   595     for ( TInt i = 0; i < KMaxMailboxCount; i++ )
   591         {
   596         {
   592         TBuf<KMaxDescLen> value;
   597         TUint32 key( KCMailWidgetContentIdBase + i );
   593         TUint32 key(KCMailWidgetContentIdBase+i);
   598         TInt err = iCenRep->Get( key, iCenrepText );
   594         iCenRep->Get( key, value );
   599         if ( err == KErrNone )
   595         TInt result = value.Compare(aContentId);
   600             {
   596         if (!result)
   601             if ( iCenrepText.Compare( aContentId ) == 0 )
   597             {
   602                 {
   598             ret = ETrue;
   603                 ret = ETrue;
   599             break;
   604                 break;
   600             }
   605                 }
   601         }
   606             }
       
   607         }
       
   608     
   602     return ret;
   609     return ret;
   603     }
   610     }
   604 
   611 
   605 // ---------------------------------------------------------------------------
   612 // ---------------------------------------------------------------------------
   606 // CMailCpsSettings::GetContentId
   613 // CMailCpsSettings::GetContentId
   668             }
   675             }
   669         }
   676         }
   670     return ret;
   677     return ret;
   671     }
   678     }
   672 
   679 
   673 // ---------------------------------------------------------------------------
   680 
   674 // CMailCpsSettings::GetSettingToAssociate
   681 // ---------------------------------------------------------------------------
       
   682 // CMailCpsSettings::GetMailboxUidByContentId
   675 // ---------------------------------------------------------------------------
   683 // ---------------------------------------------------------------------------
   676 //
   684 //
   677 TUint CMailCpsSettings::GetMailboxUidByContentId( const TDesC& aContentId )
   685 TUint CMailCpsSettings::GetMailboxUidByContentId( const TDesC& aContentId )
   678     {
   686     {
   679     FUNC_LOG;
   687     FUNC_LOG;
   680     TInt ret(KErrNone);
   688     
   681     for (TInt i = 0; i < KMaxMailboxCount; i++)
   689     TInt ret( KErrNone );
       
   690     for ( TInt i = 0; i < KMaxMailboxCount; i++ )
   682         {       
   691         {       
   683         TBuf<KMaxDescLen> cid;
   692         TUint32 key( KCMailWidgetContentIdBase + i );
   684         TUint32 key(KCMailWidgetContentIdBase+i);
   693         TInt err = iCenRep->Get( key, iCenrepText );
   685         iCenRep->Get( key, cid );
   694         if ( err == KErrNone )
   686         TInt result = cid.Compare(aContentId);
   695             {
   687         if (!result)
   696             if ( iCenrepText.Compare( aContentId ) == 0 )
   688             {
   697                 {
   689             TUint32 key2(KCMailMailboxIdBase+i);
   698                 TUint32 key2( KCMailMailboxIdBase + i );
   690             iCenRep->Get( key2, ret );
   699                 err = iCenRep->Get( key2, ret );
   691             break;
   700                 if ( err == KErrNone )
   692             }
   701                     {
   693         }
   702                     break;
       
   703                     }
       
   704                 }
       
   705             }
       
   706         }
       
   707     
   694     return ret;
   708     return ret;
   695     }
   709     }
   696 
   710 
       
   711 
       
   712 
   697 // ---------------------------------------------------------------------------
   713 // ---------------------------------------------------------------------------
   698 // CMailCpsSettings::GetPluginUidByContentId
   714 // CMailCpsSettings::GetPluginUidByContentId
   699 // ---------------------------------------------------------------------------
   715 // ---------------------------------------------------------------------------
   700 //
   716 //
   701 TUint CMailCpsSettings::GetPluginUidByContentId( const TDesC& aContentId )
   717 TUint CMailCpsSettings::GetPluginUidByContentId( const TDesC& aContentId )
   702     {
   718     {
   703     FUNC_LOG;
   719     FUNC_LOG;
   704     TInt ret(KErrNone);
   720   
   705     for (TInt i = 0; i < KMaxMailboxCount; i++)
   721     TInt ret( KErrNone );
       
   722     for ( TInt i = 0; i < KMaxMailboxCount; i++ )
   706         {       
   723         {       
   707         TBuf<KMaxDescLen> cid;
   724         TUint32 key( KCMailWidgetContentIdBase + i );
   708         TUint32 key(KCMailWidgetContentIdBase+i);
   725         TInt err = iCenRep->Get( key, iCenrepText );
   709         iCenRep->Get( key, cid );
   726         if ( err == KErrNone )
   710         TInt result = cid.Compare(aContentId);
   727             {
   711         if (!result)
   728             if ( iCenrepText.Compare( aContentId ) == 0 )
   712             {
   729                 {
   713             TUint32 key2(KCMailPluginIdBase+i);
   730                 TUint32 key2( KCMailPluginIdBase + i );
   714             iCenRep->Get( key2, ret );
   731                 err = iCenRep->Get( key2, ret );
   715             break;
   732                 if ( err == KErrNone )
   716             }
   733                     {
   717         }
   734                     break;
       
   735                     }
       
   736                 }
       
   737             }
       
   738         }
       
   739     
   718     return ret;
   740     return ret;
   719     }
   741     }
       
   742 
   720 
   743 
   721 // ---------------------------------------------------------------------------
   744 // ---------------------------------------------------------------------------
   722 // CMailCpsSettings::Configuration
   745 // CMailCpsSettings::Configuration
   723 // ---------------------------------------------------------------------------
   746 // ---------------------------------------------------------------------------
   724 //
   747 //
   746 // CMailCpsSettings::ToggleWidgetNewMailIconL
   769 // CMailCpsSettings::ToggleWidgetNewMailIconL
   747 // -----------------------------------------------------------------------------
   770 // -----------------------------------------------------------------------------
   748 void CMailCpsSettings::ToggleWidgetNewMailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox )
   771 void CMailCpsSettings::ToggleWidgetNewMailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox )
   749     {
   772     {
   750     FUNC_LOG;
   773     FUNC_LOG;
   751     TBuf<KMaxDescLen> mailbox;
   774  
   752     mailbox.Num(aMailBox.Id());
   775     _LIT( KFormat, "%S%d%S" );
   753 
   776     const TInt KStrLen = 64;
   754     TBuf<KMaxDescLen> str;
   777         
   755     str.Copy(KStartSeparator);    
   778     TBuf<KStrLen> mailbox;
   756     str.Append(mailbox);
   779     mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
   757     str.Append(KEndSeparator);    
   780     
   758 
   781     TUint32 key( KCMailMailboxesWithNewMail );
   759     TBuf<KMaxDescLen> stored;
   782     TInt err = iCenRep->Get( key, iCenrepText );
   760     TUint32 key(KCMailMailboxesWithNewMail);
   783     
   761     iCenRep->Get( key, stored );
   784     if ( err == KErrNone )
   762     
   785         {
   763     TInt result = stored.Find(str);
   786         TInt pos = iCenrepText.Find( mailbox );
   764     
   787     
   765     if (aIconOn)
   788         if ( aIconOn )
   766         {
   789             {
   767         if (result < 0) // Not found
   790             if ( pos < 0 ) // Not found
   768             {
   791                 {
   769             stored.Append(str);
   792                 iCenrepText.Append( mailbox );
   770             iCenRep->Set( key, stored );
   793                 iCenRep->Set( key, iCenrepText );
   771             }
   794                 }
   772         }
   795             }
   773     else
   796         else
   774         {
   797             {
   775         if (result >= 0)
   798             if ( pos >= 0 )
   776             {
   799                 {
   777             stored.Delete(result, str.Length());
   800                 iCenrepText.Delete( pos, mailbox.Length() );
   778             iCenRep->Set( key, stored );
   801                 iCenRep->Set( key, iCenrepText );
   779             }
   802                 }
   780         }
   803             }
   781     }
   804         }
       
   805     }
       
   806 
       
   807 
   782 
   808 
   783 // -----------------------------------------------------------------------------
   809 // -----------------------------------------------------------------------------
   784 // CMailCpsSettings::GetNewMailStateL
   810 // CMailCpsSettings::GetNewMailStateL
   785 // -----------------------------------------------------------------------------
   811 // -----------------------------------------------------------------------------
   786 TBool CMailCpsSettings::GetNewMailStateL( const TFSMailMsgId& aMailBox, TInt aUnreadCount )
   812 TBool CMailCpsSettings::GetNewMailStateL( const TFSMailMsgId& aMailBox, TInt aUnreadCount )
   787     {
   813     {
   788     FUNC_LOG;
   814     FUNC_LOG;
       
   815 
       
   816     _LIT( KFormat, "%S%d%S" );
       
   817     const TInt KStrLen = 64;
       
   818 
       
   819 
   789     TBool ret(EFalse);
   820     TBool ret(EFalse);
   790     if ( aUnreadCount )
   821     if ( aUnreadCount )
   791         {
   822         {
   792         TBuf<KMaxDescLen> mailbox;
   823         TBuf<KStrLen> mailbox;
   793         mailbox.Num(aMailBox.Id());
   824         mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
   794 
   825 
   795         TBuf<KMaxDescLen> str;
   826         TUint32 key( KCMailMailboxesWithNewMail );
   796         str.Copy(KStartSeparator);    
   827         TInt err = iCenRep->Get( key, iCenrepText );
   797         str.Append(mailbox);
   828         if ( err == KErrNone )
   798         str.Append(KEndSeparator);    
   829             {
   799 
   830             TInt pos = iCenrepText.Find( mailbox );
   800         TBuf<KMaxDescLen> stored;
   831             if ( pos >= 0 )
   801         TUint32 key(KCMailMailboxesWithNewMail);
   832                 {
   802         iCenRep->Get( key, stored );
   833                 ret = ETrue;
   803     
   834                 }
   804         TInt result = stored.Find(str);
       
   805         if (result >= 0)
       
   806             {
       
   807             ret = ETrue;
       
   808             }
   835             }
   809         }
   836         }
   810     else
   837     else
   811         {
   838         {
   812         ToggleWidgetNewMailIconL( EFalse, aMailBox );
   839         ToggleWidgetNewMailIconL( EFalse, aMailBox );
   813         }
   840         }
       
   841     
   814     return ret;
   842     return ret;
   815     }
   843     }
       
   844 
       
   845 
       
   846 
       
   847