199 |
197 |
200 switch ( aFolderType ) |
198 switch ( aFolderType ) |
201 { |
199 { |
202 case EInbox: |
200 case EInbox: |
203 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox ); |
201 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox ); |
|
202 break; |
204 case EOutbox: |
203 case EOutbox: |
205 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSOutbox ); |
204 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSOutbox ); |
|
205 break; |
206 case EDrafts: |
206 case EDrafts: |
207 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDraftsFolder ); |
207 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDraftsFolder ); |
|
208 break; |
208 case EDeleted: |
209 case EDeleted: |
209 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDeleted ); |
210 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDeleted ); |
|
211 break; |
210 case ESent: |
212 case ESent: |
211 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSSentFolder ); |
213 fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSSentFolder ); |
|
214 break; |
212 case EOther: |
215 case EOther: |
|
216 break; |
213 default: |
217 default: |
214 User::Leave( KErrNotFound ); |
218 User::Leave( KErrNotFound ); |
215 break; |
219 break; |
216 } |
220 } |
217 |
221 |
284 // ----------------------------------------------------------------------------- |
288 // ----------------------------------------------------------------------------- |
285 // |
289 // |
286 // ----------------------------------------------------------------------------- |
290 // ----------------------------------------------------------------------------- |
287 MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const |
291 MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const |
288 { |
292 { |
|
293 // create temp header descriptor |
|
294 TReplyForwardParams params; |
|
295 params.iHeader = HBufC::NewLC(1); |
|
296 params.iHeader->Des().Copy(KNullDesC()); |
|
297 params.iSmartTag = HBufC::NewLC(1); |
|
298 params.iSmartTag->Des().Copy(KNullDesC()); |
|
299 TPckgBuf<TReplyForwardParams> buf( params ); |
|
300 HBufC* temp = HBufC::NewLC( buf.Length() ); |
|
301 temp->Des().Copy( buf ); |
|
302 |
289 CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage( |
303 CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage( |
290 FsMsgId( iPluginData, aMessageId ), KNewLine() ); |
304 FsMsgId( iPluginData, aMessageId ), *temp ); |
291 User::LeaveIfNull( fsMessage ); |
305 User::LeaveIfNull( fsMessage ); |
292 CleanupStack::PushL( fsMessage ); |
306 CleanupStack::PushL( fsMessage ); |
293 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
307 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
294 CleanupStack::Pop(); // fsMessage |
308 CleanupStack::Pop(); // fsMessage |
295 |
309 |
|
310 CleanupStack::PopAndDestroy( temp ); |
|
311 CleanupStack::PopAndDestroy( params.iSmartTag ); |
|
312 CleanupStack::PopAndDestroy( params.iHeader ); |
|
313 |
296 return message; |
314 return message; |
297 } |
315 } |
298 |
316 |
299 // ----------------------------------------------------------------------------- |
317 // ----------------------------------------------------------------------------- |
300 // |
318 // |
436 TAny* aParam1, |
454 TAny* aParam1, |
437 TAny* aParam2, |
455 TAny* aParam2, |
438 TAny* aParam3 ) |
456 TAny* aParam3 ) |
439 { |
457 { |
440 const TEventMapFunc KMailboxEventHandlers[] = { |
458 const TEventMapFunc KMailboxEventHandlers[] = { |
|
459 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
441 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
460 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
442 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
461 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
443 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
462 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
444 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
463 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
445 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
464 &CEmailMailbox::TObserverEventMapper::IgnoreEventL, |
469 TEventMapFunc method = KMailboxEventHandlers[ index ]; |
488 TEventMapFunc method = KMailboxEventHandlers[ index ]; |
470 (this->*method)(id, aParam1,aParam2,aParam3 ); |
489 (this->*method)(id, aParam1,aParam2,aParam3 ); |
471 } |
490 } |
472 } |
491 } |
473 |
492 |
|
493 void CEmailMailbox::TObserverEventMapper::ConvertParamsL( TMailboxId aMailbox, TAny* aParam1, |
|
494 TAny* aParam2, REmailMessageIdArray& aMessageIds, TFolderId& aFolderId ) |
|
495 { |
|
496 RArray<TFSMailMsgId>* newEntries( static_cast< RArray<TFSMailMsgId>* >( aParam1 ) ); |
|
497 CleanupClosePushL( *newEntries ); |
|
498 TFSMailMsgId* parentFolder = static_cast<TFSMailMsgId*>( aParam2 ); |
|
499 aFolderId = TFolderId( parentFolder->Id(), aMailbox ); |
|
500 |
|
501 for (TInt j = 0; j < newEntries->Count(); j++ ) |
|
502 { |
|
503 TFSMailMsgId fsId(( *newEntries )[j]); |
|
504 TMessageId messageId( fsId.Id(), aFolderId.iId, aMailbox); |
|
505 aMessageIds.Append(messageId); |
|
506 } |
|
507 |
|
508 CleanupStack::PopAndDestroy( newEntries ); |
|
509 } |
|
510 |
474 void CEmailMailbox::TObserverEventMapper::IgnoreEventL( |
511 void CEmailMailbox::TObserverEventMapper::IgnoreEventL( |
475 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
512 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
476 { |
513 { |
477 } |
514 } |
478 |
515 |
479 void CEmailMailbox::TObserverEventMapper::NewMessageL( |
516 void CEmailMailbox::TObserverEventMapper::NewMessageL( |
480 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
517 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
481 { |
518 { |
|
519 REmailMessageIdArray messageIds; |
|
520 TFolderId folderId; |
|
521 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
|
522 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
|
523 { |
|
524 MMailboxContentObserver* observer = iClientObservers[i]; |
|
525 observer->NewMessageEventL( aMailbox, messageIds, folderId ); |
|
526 } |
482 } |
527 } |
483 |
528 |
484 void CEmailMailbox::TObserverEventMapper::MessageChangedL( |
529 void CEmailMailbox::TObserverEventMapper::MessageChangedL( |
485 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
530 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
486 { |
531 { |
|
532 REmailMessageIdArray messageIds; |
|
533 TFolderId folderId; |
|
534 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
|
535 |
|
536 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
|
537 { |
|
538 MMailboxContentObserver* observer = iClientObservers[i]; |
|
539 observer->MessageChangedEventL( aMailbox, messageIds, folderId ); |
|
540 } |
487 } |
541 } |
488 |
542 |
489 void CEmailMailbox::TObserverEventMapper::MessageDeletedL( |
543 void CEmailMailbox::TObserverEventMapper::MessageDeletedL( |
490 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
544 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
491 { |
545 { |
|
546 REmailMessageIdArray messageIds; |
|
547 TFolderId folderId; |
|
548 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
|
549 |
|
550 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
|
551 { |
|
552 MMailboxContentObserver* observer = iClientObservers[i]; |
|
553 observer->MessageDeletedEventL( aMailbox, messageIds, folderId ); |
|
554 } |
492 } |
555 } |
493 |
556 |
494 void CEmailMailbox::TObserverEventMapper::MessageMoved( |
557 void CEmailMailbox::TObserverEventMapper::MessageMoved( |
495 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
558 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
496 { |
559 { |