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