void ApplicationUI::SendSMSMessage(QString ToStr, QString BodyStr) { MessageService messageService; AccountService accountService; //Get the SMS/MMS account QList<Account> accountList = accountService.accounts(Service::Messages, "sms-mms"); AccountKey accountId = accountList.first().id(); //Create a conversation because sms/mms chats most of the time is a conversation ConversationBuilder* conversationBuilder = ConversationBuilder::create(); conversationBuilder->accountId(accountId); // Create a contact to whom you want to send sms/mms. int contactKey = -1; MessageContact recipient = MessageContact(contactKey, MessageContact::To, ToStr, ToStr); QList<MessageContact> participants; participants.append(recipient); //Add the contact to the conversation conversationBuilder->participants(participants); Conversation conversation = *conversationBuilder; ConversationKey conversationId = messageService.save(accountId, conversation); //Create a message Builder for sms/mms MessageBuilder* messageBuilder = MessageBuilder::create(accountId); messageBuilder->conversationId(conversationId); messageBuilder->addRecipient(recipient); messageBuilder->addAttachment( Attachment("text/plain", "body.txt", BodyStr)); Message message; message = *messageBuilder; //Sending SMS/MMS messageService.send(accountId, message); ShowToast("SMS sent successfully"); }
void MainScreen::doSend() { QList<int> order = randomizeBuyers(); //QList<Participant> receivers(m_participants.size()); typedef QPair<Participant, Participant> ParticipantPair; QList<ParticipantPair> pairs; bool success = false; while(!success) { bool errorOccurred = false; for(int i = 0; !errorOccurred && i < m_participants.size(); ++i) { // refactor the drafting out into it's own class. The Input reader // should not know about how drafting occurs int j = order[i]; Participant buyer(m_participants.value(j)["name"].value<QString>(), m_participants.value(j)["email"].value<QString>(), m_participants.value(j)["exl"].value<QStringList>()); Participant receiver(m_participants.value(i)["name"].value<QString>(), m_participants.value(i)["email"].value<QString>(), m_participants.value(i)["exl"].value<QStringList>()); if(!IsValidPair(buyer, receiver)) { errorOccurred = true; } else { pairs.append(ParticipantPair(buyer,receiver)); } } if(errorOccurred) { order = randomizeBuyers(); pairs.clear(); } else { success = true; } } AccountService* as = new AccountService(); Account account = as->defaultAccount(Service::Messages); MessageService ms; m_subject = m_mainPage->findChild<TextField*>("emailSubject")->text(); QString body = "<p>" + m_mainPage->findChild<TextArea*>("emailBody")->text() + "</p>"; for(int i = 0; i < pairs.size(); ++i) { QString greeting = "<p>Hi " + pairs[i].first.getName() + "!</p>"; QString youGot = "You Received: " + pairs[i].second.getName(); MessageBuilder* builder = MessageBuilder::create(account.id()); MessageContact rto = MessageContact(-1,MessageContact::To,pairs[i].first.getName(), pairs[i].first.getEmail()); QString fullMsg = greeting + body + youGot; QByteArray bodyData = fullMsg.toAscii(); builder->subject(m_subject); bool added; builder->addRecipient(rto,&added); builder->body(MessageBody::Html,bodyData); Message message = *builder; /* connect(&m_messageService, SIGNAL( messageUpdated(bb::pim::account::AccountKey, bb::pim::message::ConversationKey, bb::pim::message::MessageKey, bb::pim::message::MessageUpdate) ), &m_ml, SLOT( messageUpdate(bb::pim::account::AccountKey, bb::pim::message::ConversationKey, bb::pim::message::MessageKey, bb::pim::message::MessageUpdate) ) ); */ /*MessageKey mk = */ms.send(account.id(), message); /*Message sentMessage = ms.message(account.id(), mk); m_ml.setAk(account.id()); m_ml.setMk(sentMessage.id()); m_ml.setCk(sentMessage.conversationId()); m_ml.setMsg(sentMessage);*/ //******************************************************** // Set created root object as the application scene //m_navPane->setBackButtonsVisible(false); } m_worker->exit(); }