DPL::StaticPointerCast<EventMessagingServicePrivateData>(event->getPrivateData());
WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr callbackManager = privateData->getCallbackManager(); //get callback manager
- JSContextRef l_globalContext = callbackManager->getContext();
+ JSContextRef globalContext = callbackManager->getContext();
int MessagingServiceEventType = event->getEventType();
LogDebug(" MessagingServiceEvent Type :" << MessagingServiceEventType);
ConverterMessageFactory::ConverterType converter =
- ConverterMessageFactory::getConverter(l_globalContext);
+ ConverterMessageFactory::getConverter(globalContext);
- if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_BODY)
+ if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_BODY)
{
LogDebug(" Message Sync Folder");
LogDebug("Operation ID : " << event->opId);
callbackManager->callOnError(msg);
}
}
- else if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_ATTACHMENT)
+ else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_ATTACHMENT)
{
if (event->getExceptionCode() == ExceptionCodes::None)
{
callbackManager->callOnError();
}
}
- else if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_SYNC)
+ else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_SYNC)
{
LogDebug(" Message Sync :");
LogDebug("Operation ID : " << event->opId);
callbackManager->callOnError();
}
}
- else if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_SYNC_FOLDER)
+ else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_SYNC_FOLDER)
{
LogDebug(" Message Sync Folder");
LogDebug("Operation ID : " << event->opId);
callbackManager->callOnError();
}
}
+ else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_SEND_MESSAGE)
+ {
+ JSValueRef error = NULL;
+ WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr recipientCallbackManager = privateData->getRecipientCallbackManager();
+
+ if (WrtDeviceApis::Commons::ExceptionCodes::None != event->getExceptionCode()) {
+ switch (event->getExceptionCode()) {
+ case WrtDeviceApis::Commons::ExceptionCodes::PlatformException:
+ case WrtDeviceApis::Commons::ExceptionCodes::ConversionException:
+ error = JSTizenExceptionFactory::makeErrorObject(globalContext,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ default:
+ error = JSTizenExceptionFactory::makeErrorObject(globalContext,
+ JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
+ }
+ }
+
+ ConverterMessage converter(globalContext);
+
+ //remove operation handle
+ if (event->m_messagingService)
+ {
+ LogDebug("Operation ID : " << event->opId);
+ event->m_messagingService->deleteOpId(event->opId);
+ }
+ if (WrtDeviceApis::Commons::ExceptionCodes::None == event->getExceptionCode())
+ {
+ LogDebug(" success size : " << event->m_successRecipients.size());
+ std::vector<JSValueRef> successRecipentList;
+
+ int cnt = event->m_successRecipients.size();
+ LogDebug( "success count : " << cnt);
+
+ for(int index = 0; index < cnt; index++)
+ {
+ LogDebug( "success recipent : " << event->m_successRecipients[index]);
+ successRecipentList.push_back(converter.toJSValueRef(event->m_successRecipients[index]));
+ }
+
+ JSObjectRef result = JSObjectMakeArray(globalContext, cnt, successRecipentList.data(), NULL);
+ callbackManager->callOnSuccess(result);
+
+ }
+ else {
+ //JSValueRef params[] = { error, recipient };
+ //callbackManager->callOnError( params, sizeof(params) / sizeof(params[0]));
+ callbackManager->callOnError(error);
+ }
+
+ }
else
{
- callbackManager->callOnError(JSValueMakeUndefined(l_globalContext));
+ callbackManager->callOnError(JSValueMakeUndefined(globalContext));
}
}
}
ConverterMessage converter(context);
- JSValueRef recipient = converter.toJSValueRef(event->getRecipient());
+ //JSValueRef recipient = converter.toJSValueRef(event->getRecipient());
//remove operation handle
if (event->m_messagingService)