emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp
branchRCL_3
changeset 34 cd2816114bd1
parent 31 72d484772ca6
child 19 b13141f05c3d
equal deleted inserted replaced
33:da5135c61bad 34:cd2816114bd1
   143             {
   143             {
   144             TFSMailMsgId mailbox; 
   144             TFSMailMsgId mailbox; 
   145             ret = ResolveMailbox( value, mailbox );
   145             ret = ResolveMailbox( value, mailbox );
   146             if ( ret )
   146             if ( ret )
   147                 {
   147                 {
       
   148 				INFO("CMailCpsSettings::LoadSettingsL(): Error: ignore this entry");
   148                 // Resolving encountered error, ignore this entry
   149                 // Resolving encountered error, ignore this entry
   149                 ret = iCenRep->Reset( KCMailMailboxIdBase+ii );
   150                 ret = iCenRep->Reset( KCMailMailboxIdBase+ii );
   150                 ret = iCenRep->Reset( KCMailPluginIdBase+ii );
   151                 ret = iCenRep->Reset( KCMailPluginIdBase+ii );
   151                 ret = iCenRep->Reset( KCMailWidgetContentIdBase+ii );
   152                 ret = iCenRep->Reset( KCMailWidgetContentIdBase+ii );
   152                 if ( ret )
   153                 if ( ret )
   214 TInt CMailCpsSettings::ResolveMailbox( const TInt aMailboxId, TFSMailMsgId& aMsg )
   215 TInt CMailCpsSettings::ResolveMailbox( const TInt aMailboxId, TFSMailMsgId& aMsg )
   215     {
   216     {
   216     FUNC_LOG;
   217     FUNC_LOG;
   217     RPointerArray<CFSMailBox> mailboxarray;
   218     RPointerArray<CFSMailBox> mailboxarray;
   218     TInt err = iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxarray );
   219     TInt err = iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxarray );
   219     if( !err )
   220 	INFO_1("CMailCpsSettings::ResolveMailbox(): : ListMailBoxes() returns %d", err);
       
   221     if( !err ) // KErrNone = 0
   220         {
   222         {
   221         err = KErrNotFound;
   223         err = KErrNotFound;
   222         aMsg.SetId( aMailboxId );
   224         aMsg.SetId( aMailboxId );
   223         const TInt iiMax( mailboxarray.Count() );
   225         const TInt iiMax( mailboxarray.Count() );
   224         for ( TInt ii = 0; ii < iiMax; ii++ )
   226         for ( TInt ii = 0; ii < iiMax; ii++ )
   225             {
   227             {
   226             if ( mailboxarray[ii]->GetId().Id() == aMsg.Id() )
   228             if ( mailboxarray[ii]->GetId().Id() == aMsg.Id() )
   227                 {
   229                 {
   228                 // Mailbox found
   230                 // Mailbox found
   229                 aMsg.SetPluginId( mailboxarray[ii]->GetId().PluginId() );
   231                 aMsg.SetPluginId( mailboxarray[ii]->GetId().PluginId() );
   230                 return err = KErrNone;
   232                 err = KErrNone; 
       
   233                 break;
   231                 }
   234                 }
   232             }
   235             }
   233         }
       
   234     else
       
   235         {
       
   236         }
   236         }
   237     mailboxarray.ResetAndDestroy();
   237     mailboxarray.ResetAndDestroy();
   238     return err;
   238     return err;
   239     }
   239     }
   240 
   240 
   384     TInt iiMax( iMailboxArray.Count() );
   384     TInt iiMax( iMailboxArray.Count() );
   385     for ( TInt ii = 0; ii < iiMax; ii++ )
   385     for ( TInt ii = 0; ii < iiMax; ii++ )
   386         {
   386         {
   387         if( iMailboxArray[ii].Id() == aMailbox.Id() )
   387         if( iMailboxArray[ii].Id() == aMailbox.Id() )
   388             {
   388             {
   389             RemoveMailboxL( ii );
   389             TBuf<KMaxDescLen> cid;
       
   390             GetContentId( aMailbox.Id(), 1, cid );
       
   391             DissociateWidgetFromSettingL( cid );
       
   392             iMailboxArray.Remove( ii );
   390             break;
   393             break;
   391             }
       
   392         }
       
   393     }
       
   394 
       
   395 // ---------------------------------------------------------------------------
       
   396 // CMailCpsSettings::RemoveMailboxL
       
   397 // ---------------------------------------------------------------------------
       
   398 //
       
   399 void CMailCpsSettings::RemoveMailboxL( const TInt aIndex )
       
   400     {
       
   401     FUNC_LOG;
       
   402     
       
   403     // Remove mailbox from local array
       
   404     TFSMailMsgId mailboxId = iMailboxArray[aIndex];
       
   405     iMailboxArray.Remove( aIndex );
       
   406     
       
   407     // Remove mailbox from widget settings
       
   408     RArray<TUint32> keys;
       
   409     GetMailboxNonZeroKeysL( keys );
       
   410     const TInt iiMax( keys.Count() );
       
   411     for ( TInt ii = 0; ii < iiMax; ii++ )
       
   412         {
       
   413         TInt value( 0 );
       
   414         iCenRep->Get( keys[ii], value );
       
   415         if( value == mailboxId.Id() )
       
   416             {
       
   417             iCenRep->Set( keys[ii], 0 );
       
   418             }
   394             }
   419         }
   395         }
   420     }
   396     }
   421 
   397 
   422 // ---------------------------------------------------------------------------
   398 // ---------------------------------------------------------------------------
   464 // ---------------------------------------------------------------------------
   440 // ---------------------------------------------------------------------------
   465 //
   441 //
   466 void CMailCpsSettings::DissociateWidgetFromSettingL( const TDesC& aContentId )
   442 void CMailCpsSettings::DissociateWidgetFromSettingL( const TDesC& aContentId )
   467     {
   443     {
   468     FUNC_LOG;
   444     FUNC_LOG;
   469     TUint32 key(0);
   445     for ( TInt i = 0; i < KMaxMailboxCount; i++ )
   470     TUint32 mailboxKey(0);
       
   471 
       
   472     for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   473         {
   446         {
   474         TBuf<KMaxDescLen> value;
   447         TBuf<KMaxDescLen> value;
   475         TUint32 tempKey(KCMailWidgetContentIdBase+i);
   448         TUint32 key( KCMailWidgetContentIdBase + i );
   476         iCenRep->Get( tempKey, value );
   449         iCenRep->Get( key, value );
   477         TInt result = value.Compare(aContentId);
   450         TInt result = value.Compare(aContentId);
   478         if (!result)
   451         if (!result)
   479             {
   452             {
   480             key = tempKey;
   453             iCenRep->Reset( key );
   481             mailboxKey = KCMailMailboxIdBase + i;
   454             iCenRep->Reset( KCMailMailboxIdBase + i );
   482             iCenRep->Reset(key);
   455             iCenRep->Reset( KCMailPluginIdBase + i );
   483             iCenRep->Reset(mailboxKey);
       
   484             break;
   456             break;
   485             }
   457             }
   486         }        
   458         }        
   487     }
   459     }
   488 
   460 
   524         }
   496         }
   525     return ret;
   497     return ret;
   526     }
   498     }
   527 
   499 
   528 // ---------------------------------------------------------------------------
   500 // ---------------------------------------------------------------------------
       
   501 // CMailCpsSettings::Associated
       
   502 // ---------------------------------------------------------------------------
       
   503 //
       
   504 TBool CMailCpsSettings::Associated( const TDesC& aContentId )
       
   505     {
       
   506     FUNC_LOG;    
       
   507     TBool ret(EFalse);
       
   508     
       
   509     for (TInt i = 0; i < KMaxMailboxCount; i++)
       
   510         {
       
   511         TBuf<KMaxDescLen> value;
       
   512         TUint32 key(KCMailWidgetContentIdBase+i);
       
   513         iCenRep->Get( key, value );
       
   514         TInt result = value.Compare(aContentId);
       
   515         if (!result)
       
   516             {
       
   517             ret = ETrue;
       
   518             break;
       
   519             }
       
   520         }
       
   521     return ret;
       
   522     }
       
   523 
       
   524 // ---------------------------------------------------------------------------
   529 // CMailCpsSettings::GetContentId
   525 // CMailCpsSettings::GetContentId
   530 // ---------------------------------------------------------------------------
   526 // ---------------------------------------------------------------------------
   531 //
   527 //
   532 void CMailCpsSettings::GetContentId( TInt aMailboxId, TInt aNext, TDes16& aValue )
   528 void CMailCpsSettings::GetContentId( TInt aMailboxId, TInt aNext, TDes16& aValue )
   533     {
   529     {