131 { |
131 { |
132 iEngine->ShutDownEnginesL(); |
132 iEngine->ShutDownEnginesL(); |
133 return; |
133 return; |
134 } |
134 } |
135 |
135 |
|
136 const TDesC* showText = &KSavingText; |
136 TBool finished(EFalse); |
137 TBool finished(EFalse); |
137 TBool retval(ETrue); |
138 TBool retval(ETrue); |
138 switch(aUserData) |
139 switch(aUserData) |
139 { |
140 { |
140 case ECreatorMessagesDelete: |
141 case ECreatorMessagesDelete: |
|
142 showText = &KDeletingText; |
141 iEntriesToBeCreated = 1; |
143 iEntriesToBeCreated = 1; |
142 finished = ETrue; |
144 finished = ETrue; |
143 break; |
145 break; |
144 case ECreatorMessagesStart: |
146 case ECreatorMessagesStart: |
145 // message type query |
147 // message type query |
223 else if( finished ) |
225 else if( finished ) |
224 { |
226 { |
225 // add this command to command array |
227 // add this command to command array |
226 iEngine->AppendToCommandArrayL(iCommand, NULL, iEntriesToBeCreated); |
228 iEngine->AppendToCommandArrayL(iCommand, NULL, iEntriesToBeCreated); |
227 // started exucuting commands |
229 // started exucuting commands |
228 iEngine->ExecuteFirstCommandL( KSavingText ); |
230 iEngine->ExecuteFirstCommandL( *showText ); |
229 } |
231 } |
230 } |
232 } |
231 //---------------------------------------------------------------------------- |
233 //---------------------------------------------------------------------------- |
232 |
234 |
233 TBool CCreatorMessages::AskDataFromUserL(TInt aCommand) |
235 TBool CCreatorMessages::AskDataFromUserL(TInt aCommand) |
453 |
455 |
454 // create a new message |
456 // create a new message |
455 clientMtm->CreateMessageL(defaultServiceId); |
457 clientMtm->CreateMessageL(defaultServiceId); |
456 |
458 |
457 // set the from field to sms header |
459 // set the from field to sms header |
458 if (parameters.iFolderType == EInbox) |
460 // !!! This will cause CRASH |
|
461 /*if (parameters.iFolderType == EInbox) |
459 { |
462 { |
460 CSmsHeader* smsHeader = &clientMtm->SmsHeader(); |
463 CSmsHeader* smsHeader = &clientMtm->SmsHeader(); |
461 delete smsHeader; |
464 delete smsHeader; // <-- This will cause CRASH |
462 smsHeader = NULL; |
465 smsHeader = NULL; |
463 smsHeader = CSmsHeader::NewL(CSmsPDU::ESmsDeliver, clientMtm->Body()); |
466 smsHeader = CSmsHeader::NewL(CSmsPDU::ESmsDeliver, clientMtm->Body()); |
464 if( parameters.iSenderAddress ) |
467 if( parameters.iSenderAddress ) |
465 { |
468 { |
466 smsHeader->SetFromAddressL( parameters.iSenderAddress->Des() ); |
469 smsHeader->SetFromAddressL( parameters.iSenderAddress->Des() ); |
467 } |
470 } |
468 else |
471 else |
469 { |
472 { |
470 smsHeader->SetFromAddressL(KEmpty); |
473 smsHeader->SetFromAddressL(KEmpty); |
471 } |
474 } |
472 } |
475 } */ |
473 |
476 |
474 // set body |
477 // set body |
475 clientMtm->Body().Reset(); |
478 clientMtm->Body().Reset(); |
476 clientMtm->Body().InsertL(0, parameters.iMessageBodyText->Des()); |
479 clientMtm->Body().InsertL(0, parameters.iMessageBodyText->Des()); |
477 |
480 |
479 TMsvEntry messageEntry = clientMtm->Entry().Entry(); |
482 TMsvEntry messageEntry = clientMtm->Entry().Entry(); |
480 |
483 |
481 // set the details field |
484 // set the details field |
482 if (parameters.iFolderType == EInbox) |
485 if (parameters.iFolderType == EInbox) |
483 { |
486 { |
484 SetSenderToEntryDetails(messageEntry, parameters, EFalse); |
487 SetSenderToEntryDetailsL(messageEntry, parameters, EFalse); |
485 } |
488 } |
486 else |
489 else |
487 { |
490 { |
488 SetRecipientToEntryDetails(messageEntry, parameters, EFalse); |
491 SetRecipientToEntryDetailsL(messageEntry, parameters, EFalse); |
489 // Add all recipients to clientMtm |
492 // Add all recipients to clientMtm |
490 // iRecipientArray is up-to-date so don't call AddRecipientsL here |
493 // iRecipientArray is up-to-date so don't call AddRecipientsL here |
491 for( TInt i = 0; i < iRecipientArray.Count(); i++ ) |
494 for( TInt i = 0; i < iRecipientArray.Count(); i++ ) |
492 { |
495 { |
493 clientMtm->AddAddresseeL( iRecipientArray[i]->Des() ); |
496 clientMtm->AddAddresseeL( iRecipientArray[i]->Des() ); |
662 TMsvEntry messageEntry = clientMtm->Entry().Entry(); |
665 TMsvEntry messageEntry = clientMtm->Entry().Entry(); |
663 |
666 |
664 // set the details field |
667 // set the details field |
665 if (parameters.iFolderType == EInbox) |
668 if (parameters.iFolderType == EInbox) |
666 { |
669 { |
667 SetSenderToEntryDetails(messageEntry, parameters, EFalse); |
670 SetSenderToEntryDetailsL(messageEntry, parameters, EFalse); |
668 } |
671 } |
669 else |
672 else |
670 { |
673 { |
671 SetRecipientToEntryDetails(messageEntry, parameters, EFalse); |
674 SetRecipientToEntryDetailsL(messageEntry, parameters, EFalse); |
672 } |
675 } |
673 |
676 |
674 // set the description field same as the message subject |
677 // set the description field same as the message subject |
675 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
678 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
676 |
679 |
921 TMsvEntry messageEntry = clientMtm->Entry().Entry(); |
924 TMsvEntry messageEntry = clientMtm->Entry().Entry(); |
922 |
925 |
923 // set the details field |
926 // set the details field |
924 if (parameters.iFolderType == EInbox) |
927 if (parameters.iFolderType == EInbox) |
925 { |
928 { |
926 SetSenderToEntryDetails(messageEntry, parameters, EFalse); |
929 SetSenderToEntryDetailsL(messageEntry, parameters, EFalse); |
927 } |
930 } |
928 else |
931 else |
929 { |
932 { |
930 SetRecipientToEntryDetails(messageEntry, parameters, EFalse); |
933 SetRecipientToEntryDetailsL(messageEntry, parameters, EFalse); |
931 } |
934 } |
932 |
935 |
933 // set the description field same as the message subject |
936 // set the description field same as the message subject |
934 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
937 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
935 messageEntry.iBioType = KUidMsgSubTypeMmsAudioMsg.iUid; |
938 messageEntry.iBioType = KUidMsgSubTypeMmsAudioMsg.iUid; |
1086 |
1089 |
1087 // set the address fields |
1090 // set the address fields |
1088 if (parameters.iFolderType == EInbox) |
1091 if (parameters.iFolderType == EInbox) |
1089 { |
1092 { |
1090 AddSenderToMtmAddresseeL(*clientMtm, parameters, ETrue ); |
1093 AddSenderToMtmAddresseeL(*clientMtm, parameters, ETrue ); |
1091 SetSenderToEntryDetails(messageEntry, parameters, ETrue); |
1094 SetSenderToEntryDetailsL(messageEntry, parameters, ETrue); |
1092 messageEntry.iMtm = KUidMsgTypeIMAP4; // or any other than KUidMsgTypeSMTP to display 'from' field instead of 'to' field |
1095 messageEntry.iMtm = KUidMsgTypeIMAP4; // or any other than KUidMsgTypeSMTP to display 'from' field instead of 'to' field |
1093 } |
1096 } |
1094 else |
1097 else |
1095 { |
1098 { |
1096 // Add all recipients to clientMtm |
1099 // Add all recipients to clientMtm |
1097 AddRecipientsL( *clientMtm, parameters, ETrue ); |
1100 AddRecipientsL( *clientMtm, parameters, ETrue ); |
1098 SetRecipientToEntryDetails(messageEntry, parameters, EFalse); |
1101 SetRecipientToEntryDetailsL(messageEntry, parameters, EFalse); |
1099 } |
1102 } |
1100 |
1103 |
1101 // set the description field same as the message subject |
1104 // set the description field same as the message subject |
1102 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
1105 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
1103 |
1106 |
1317 messageEntry.iBioType = KUidBIOBusinessCardMsg.iUid; |
1320 messageEntry.iBioType = KUidBIOBusinessCardMsg.iUid; |
1318 |
1321 |
1319 // set the details field |
1322 // set the details field |
1320 if (parameters.iFolderType == EInbox) |
1323 if (parameters.iFolderType == EInbox) |
1321 { |
1324 { |
1322 SetSenderToEntryDetails(messageEntry, parameters, EFalse); |
1325 SetSenderToEntryDetailsL(messageEntry, parameters, EFalse); |
1323 } |
1326 } |
1324 else |
1327 else |
1325 { |
1328 { |
1326 SetRecipientToEntryDetails(messageEntry, parameters, EFalse); |
1329 SetRecipientToEntryDetailsL(messageEntry, parameters, EFalse); |
1327 } |
1330 } |
1328 |
1331 |
1329 // set the subject line |
1332 // set the subject line |
1330 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
1333 messageEntry.iDescription.Set( parameters.iMessageSubject->Des().Left(KSmsDescriptionLength) ); |
1331 |
1334 |
1428 clientMtm->Body().Reset(); |
1431 clientMtm->Body().Reset(); |
1429 |
1432 |
1430 // set the details field and |
1433 // set the details field and |
1431 if (parameters.iFolderType == EInbox) |
1434 if (parameters.iFolderType == EInbox) |
1432 { |
1435 { |
1433 SetSenderToEntryDetails(messageEntry, parameters, EFalse); |
1436 SetSenderToEntryDetailsL(messageEntry, parameters, EFalse); |
1434 } |
1437 } |
1435 else |
1438 else |
1436 { |
1439 { |
1437 SetRecipientToEntryDetails(messageEntry, parameters, EFalse); |
1440 SetRecipientToEntryDetailsL(messageEntry, parameters, EFalse); |
1438 } |
1441 } |
1439 |
1442 |
1440 // set mtm |
1443 // set mtm |
1441 messageEntry.iMtm = aMtm; |
1444 messageEntry.iMtm = aMtm; |
1442 messageEntry.iType = KUidMsvMessageEntry; |
1445 messageEntry.iType = KUidMsvMessageEntry; |
1518 void CCreatorMessages::HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/) // from MMsvSessionObserver |
1521 void CCreatorMessages::HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/) // from MMsvSessionObserver |
1519 { |
1522 { |
1520 } |
1523 } |
1521 |
1524 |
1522 //---------------------------------------------------------------------------- |
1525 //---------------------------------------------------------------------------- |
1523 void CCreatorMessages::SetSenderToEntryDetails(TMsvEntry& aMsgEntry, const CMessagesParameters& aParameters, TBool aUseEmailAddress) |
1526 void CCreatorMessages::SetSenderToEntryDetailsL(TMsvEntry& aMsgEntry, const CMessagesParameters& aParameters, TBool aUseEmailAddress) |
1524 { |
1527 { |
1525 // Only one sender allowed: |
1528 // Only one sender allowed: |
1526 if( iSenderArray.Count() == 0 ) |
1529 if( iSenderArray.Count() == 0 ) |
1527 { |
1530 { |
1528 GetSendersL(iSenderArray, aParameters, aUseEmailAddress, 1 ); |
1531 GetSendersL(iSenderArray, aParameters, aUseEmailAddress, 1 ); |
1536 aMsgEntry.iDetails.Set(KEmpty); |
1539 aMsgEntry.iDetails.Set(KEmpty); |
1537 } |
1540 } |
1538 } |
1541 } |
1539 |
1542 |
1540 //---------------------------------------------------------------------------- |
1543 //---------------------------------------------------------------------------- |
1541 void CCreatorMessages::SetRecipientToEntryDetails(TMsvEntry& aMsgEntry, const CMessagesParameters& aParameters, TBool aUseEmailAddress) |
1544 void CCreatorMessages::SetRecipientToEntryDetailsL(TMsvEntry& aMsgEntry, const CMessagesParameters& aParameters, TBool aUseEmailAddress) |
1542 { |
1545 { |
1543 // Only one sender allowed: |
1546 // Only one sender allowed: |
1544 GetAllRecipientsL(iRecipientArray, aParameters, aUseEmailAddress); |
1547 GetAllRecipientsL(iRecipientArray, aParameters, aUseEmailAddress); |
1545 if( iRecipientArray.Count() > 0 ) |
1548 if( iRecipientArray.Count() > 0 ) |
1546 { |
1549 { |