265 { |
264 { |
266 CFSMailMessage* fsMessage = iFsMailbox->CreateMessageToSend(); |
265 CFSMailMessage* fsMessage = iFsMailbox->CreateMessageToSend(); |
267 User::LeaveIfNull( fsMessage ); |
266 User::LeaveIfNull( fsMessage ); |
268 CleanupStack::PushL( fsMessage ); |
267 CleanupStack::PushL( fsMessage ); |
269 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
268 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
270 CleanupStack::Pop( fsMessage ); |
269 CleanupStack::Pop(); // fsMessage |
271 |
270 |
272 return message; |
271 return message; |
273 } |
272 } |
274 |
273 |
275 // ----------------------------------------------------------------------------- |
274 // ----------------------------------------------------------------------------- |
276 // |
275 // |
277 // ----------------------------------------------------------------------------- |
276 // ----------------------------------------------------------------------------- |
278 MEmailMessage* CEmailMailbox::CreateReplyMessageL( |
277 MEmailMessage* CEmailMailbox::CreateReplyMessageL( const TMessageId& aMessageId, const TBool aReplyToAll ) const |
279 const TMessageId& aMessageId, const TBool aReplyToAll ) const |
278 { |
280 { |
279 CFSMailMessage* fsMessage = iFsMailbox->CreateReplyMessage( FsMsgId( iPluginData, aMessageId ), aReplyToAll ); |
281 CFSMailMessage* fsMessage = iFsMailbox->CreateReplyMessage( |
|
282 FsMsgId( iPluginData, aMessageId ), aReplyToAll ); |
|
283 User::LeaveIfNull( fsMessage ); |
280 User::LeaveIfNull( fsMessage ); |
284 CleanupStack::PushL( fsMessage ); |
281 CleanupStack::PushL( fsMessage ); |
285 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
282 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
286 CleanupStack::Pop( fsMessage ); |
283 CleanupStack::Pop(); // fsMessage |
287 |
284 |
288 return message; |
285 return message; |
289 } |
286 } |
290 |
287 |
291 // ----------------------------------------------------------------------------- |
288 // ----------------------------------------------------------------------------- |
292 // |
289 // |
293 // ----------------------------------------------------------------------------- |
290 // ----------------------------------------------------------------------------- |
294 MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const |
291 MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const |
295 { |
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 |
296 CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage( |
303 CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage( |
297 FsMsgId( iPluginData, aMessageId ), KNewLine() ); |
304 FsMsgId( iPluginData, aMessageId ), *temp ); |
298 User::LeaveIfNull( fsMessage ); |
305 User::LeaveIfNull( fsMessage ); |
299 CleanupStack::PushL( fsMessage ); |
306 CleanupStack::PushL( fsMessage ); |
300 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
307 MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns ); |
301 CleanupStack::Pop( fsMessage ); |
308 CleanupStack::Pop(); // fsMessage |
302 |
309 |
|
310 CleanupStack::PopAndDestroy( temp ); |
|
311 CleanupStack::PopAndDestroy( params.iSmartTag ); |
|
312 CleanupStack::PopAndDestroy( params.iHeader ); |
|
313 |
303 return message; |
314 return message; |
304 } |
315 } |
305 |
316 |
306 // ----------------------------------------------------------------------------- |
317 // ----------------------------------------------------------------------------- |
307 // |
318 // |
339 // ----------------------------------------------------------------------------- |
350 // ----------------------------------------------------------------------------- |
340 // |
351 // |
341 // ----------------------------------------------------------------------------- |
352 // ----------------------------------------------------------------------------- |
342 MEmailMessageSearchAsync* CEmailMailbox::MessageSearchL() |
353 MEmailMessageSearchAsync* CEmailMailbox::MessageSearchL() |
343 { |
354 { |
344 MEmailMessageSearchAsync* searchAPI = |
355 MEmailMessageSearchAsync* searchAPI = CEmailMessageSearchAsync::NewL( iPluginData, iMailboxId ); |
345 CEmailMessageSearchAsync::NewL( iPluginData, iMailboxId ); |
|
346 return searchAPI; |
356 return searchAPI; |
347 } |
357 } |
348 |
358 |
349 // ----------------------------------------------------------------------------- |
|
350 // |
|
351 // ----------------------------------------------------------------------------- |
|
352 void CEmailMailbox::ShowInboxL() |
359 void CEmailMailbox::ShowInboxL() |
353 { |
360 { |
354 User::Leave( KErrNotSupported ); |
361 TMailListActivationData mailListData; |
355 } |
362 |
356 |
363 mailListData.iMailBoxId = FsMsgId(iPluginData, iMailboxId); |
357 // ----------------------------------------------------------------------------- |
364 |
358 // |
365 TPckgBuf<TMailListActivationData> pkgOut( mailListData ); |
359 // ----------------------------------------------------------------------------- |
366 CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC(); |
|
367 viewSrvSession->ActivateView(TVwsViewId(KFSEmailUiUid, MailListId), KStartListWithFolderId, pkgOut); |
|
368 CleanupStack::PopAndDestroy(); |
|
369 } |
|
370 |
360 void CEmailMailbox::EditNewMessageL() |
371 void CEmailMailbox::EditNewMessageL() |
361 { |
372 { |
362 bool syncronous; |
373 TEditorLaunchParams editorLaunchData; |
363 |
374 editorLaunchData.iExtra = NULL; |
364 XQServiceRequest request( emailInterfaceNameSend, |
375 editorLaunchData.iMailboxId = FsMsgId(iPluginData, iMailboxId); |
365 emailOperationSendMail, |
376 editorLaunchData.iActivatedExternally = ETrue; |
366 syncronous ); |
377 |
367 |
378 TPckgBuf<TEditorLaunchParams> pckgData( editorLaunchData ); |
368 QVariant returnValue; |
379 CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC(); |
369 if ( !request.send( returnValue ) ) |
380 TUid command = TUid::Uid(KEditorCmdCreateNew); |
370 User::Leave( KErrGeneral ); |
381 viewSrvSession->ActivateView(TVwsViewId(KFSEmailUiUid, MailEditorId), command, pckgData); |
371 } |
382 CleanupStack::PopAndDestroy( viewSrvSession ); |
372 |
383 } |
|
384 /* |
|
385 void CEmailMailbox::GetLatestMail() |
|
386 { |
|
387 CFSMailFolder* fsFolder = NULL; |
|
388 TFSMailMsgId fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox ); |
|
389 |
|
390 } |
|
391 */ |
373 // ----------------------------------------------------------------------------- |
392 // ----------------------------------------------------------------------------- |
374 // |
393 // |
375 // ----------------------------------------------------------------------------- |
394 // ----------------------------------------------------------------------------- |
376 CEmailMailbox::TObserverEventMapper::TObserverEventMapper( |
395 CEmailMailbox::TObserverEventMapper::TObserverEventMapper( |
377 CFSMailPlugin* aPlugin, |
396 CFSMailPlugin* aPlugin, |
473 TEventMapFunc method = KMailboxEventHandlers[ index ]; |
488 TEventMapFunc method = KMailboxEventHandlers[ index ]; |
474 (this->*method)(id, aParam1,aParam2,aParam3 ); |
489 (this->*method)(id, aParam1,aParam2,aParam3 ); |
475 } |
490 } |
476 } |
491 } |
477 |
492 |
478 // ----------------------------------------------------------------------------- |
493 void CEmailMailbox::TObserverEventMapper::ConvertParamsL( TMailboxId aMailbox, TAny* aParam1, |
479 // |
494 TAny* aParam2, REmailMessageIdArray& aMessageIds, TFolderId& aFolderId ) |
480 // ----------------------------------------------------------------------------- |
495 { |
481 void CEmailMailbox::TObserverEventMapper::ConvertParamsL( |
|
482 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, |
|
483 REmailMessageIdArray& aMessageIds, TFolderId& aFolderId ) |
|
484 { |
|
485 RArray<TFSMailMsgId>* newEntries( static_cast< RArray<TFSMailMsgId>* >( aParam1 ) ); |
496 RArray<TFSMailMsgId>* newEntries( static_cast< RArray<TFSMailMsgId>* >( aParam1 ) ); |
486 CleanupClosePushL( *newEntries ); |
497 CleanupClosePushL( *newEntries ); |
487 TFSMailMsgId* parentFolder = static_cast<TFSMailMsgId*>( aParam2 ); |
498 TFSMailMsgId* parentFolder = static_cast<TFSMailMsgId*>( aParam2 ); |
488 aFolderId = TFolderId( parentFolder->Id(), aMailbox ); |
499 aFolderId = TFolderId( parentFolder->Id(), aMailbox ); |
489 |
500 |
490 for ( TInt j = 0; j < newEntries->Count(); j++ ) |
501 for (TInt j = 0; j < newEntries->Count(); j++ ) |
491 { |
502 { |
492 TFSMailMsgId fsId(( *newEntries )[j] ); |
503 TFSMailMsgId fsId(( *newEntries )[j]); |
493 TMessageId messageId( fsId.Id(), aFolderId.iId, aMailbox ); |
504 TMessageId messageId( fsId.Id(), aFolderId.iId, aMailbox); |
494 aMessageIds.Append( messageId ); |
505 aMessageIds.Append(messageId); |
495 } |
506 } |
496 |
507 |
497 CleanupStack::PopAndDestroy( newEntries ); |
508 CleanupStack::PopAndDestroy( newEntries ); |
498 } |
509 } |
499 |
510 |
500 // ----------------------------------------------------------------------------- |
|
501 // |
|
502 // ----------------------------------------------------------------------------- |
|
503 void CEmailMailbox::TObserverEventMapper::IgnoreEventL( |
511 void CEmailMailbox::TObserverEventMapper::IgnoreEventL( |
504 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
512 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
505 { |
513 { |
506 } |
514 } |
507 |
515 |
508 // ----------------------------------------------------------------------------- |
|
509 // |
|
510 // ----------------------------------------------------------------------------- |
|
511 void CEmailMailbox::TObserverEventMapper::NewMessageL( |
516 void CEmailMailbox::TObserverEventMapper::NewMessageL( |
512 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
517 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
513 { |
518 { |
514 REmailMessageIdArray messageIds; |
|
515 TFolderId folderId; |
|
516 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
|
517 CleanupClosePushL( messageIds ); |
|
518 |
|
519 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
|
520 { |
|
521 MMailboxContentObserver* observer = iClientObservers[i]; |
|
522 if (observer) |
|
523 observer->NewMessageEventL( aMailbox, messageIds, folderId ); |
|
524 } |
|
525 |
|
526 CleanupStack::PopAndDestroy( &messageIds ); |
|
527 } |
|
528 |
|
529 // ----------------------------------------------------------------------------- |
|
530 // |
|
531 // ----------------------------------------------------------------------------- |
|
532 void CEmailMailbox::TObserverEventMapper::MessageChangedL( |
|
533 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
|
534 { |
|
535 REmailMessageIdArray messageIds; |
|
536 TFolderId folderId; |
|
537 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
|
538 CleanupClosePushL( messageIds ); |
|
539 |
|
540 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
|
541 { |
|
542 MMailboxContentObserver* observer = iClientObservers[i]; |
|
543 if (observer) |
|
544 observer->MessageChangedEventL( aMailbox, messageIds, folderId ); |
|
545 } |
|
546 CleanupStack::PopAndDestroy( &messageIds ); |
|
547 } |
|
548 |
|
549 // ----------------------------------------------------------------------------- |
|
550 // |
|
551 // ----------------------------------------------------------------------------- |
|
552 void CEmailMailbox::TObserverEventMapper::MessageDeletedL( |
|
553 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
|
554 { |
|
555 REmailMessageIdArray messageIds; |
519 REmailMessageIdArray messageIds; |
556 TFolderId folderId; |
520 TFolderId folderId; |
557 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
521 ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId ); |
558 CleanupClosePushL( messageIds ); |
522 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
559 |
|
560 for ( TInt i = 0; i < iClientObservers.Count(); i++ ) |
|
561 { |
523 { |
562 MMailboxContentObserver* observer = iClientObservers[i]; |
524 MMailboxContentObserver* observer = iClientObservers[i]; |
563 if (observer) |
525 observer->NewMessageEventL( aMailbox, messageIds, folderId ); |
564 observer->MessageDeletedEventL( aMailbox, messageIds, folderId ); |
526 } |
565 } |
527 } |
566 |
528 |
567 CleanupStack::PopAndDestroy( &messageIds ); |
529 void CEmailMailbox::TObserverEventMapper::MessageChangedL( |
568 } |
530 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
569 |
531 { |
570 // ----------------------------------------------------------------------------- |
532 REmailMessageIdArray messageIds; |
571 // |
533 TFolderId folderId; |
572 // ----------------------------------------------------------------------------- |
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 } |
|
541 } |
|
542 |
|
543 void CEmailMailbox::TObserverEventMapper::MessageDeletedL( |
|
544 TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ ) |
|
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 } |
|
555 } |
|
556 |
573 void CEmailMailbox::TObserverEventMapper::MessageMoved( |
557 void CEmailMailbox::TObserverEventMapper::MessageMoved( |
574 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
558 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
575 { |
559 { |
576 } |
560 } |
577 |
561 |
578 // ----------------------------------------------------------------------------- |
|
579 // |
|
580 // ----------------------------------------------------------------------------- |
|
581 void CEmailMailbox::TObserverEventMapper::MessageCopiedL( |
562 void CEmailMailbox::TObserverEventMapper::MessageCopiedL( |
582 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
563 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
583 { |
564 { |
584 } |
565 } |
585 |
566 |
586 // ----------------------------------------------------------------------------- |
|
587 // |
|
588 // ----------------------------------------------------------------------------- |
|
589 void CEmailMailbox::TObserverEventMapper::NewFolderL( |
567 void CEmailMailbox::TObserverEventMapper::NewFolderL( |
590 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
568 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
591 { |
569 { |
592 } |
570 } |
593 |
571 |
594 // ----------------------------------------------------------------------------- |
|
595 // |
|
596 // ----------------------------------------------------------------------------- |
|
597 void CEmailMailbox::TObserverEventMapper::FolderChangeL( |
572 void CEmailMailbox::TObserverEventMapper::FolderChangeL( |
598 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
573 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
599 { |
574 { |
600 } |
575 } |
601 |
576 |
602 // ----------------------------------------------------------------------------- |
|
603 // |
|
604 // ----------------------------------------------------------------------------- |
|
605 void CEmailMailbox::TObserverEventMapper::FoldersDeletedL( |
577 void CEmailMailbox::TObserverEventMapper::FoldersDeletedL( |
606 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
578 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
607 { |
579 { |
608 } |
580 } |
609 |
581 |
610 // ----------------------------------------------------------------------------- |
|
611 // |
|
612 // ----------------------------------------------------------------------------- |
|
613 void CEmailMailbox::TObserverEventMapper::FoldersMovedL( |
582 void CEmailMailbox::TObserverEventMapper::FoldersMovedL( |
614 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
583 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
615 { |
584 { |
616 } |
585 } |
617 |
586 |
618 // ----------------------------------------------------------------------------- |
|
619 // |
|
620 // ----------------------------------------------------------------------------- |
|
621 void CEmailMailbox::TObserverEventMapper::ExceptionL( |
587 void CEmailMailbox::TObserverEventMapper::ExceptionL( |
622 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
588 TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ ) |
623 { |
589 { |
624 } |
590 } |
625 |
591 |
626 // ----------------------------------------------------------------------------- |
592 |
627 // |
593 // ----------------------------------------------------------------------------- |
628 // ----------------------------------------------------------------------------- |
594 // |
629 TBool CEmailMailbox::TObserverEventMapper::Equals( |
595 // ----------------------------------------------------------------------------- |
630 const MMailboxContentObserver& a1, const MMailboxContentObserver& a2 ) |
596 TBool CEmailMailbox::TObserverEventMapper::Equals( const MMailboxContentObserver& a1, const MMailboxContentObserver& a2 ) |
631 { |
597 { |
632 return ( &a1 == &a2 ); |
598 return ( &a1 == &a2 ); |
633 } |
599 } |
634 // ----------------------------------------------------------------------------- |
600 |
635 // |
601 |
636 // ----------------------------------------------------------------------------- |
|
637 CEmailMailbox::CEmailRequestObserver::CEmailRequestObserver() : iObserver( NULL ) |
602 CEmailMailbox::CEmailRequestObserver::CEmailRequestObserver() : iObserver( NULL ) |
638 { |
603 { |
639 } |
604 } |
640 |
605 |
641 // ----------------------------------------------------------------------------- |
606 |
642 // |
607 void CEmailMailbox::CEmailRequestObserver::RequestResponseL( TFSProgress aEvent, TInt /* aRequestId */ ) |
643 // ----------------------------------------------------------------------------- |
608 { |
644 void CEmailMailbox::CEmailRequestObserver::RequestResponseL( |
609 if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete) |
645 TFSProgress aEvent, TInt /* aRequestId */ ) |
|
646 { |
|
647 if ( iObserver && aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete ) |
|
648 { |
610 { |
649 iObserver->MailboxSynchronisedL(aEvent.iError); |
611 iObserver->MailboxSynchronisedL(aEvent.iError); |
650 } |
612 } |
651 } |
613 } |
652 |
614 |
653 // ----------------------------------------------------------------------------- |
|
654 // |
|
655 // ----------------------------------------------------------------------------- |
|
656 void CEmailMailbox::CEmailRequestObserver::SetObserverL( MMailboxSyncObserver* aObserver ) |
615 void CEmailMailbox::CEmailRequestObserver::SetObserverL( MMailboxSyncObserver* aObserver ) |
657 { |
616 { |
658 iObserver = aObserver; |
617 iObserver = aObserver; |
659 } |
618 } |
660 |
619 |
661 // End of file |
620 // End of file. |
662 |
621 |