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 // ----------------------------------------------------------------------------- |