From: Krzysztof Lachacz Date: Tue, 13 Jan 2015 13:07:25 +0000 (+0100) Subject: [Messaging] MMS message service support X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~603^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e407433fb3a149294c9bb0e072bed5b7ea0c046;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Messaging] MMS message service support [Verification] Code compiles without errors. Change-Id: I3e5486af85aa8a5e4bea33c6bd4f8bb47790f9ac Signed-off-by: Krzysztof Lachacz --- diff --git a/src/messaging/messaging_manager.cc b/src/messaging/messaging_manager.cc index cc272aea..7d3a7db9 100755 --- a/src/messaging/messaging_manager.cc +++ b/src/messaging/messaging_manager.cc @@ -39,6 +39,7 @@ MessagingManager::MessagingManager() } m_sms_service = std::make_pair(UNDEFINED_MESSAGE_SERVICE, nullptr); + m_mms_service = std::make_pair(UNDEFINED_MESSAGE_SERVICE, nullptr); } MessagingManager::~MessagingManager() @@ -59,6 +60,9 @@ 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() @@ -102,7 +106,7 @@ static void* getMsgServicesThread(const std::shared_ptr& 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); @@ -116,8 +120,28 @@ static void* getMsgServicesThread(const std::shared_ptr& } 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 @@ -202,6 +226,7 @@ void MessagingManager::getMessageServices(const std::string& type, double callba 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 (getMsgServicesThread, callbackCompleted, user_data); @@ -210,6 +235,8 @@ void MessagingManager::getMessageServices(const std::string& type, double callba 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]; } diff --git a/src/messaging/messaging_manager.h b/src/messaging/messaging_manager.h index 77e47212..2ba815ab 100755 --- a/src/messaging/messaging_manager.h +++ b/src/messaging/messaging_manager.h @@ -20,6 +20,7 @@ public: std::shared_ptr json; std::map* services_map; std::pair* sms_service; + std::pair* mms_service; }; class MessagingManager { @@ -37,6 +38,7 @@ private: msg_handle_t m_msg_handle; std::map m_email_services; std::pair m_sms_service; + std::pair m_mms_service; }; } // namespace messaging