creator/engine/src/creator_message.cpp
changeset 23 c9bf25a20c9f
parent 19 4b22a598b890
child 29 1c71b77fbc93
equal deleted inserted replaced
19:4b22a598b890 23:c9bf25a20c9f
   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         {