emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp
branchRCL_3
changeset 10 f5907b1a1053
parent 8 e1b6206813b4
child 13 8592a65ad3fb
equal deleted inserted replaced
8:e1b6206813b4 10:f5907b1a1053
   441 
   441 
   442 // ---------------------------------------------------------------------------
   442 // ---------------------------------------------------------------------------
   443 // CMailCpsSettings::AssociateWidgetToSetting
   443 // CMailCpsSettings::AssociateWidgetToSetting
   444 // ---------------------------------------------------------------------------
   444 // ---------------------------------------------------------------------------
   445 //
   445 //
   446 TBool CMailCpsSettings::AssociateWidgetToSetting( const TDesC& aContentId )
   446 void CMailCpsSettings::AssociateWidgetToSetting( const TDesC& aContentId,
   447     {
   447                                                  const TFSMailMsgId aMailbox )
   448     FUNC_LOG;
   448     {
   449     TBool alreadyAssociated(ETrue);
   449     FUNC_LOG;
   450     
   450     TInt setId (GetSettingToAssociate(aContentId));
   451     if (!IsAlreadyAssociated(aContentId))
   451     if (setId>=0)
   452         {
   452         {
   453         TUint32 key (GetSettingToAssociate());
   453         TInt id = aMailbox.Id();
   454         iCenRep->Set( key, aContentId );
   454         TUid pluginId = aMailbox.PluginId();
   455         alreadyAssociated = EFalse;
   455         TInt pId(pluginId.iUid);
   456         }
   456         iCenRep->Set( KCMailMailboxIdBase+setId, id );
   457     return alreadyAssociated;
   457         iCenRep->Set( KCMailPluginIdBase+setId, pId );
       
   458         iCenRep->Set( KCMailWidgetContentIdBase+setId, aContentId );        
       
   459         }
   458     }
   460     }
   459 
   461 
   460 // ---------------------------------------------------------------------------
   462 // ---------------------------------------------------------------------------
   461 // CMailCpsSettings::DissociateWidgetFromSettingL
   463 // CMailCpsSettings::DissociateWidgetFromSettingL
   462 // ---------------------------------------------------------------------------
   464 // ---------------------------------------------------------------------------
   464 void CMailCpsSettings::DissociateWidgetFromSettingL( const TDesC& aContentId )
   466 void CMailCpsSettings::DissociateWidgetFromSettingL( const TDesC& aContentId )
   465     {
   467     {
   466     FUNC_LOG;
   468     FUNC_LOG;
   467     TUint32 key(0);
   469     TUint32 key(0);
   468     TUint32 mailboxKey(0);
   470     TUint32 mailboxKey(0);
   469 
       
   470     RemoveFromContentIdListL( aContentId );
       
   471 
   471 
   472     for (TInt i = 0; i < KMaxMailboxCount; i++)
   472     for (TInt i = 0; i < KMaxMailboxCount; i++)
   473         {
   473         {
   474         TBuf<KMaxDescLen> value;
   474         TBuf<KMaxDescLen> value;
   475         TUint32 tempKey(KCMailWidgetContentIdBase+i);
   475         TUint32 tempKey(KCMailWidgetContentIdBase+i);
   482             iCenRep->Reset(key);
   482             iCenRep->Reset(key);
   483             iCenRep->Reset(mailboxKey);
   483             iCenRep->Reset(mailboxKey);
   484             break;
   484             break;
   485             }
   485             }
   486         }        
   486         }        
       
   487     }
       
   488 
       
   489 // ---------------------------------------------------------------------------
       
   490 // CMailCpsSettings::GetSettingToAssociate
       
   491 // ---------------------------------------------------------------------------
       
   492 //
       
   493 TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
       
   494     {
       
   495     FUNC_LOG;    
       
   496     TInt ret(KErrNotFound);
       
   497     
       
   498     for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   499         {
       
   500         TBuf<KMaxDescLen> value;
       
   501         TUint32 key(KCMailWidgetContentIdBase+i);
       
   502         iCenRep->Get( key, value );
       
   503         TInt result = value.Compare(aContentId);
       
   504         if (!result)
       
   505             {
       
   506             ret = i;
       
   507             break;
       
   508             }
       
   509         }
       
   510     if (ret < 0 )
       
   511         {
       
   512         for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   513             {       
       
   514             TBuf<KMaxDescLen> value;
       
   515             TUint32 key(KCMailWidgetContentIdBase+i);
       
   516             iCenRep->Get( key, value );
       
   517             TInt result = value.Compare(KDissociated);
       
   518             if (!result)
       
   519                 {
       
   520                 ret = i;
       
   521                 break;
       
   522                 }
       
   523             }
       
   524         }
       
   525     return ret;
   487     }
   526     }
   488 
   527 
   489 // ---------------------------------------------------------------------------
   528 // ---------------------------------------------------------------------------
   490 // CMailCpsSettings::GetContentId
   529 // CMailCpsSettings::GetContentId
   491 // ---------------------------------------------------------------------------
   530 // ---------------------------------------------------------------------------
   580         }
   619         }
   581     return ret;
   620     return ret;
   582     }
   621     }
   583 
   622 
   584 // ---------------------------------------------------------------------------
   623 // ---------------------------------------------------------------------------
   585 // CMailCpsSettings::IsAlreadyAssociated
       
   586 // ---------------------------------------------------------------------------
       
   587 //
       
   588 TBool CMailCpsSettings::IsAlreadyAssociated( const TDesC& aContentId )
       
   589     {
       
   590     FUNC_LOG;
       
   591     TBool ret(EFalse);
       
   592     for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   593         {       
       
   594         TBuf<KMaxDescLen> value;
       
   595         TUint32 key(KCMailWidgetContentIdBase+i);
       
   596         iCenRep->Get( key, value );
       
   597         TInt result = value.Compare(aContentId);
       
   598         if (!result)
       
   599             {
       
   600             ret = ETrue;
       
   601             break;
       
   602             }
       
   603         }
       
   604     return ret;
       
   605     }
       
   606 
       
   607 // ---------------------------------------------------------------------------
       
   608 // CMailCpsSettings::GetSettingToAssociate
       
   609 // ---------------------------------------------------------------------------
       
   610 //
       
   611 TUint32 CMailCpsSettings::GetSettingToAssociate()
       
   612     {
       
   613     FUNC_LOG;
       
   614     TUint32 ret(KErrNone);
       
   615     for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   616         {       
       
   617         TBuf<KMaxDescLen> value;
       
   618         TUint32 key(KCMailWidgetContentIdBase+i);
       
   619         iCenRep->Get( key, value );
       
   620         TInt result = value.Compare(KDissociated);
       
   621         if (!result)
       
   622             {
       
   623             ret = KCMailWidgetContentIdBase + i;
       
   624             break;
       
   625             }
       
   626         }
       
   627     return ret;
       
   628     }
       
   629 
       
   630 // ---------------------------------------------------------------------------
       
   631 // CMailCpsSettings::Configuration
   624 // CMailCpsSettings::Configuration
   632 // ---------------------------------------------------------------------------
   625 // ---------------------------------------------------------------------------
   633 //
   626 //
   634 TInt32 CMailCpsSettings::Configuration()
   627 TInt32 CMailCpsSettings::Configuration()
   635     {
   628     {
   646     FUNC_LOG;
   639     FUNC_LOG;
   647     RPointerArray<CFSMailBox> mailboxarray;
   640     RPointerArray<CFSMailBox> mailboxarray;
   648     iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxarray );    
   641     iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxarray );    
   649     TInt ret = mailboxarray.Count(); 
   642     TInt ret = mailboxarray.Count(); 
   650     return ret;
   643     return ret;
   651     }
       
   652 
       
   653 // ---------------------------------------------------------------------------
       
   654 // CMailCpsSettings::FindFromContentIdListL
       
   655 // ---------------------------------------------------------------------------
       
   656 //
       
   657 TBool CMailCpsSettings::FindFromContentIdListL( const TDesC& aContentId )
       
   658     {
       
   659     FUNC_LOG;
       
   660     TBool ret(EFalse);
       
   661 
       
   662     TBuf<KMaxDescLen> cid;    
       
   663     cid.Copy(KStartSeparator);    
       
   664     cid.Append(aContentId);
       
   665     cid.Append(KEndSeparator);
       
   666     
       
   667     TBuf<KMaxDescLen> value;
       
   668     TUint32 key(KCMailContentIdList);
       
   669     iCenRep->Get( key, value );
       
   670     
       
   671     TInt result = value.Find(cid);
       
   672     
       
   673     if (result >= 0)
       
   674         {
       
   675         ret = ETrue;        
       
   676         }
       
   677 
       
   678     return ret;
       
   679     }
       
   680 
       
   681 // ---------------------------------------------------------------------------
       
   682 // CMailCpsSettings::AddToContentIdListL
       
   683 // ---------------------------------------------------------------------------
       
   684 //
       
   685 void CMailCpsSettings::AddToContentIdListL( const TDesC& aContentId )
       
   686     {
       
   687     FUNC_LOG;
       
   688     TBuf<KMaxDescLen> value;
       
   689 
       
   690     TUint32 key(KCMailContentIdList);
       
   691     iCenRep->Get( key, value );
       
   692 
       
   693     value.Append(KStartSeparator);
       
   694     value.Append(aContentId);
       
   695     value.Append(KEndSeparator);  
       
   696     
       
   697     iCenRep->Set( key, value );    
       
   698     }
       
   699 
       
   700 // ---------------------------------------------------------------------------
       
   701 // CMailCpsSettings::RemoveFromContentIdListL
       
   702 // ---------------------------------------------------------------------------
       
   703 //
       
   704 void CMailCpsSettings::RemoveFromContentIdListL( const TDesC& aContentId )
       
   705     {
       
   706     FUNC_LOG;
       
   707     TBuf<KMaxDescLen> cid;
       
   708     cid.Copy(KStartSeparator);    
       
   709     cid.Append(aContentId);
       
   710     cid.Append(KEndSeparator);
       
   711     
       
   712     TBuf<KMaxDescLen> value;
       
   713     TUint32 key(KCMailContentIdList);
       
   714     iCenRep->Get( key, value );
       
   715     
       
   716     TInt result = value.Find(cid);
       
   717     if (result >= 0)
       
   718         {
       
   719         value.Delete(result, cid.Length());
       
   720         iCenRep->Set( key, value );        
       
   721         }
       
   722     }
   644     }
   723 
   645 
   724 // -----------------------------------------------------------------------------
   646 // -----------------------------------------------------------------------------
   725 // CMailCpsSettings::ToggleWidgetNewMailIconL
   647 // CMailCpsSettings::ToggleWidgetNewMailIconL
   726 // -----------------------------------------------------------------------------
   648 // -----------------------------------------------------------------------------