}
m_sms_service = std::make_pair(UNDEFINED_MESSAGE_SERVICE, nullptr);
+ m_mms_service = std::make_pair(UNDEFINED_MESSAGE_SERVICE, nullptr);
}
MessagingManager::~MessagingManager()
if (m_sms_service.second) {
delete m_sms_service.second;
}
+ if (m_mms_service.second) {
+ delete m_mms_service.second;
+ }
}
MessagingManager& MessagingManager::getInstance()
MessageType::SMS);
if (!service) {
LoggerE("MessageService for SMS creation failed");
- throw common::UnknownException("MessageService for email creation failed");
+ throw common::UnknownException("MessageService for SMS creation failed");
}
*(user_data->sms_service) = std::make_pair(service->getMsgServiceId(), service);
}
break;
case MessageType::MMS:
- LoggerD("Currently unsupported");
- // TODO add class which will extended message_service and call message_service_short_msg
+ LoggerD("MessageService for MMS");
+ {
+ if (user_data->mms_service->second) {
+ delete user_data->mms_service->second;
+ }
+
+ MessageService* service = new(std::nothrow) MessageServiceShortMsg(
+ MessageServiceAccountId::MMS_ACCOUNT_ID,
+ MessageType::MMS);
+ if (!service) {
+ LoggerE("MessageService for MMS creation failed");
+ throw common::UnknownException("MessageService for MMS creation failed");
+ }
+ *(user_data->mms_service) = std::make_pair(service->getMsgServiceId(), service);
+
+ picojson::array array;
+ array.push_back(picojson::value(service->toPicoJS()));
+ obj[JSON_DATA] = picojson::value(array);
+ obj[JSON_ACTION] = picojson::value(JSON_CALLBACK_SUCCCESS);
+
+ service = NULL;
+ }
break;
case MessageType::EMAIL:
// TODO FIXME need to work on readability of that case
user_data->json = json;
user_data->services_map = &m_email_services;
user_data->sms_service = &m_sms_service;
+ user_data->mms_service = &m_mms_service;
common::TaskQueue::GetInstance().Queue<MsgManagerCallbackData>
(getMsgServicesThread, callbackCompleted, user_data);
MessageService* MessagingManager::getMessageService(const int id) {
if (id == m_sms_service.first) {
return m_sms_service.second;
+ } else if (id == m_mms_service.first) {
+ return m_mms_service.second;
} else {
return m_email_services[id];
}
std::shared_ptr<picojson::value> json;
std::map<int, MessageService*>* services_map;
std::pair<int, MessageService*>* sms_service;
+ std::pair<int, MessageService*>* mms_service;
};
class MessagingManager {
msg_handle_t m_msg_handle;
std::map<int, MessageService*> m_email_services;
std::pair<int, MessageService*> m_sms_service;
+ std::pair<int, MessageService*> m_mms_service;
};
} // namespace messaging