+wrt-plugins-tizen (0.2.0-12) unstable; urgency=low
+
+ * Messaging and Calendar bug fix
+ * Git : slp/pkgs/w/wrt-plugins-tizen
+ * Tag : wrt-plugins-tizen_0.2.0-12
+
+
+ -- Sangtai Kim <sangtai.kim@samsung.com> Thu, 23 Feb 2012 15:07:02 +0900
+
wrt-plugins-tizen (0.2.0-11) unstable; urgency=low
* Systeminfo bug fix
{
CalendarEventListPtr m_events;
bool m_result;
+ CalendarEvent::CalendarType m_calendarType;
public:
void setResult(bool value)
return m_result;
}
+ void setCalendarType(CalendarEvent::CalendarType value)
+ {
+ m_calendarType = value;
+ }
+ CalendarEvent::CalendarType getCalendarType() const
+ {
+ return m_calendarType;
+ }
+
void setEvents(CalendarEventListPtr value)
{
m_events = value;
return m_events;
}
- IEventAddEvents() : m_result(false)
+ IEventAddEvents() : m_result(false), m_calendarType(CalendarEvent::EVENT_TYPE)
{
LogDebug("entered");
}
CalendarEventListPtr m_events;
bool m_result;
EventFilterPtr m_filter;
+ CalendarEvent::CalendarType m_calendarType;
/* generic filter parameters */
Tizen::FilterPtr m_genericFilter;
return m_result;
}
+ void setCalendarType(CalendarEvent::CalendarType value)
+ {
+ m_calendarType = value;
+ }
+ CalendarEvent::CalendarType getCalendarType() const
+ {
+ return m_calendarType;
+ }
+
void addEvent(CalendarEventPtr value)
{
m_events->push_back(value);
}
IEventFindEvents() : m_result(false),
+ m_calendarType(CalendarEvent::EVENT_TYPE),
m_genericFilterIsSet(false),
m_sortModesIsSet(false),
m_attributesOfInterestIsSet(false)
return m_result;
}
+ void setCalendarType(CalendarEvent::CalendarType value)
+ {
+ m_calendarType = value;
+ }
+ CalendarEvent::CalendarType getCalendarType() const
+ {
+ return m_calendarType;
+ }
+
CalendarEventListPtr getEventList() const {
return m_eventList;
}
CalendarEventListPtr m_eventList;
EventChangeStatus m_status;
bool m_result;
+ CalendarEvent::CalendarType m_calendarType;
};
typedef DPL::SharedPtr<OnEventsChanged> OnEventsChangedPtr;
void ReqReceiverMessage::syncFolder(const EventMessagingServicePtr& event)
{
LogDebug("enter");
+
+ if (event && event->m_messagingService && event->m_messagingService->getAccountID() > 0)
+ {
+ //check pop3 folder
+ emf_account_t* accounts = NULL;
+ if (email_get_account( event->m_messagingService->getAccountID(), GET_FULL_DATA, &accounts))
+ {
+ LogDebug("accounts[0].receiving_server_type = " << accounts[0].receiving_server_type);
+ LogDebug("m_folder_name = " << event->m_folder_name);
+ if ( accounts[0].receiving_server_type == EMF_SERVER_TYPE_POP3 && event->m_folder_name != "INBOX" )
+ {
+ LogDebug("Can't Sync Folder because POP3 spec.");
+ ThrowMsg(WrtDeviceApis::Commons::UnsupportedException, "Operation Type is mismatched");
+ }
+
+ if (accounts != NULL)
+ {
+ email_free_account(&accounts, 1);
+ }
+ }
+ }
+
EventMessagingServiceReqReceiver::PostRequest(event);
}
{
Api::Messaging::IEmailPtr email = Api::Messaging::MessageFactory::convertToEmail(msg);
Try {
-
-
+
if (email_get_account_list(&accounts, &count)) {
if (0 < count)
{
IMessagePtr msg = event->m_message;
if(msg)
{
+
msg->setRequestReceiver(this);
msg->setMessagingServiceEvent(event);
LogDebug("messaging service type :" << type);
event->m_messagingService->setRequestReceiver(this);
- event->m_messagingService->setMessagingServiceEvent(event); //
-
+ event->m_messagingService->setMessagingServiceEvent(event);
if (type == Api::Messaging::EMAIL)
{
event->switchToManualAnswer(); //switch to manual answer;
LogInfo("Last change fetch time: "<<thisCalendar->getLastChangeFetchTime());
eventPtr->setResult(true);
+ eventPtr->setCalendarType(thisCalendar->getType());
if( eventPtr->getEventList()->size() > 0 ) {
thisCalendar->m_changeEmitters.emit(eventPtr);
ThrowMsg(InvalidArgumentException, "Contact argument is wrong");
internalAddContact(contact);
- m_latestVersion = get_contact_version();
+
+ string id = contact->getId();
+ if(id != "")
+ {
+ ContactPtr insertedContact = internalGetById(id);
+ contact->copy(insertedContact);
+ }
+
+ //m_latestVersion = get_contact_version();
}
void AddressBook::update(const ContactPtr &contact)
ThrowMsg(InvalidArgumentException, "Contact argument is wrong");
internalAddContact(contact);
- m_latestVersion = get_contact_version();
+ //m_latestVersion = get_contact_version();
}
void AddressBook::remove(const string &id)
LogError("Error during deleting contact. " << _rethrown_exception.GetMessage());
ThrowMsg(PlatformException, "Error during deleting contact.");
}
- m_latestVersion = get_contact_version();
+ //m_latestVersion = get_contact_version();
}
long AddressBook::addChangeListener(const EventAddressBookChangeListenerEmitterPtr &emitter)
LogError("error code " << ret);
ThrowMsg(PlatformException, "Error during executing contacts_svc_end_trans()");
}
+
+ for(ContactArray::iterator i = contacts->begin(); i != contacts->end(); i++)
+ {
+ ContactPtr contact = *i;
+
+ string id = contact->getId();
+ if(id != "")
+ {
+ ContactPtr insertedContact = internalGetById(id);
+ contact->copy(insertedContact);
+ }
+ }
}
Catch (NotFoundException)
{
event->setExceptionCode(ExceptionCodes::PlatformException);
return;
}
- m_latestVersion = get_contact_version();
+ //m_latestVersion = get_contact_version();
event->setResult(true);
event->setExceptionCode(ExceptionCodes::None);
event->setExceptionCode(ExceptionCodes::PlatformException);
return;
}
- m_latestVersion = get_contact_version();
+ //m_latestVersion = get_contact_version();
event->setResult(true);
event->setExceptionCode(ExceptionCodes::None);
event->setExceptionCode(ExceptionCodes::PlatformException);
return;
}
- m_latestVersion = get_contact_version();
+ //m_latestVersion = get_contact_version();
event->setResult(true);
event->setExceptionCode(ExceptionCodes::None);
LogError("error code " << id);
ThrowMsg(PlatformException, "Error during executing contacts_svc_insert_contact()");
}
-
- std::stringstream oss;
- oss << id;
- std::string idStr = oss.str();
- ContactPtr insertedContact = internalGetById(idStr);
-
- newContact->copy(insertedContact);
+ newContact->setId(id);
}
}
contactName = contact->getName();
if( prefix )
- contactName->setFirstName(prefix);
+ contactName->setPrefix(prefix);
if( firstName )
- contactName->setLastName(firstName);
+ contactName->setFirstName(firstName);
if( middleName )
contactName->setMiddleName(middleName);
if( lastName )
- contactName->setDisplayName(lastName);
-
- if( phoneticName )
- contactName->setPrefix(phoneticName);
+ contactName->setLastName(lastName);
if( phoneticName )
contactName->setPhoneticName(phoneticName);
+ if( displayName )
+ contactName->setDisplayName(displayName);
+
if(!contact->getNameIsSet())
contact->setName(contactName);
}
if (CTS_SUCCESS == errorCode && value != NULL)
{
const char *charValue = NULL;
- ContactNamePtr contactName = m_abstractContact->getName();
+ ContactNamePtr contactName(new ContactName);
charValue = contacts_svc_value_get_str(value, CTS_NAME_VAL_FIRST_STR);
if (charValue)
//if (charValue)
// contactName->setPhoneticName(charValue);
+ m_abstractContact->setName(contactName);
}
else if (errorCode != CTS_ERR_NO_DATA || value == NULL)
{
try
{
+
// Todo : will be re-implemented as using email_get_thread_information_ex
if(email_get_thread_information_ex(emailTreadId, &resultMail) != EMF_ERROR_NONE)
{
ThrowMsg(WrtDeviceApis::Commons::UnknownException, "get email thread fail" );
}
+ if (!resultMail)
+ {
+ return NULL;
+ }
if (email_get_mail(&mailbox, resultMail->mail_id, &mail) != EMF_ERROR_NONE)
{
ThrowMsg(WrtDeviceApis::Commons::UnknownException, "get email data fail" );
}
-
-
+
// account Id
m_unreadMessages = 0;
-
+
+ LogDebug("start email_get_mail_list_ex");
if (email_get_mail_list_ex(accountId, NULL, emailTreadId, 0, resultMail->thread_item_count,
EMF_SORT_DATETIME_HIGH, &mailList, &count) != EMF_ERROR_NONE)
{
ThrowMsg(WrtDeviceApis::Commons::UnknownException, "get email data fail" );
}
-
+ LogDebug("end email_get_mail_list_ex");
+
// unread msg count
accountId = resultMail->account_id;
LogDebug(mail->head->previewBodyText);
m_preview = mail->head->previewBodyText;
}
-#endif
+#endif
// read
m_read = (bool)resultMail->flags_seen_field;
-
// from
if (resultMail->from[0] != '\0')
{
LogError("Exception: " << ex.GetMessage());
}
- if (resultMail != NULL)
+ if (mail != NULL)
{
- free(resultMail);
+ email_free_mail(&mail , 1);
}
- if (mail != NULL)
+ if (resultMail != NULL)
{
- email_free_mail(&mail , 1);
+ free(resultMail);
}
+
return m_result;
}
#include <CommonsJavaScript/Validator.h>
#include <CommonsJavaScript/JSUtils.h>
#include "JSCalendarItem.h"
+#include "JSCalendarEvent.h"
+#include "JSCalendarTask.h"
#include "JSCalendarItemProperties.h"
#include "JSCalendarEventId.h"
#include "JSCalendarItemGeo.h"
return JSUtils::makeObject(m_context, JSCalendarItem::getClassRef(), arg);
}
-JSValueRef CalendarConverter::toJSValueRef(const CalendarEventListPtr &arg)
+JSValueRef CalendarConverter::toJSValueRefEvent(const CalendarEventPtr& arg)
+{
+ return JSUtils::makeObject(m_context, JSCalendarEvent::getClassRef(), arg);
+}
+
+JSValueRef CalendarConverter::toJSValueRefTask(const CalendarEventPtr& arg)
+{
+ return JSUtils::makeObject(m_context, JSCalendarTask::getClassRef(), arg);
+}
+
+JSValueRef CalendarConverter::toJSValueRefItemArray(const CalendarEventListPtr &arg)
{
return toJSValueRef_(*arg, &CalendarConverter::toJSValueRefItem, this);
}
+JSValueRef CalendarConverter::toJSValueRefEventArray(const CalendarEventListPtr &arg)
+{
+ return toJSValueRef_(*arg, &CalendarConverter::toJSValueRefEvent, this);
+}
+
+JSValueRef CalendarConverter::toJSValueRefTaskArray(const CalendarEventListPtr &arg)
+{
+ return toJSValueRef_(*arg, &CalendarConverter::toJSValueRefTask, this);
+}
+
JSValueRef CalendarConverter::toJSValueRefCalendar(const ICalendarPtr& arg)
{
CalendarPrivObject *priv = new CalendarPrivObject(m_context, arg);
std::string toTizenValue(TizenApis::Api::Calendar::CalendarEvent::TaskPriority abstractValue) const;
JSValueRef toJSValueRefItem(const TizenApis::Api::Calendar::CalendarEventPtr& arg);
- JSValueRef toJSValueRef(const TizenApis::Api::Calendar::CalendarEventListPtr &arg);
+ JSValueRef toJSValueRefEvent(const TizenApis::Api::Calendar::CalendarEventPtr& arg);
+ JSValueRef toJSValueRefTask(const TizenApis::Api::Calendar::CalendarEventPtr& arg);
+ JSValueRef toJSValueRefItemArray(const TizenApis::Api::Calendar::CalendarEventListPtr &arg);
+ JSValueRef toJSValueRefEventArray(const TizenApis::Api::Calendar::CalendarEventListPtr &arg);
+ JSValueRef toJSValueRefTaskArray(const TizenApis::Api::Calendar::CalendarEventListPtr &arg);
JSValueRef toJSValueRefCalendar(const TizenApis::Api::Calendar::ICalendarPtr& arg);
JSValueRef toJSValueRef(const std::vector<TizenApis::Api::Calendar::ICalendarPtr> &arg);
LogDebug("result success");
CalendarConverterFactory::ConverterType converter =
CalendarConverterFactory::getConverter(cbm->getContext());
- cbm->callOnSuccess(converter->toJSValueRef(event->getEvents()));
+
+ JSValueRef result;
+ if (CalendarEvent::TASK_TYPE==event->getCalendarType()) {
+ result = converter->toJSValueRefTaskArray(event->getEvents());
+ } else {
+ result = converter->toJSValueRefEventArray(event->getEvents());
+ }
+
+ cbm->callOnSuccess(result);
return;
}
LogDebug("result fail");
CalendarConverterFactory::ConverterType converter =
CalendarConverterFactory::getConverter(cbm->getContext());
- JSValueRef result = converter->toJSValueRef(event->getEvents());
+ JSValueRef result;
+ if (CalendarEvent::TASK_TYPE==event->getCalendarType()) {
+ result = converter->toJSValueRefTaskArray(event->getEvents());
+ } else {
+ result = converter->toJSValueRefEventArray(event->getEvents());
+ }
cbm->callOnSuccess(result);
return;
} else {
if (event->getResult()) {
CalendarConverterFactory::ConverterType converter =
CalendarConverterFactory::getConverter(cbm->getContext());
- cbm->callOnSuccess(converter->toJSValueRef(event->getExpandedEventList()));
+ cbm->callOnSuccess(converter->toJSValueRefEventArray(event->getExpandedEventList()));
return;
} else {
JSValueRef errorObject;
JSContextRef context = multiCallbacks->getOnAdded()->getContext();
CalendarConverterFactory::ConverterType converter = CalendarConverterFactory::getConverter(context);
+ JSValueRef result;
Try
{
{
case OnEventsChanged::ON_ADD:
{
- multiCallbacks->getOnAdded()->callOnSuccess(converter->toJSValueRef(event->getEventList()));
+ if (CalendarEvent::TASK_TYPE==event->getCalendarType()) {
+ result = converter->toJSValueRefTaskArray(event->getEventList());
+ } else {
+ result = converter->toJSValueRefEventArray(event->getEventList());
+ }
+
+ multiCallbacks->getOnAdded()->callOnSuccess(result);
break;
}
case OnEventsChanged::ON_UPDATE:
{
- multiCallbacks->getOnUpdated()->callOnSuccess(converter->toJSValueRef(event->getEventList()));
+ if (CalendarEvent::TASK_TYPE==event->getCalendarType()) {
+ result = converter->toJSValueRefTaskArray(event->getEventList());
+ } else {
+ result = converter->toJSValueRefEventArray(event->getEventList());
+ }
+ multiCallbacks->getOnUpdated()->callOnSuccess(result);
break;
}
case OnEventsChanged::ON_DELETE:
//calendar->setAddEmitter(emitter);
IEventAddEventsPtr dplEvent(new IEventAddEvents());
+ dplEvent->setCalendarType(calendar->getType());
dplEvent->setEvents(events);
dplEvent->setPrivateData(DPL::StaticPointerCast<IEventPrivateData>(cbm));
dplEvent->setForAsynchronousCall(&CalendarResponseDispatcher::getInstance());
}
IEventFindEventsPtr dplEvent(new IEventFindEvents());
+ dplEvent->setCalendarType(calendar->getType());
dplEvent->setPrivateData(DPL::StaticPointerCast<IEventPrivateData>(cbm));
dplEvent->setForAsynchronousCall(&CalendarResponseDispatcher::getInstance());
LogDebug("entered");
Try
{
- CalendarConverterFactory::ConverterType converter =
- CalendarConverterFactory::getConverter(context);
+ CalendarItemPropertiesPrivObject *priv =
+ static_cast<CalendarItemPropertiesPrivObject*>(JSObjectGetPrivate(object));
+
CalendarEventPtr event = getPrivateObject(object);
- JSObjectRef jsResult = JSCreateArrayObject(context, 0, NULL);
+ JSObjectRef jsResult = JSCreateArrayObject(priv->getContext(), 0, NULL);
if (NULL == jsResult) {
ThrowMsg(NullPointerException, "Could not create js array object");
}
alarm->setTimeZone(event->getTimeZone());
alarm->setDescription(event->getAlarmsDescription().at(i));
- if (!JSSetArrayElement(context, jsResult, i, JSCalendarAlarm::createJSCalendarAlarm(context, alarm))) {
+ if (!JSSetArrayElement(priv->getContext(), jsResult, i, JSCalendarAlarm::createJSCalendarAlarm(priv->getContext(), alarm))) {
ThrowMsg(UnknownException, "Could not insert value into js array");
}
}
LogDebug("entered");
Try
{
- CalendarConverterFactory::ConverterType converter =
- CalendarConverterFactory::getConverter(context);
+ CalendarItemPropertiesPrivObject *priv =
+ static_cast<CalendarItemPropertiesPrivObject*>(JSObjectGetPrivate(object));
+
CalendarEventPtr event = getPrivateObject(object);
EventRecurrenceRulePtr rrule = event->getRecurrenceRule();
if (rrule) {
- return JSCalendarRecurrenceRule::createJSCalendarRecurrenceRule(context, rrule);
+ return JSCalendarRecurrenceRule::createJSCalendarRecurrenceRule(priv->getContext(), rrule);
}
}
Catch(Exception)
LogDebug("entered");
Try
{
+ CalendarItemPropertiesPrivObject *priv =
+ static_cast<CalendarItemPropertiesPrivObject*>(JSObjectGetPrivate(object));
+
CalendarEventPtr event = getPrivateObject(object);
EventAttendeeListPtr attendees = event->getAttendees();
if (attendees) {
- JSObjectRef jsResult = JSCreateArrayObject(context, 0, NULL);
+ JSObjectRef jsResult = JSCreateArrayObject(priv->getContext(), 0, NULL);
if (NULL == jsResult) {
ThrowMsg(NullPointerException, "Could not create js array object");
}
for(unsigned int i=0; i<attendees->size(); i++) {
- if (!JSSetArrayElement(context, jsResult, i, JSCalendarAttendee::createJSCalendarAttendee(context, attendees->at(i)))) {
+ if (!JSSetArrayElement(priv->getContext(), jsResult, i, JSCalendarAttendee::createJSCalendarAttendee(priv->getContext(), attendees->at(i)))) {
ThrowMsg(UnknownException, "Could not insert value into js array");
}
}
if(JSIsArrayValue(gContext, arguments[1]))
types = converter->toContactEmailAddressTypeArray(arguments[1]);
}
+ if(types == NULL)
+ types = ContactEmailAddressTypeArrayPtr(new ContactEmailAddressTypeArray());
} Catch(Exception) {
LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
*exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
ContactEmailAddressPtr contactEmailAddress(new ContactEmailAddress());
contactEmailAddress->setEmail(email);
- if(types != NULL)
- contactEmailAddress->setTypes(types);
+ contactEmailAddress->setTypes(types);
JSObjectRef jsobject;
BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
Try {
- if (argumentCount != 2)
+ if (argumentCount < 1 || argumentCount > 2)
ThrowMsg(InvalidArgumentException, "Wrong arguments count.");
if (!JSValueIsString(gContext, arguments[0]))
ThrowMsg(InvalidArgumentException, "1st argument is not string.");
- if (!JSIsArrayValue(gContext, arguments[1]))
- ThrowMsg(InvalidArgumentException, "2nd argument is not array.");
+ if (argumentCount >= 2)
+ {
+ if (!JSIsArrayValue(gContext, arguments[1]) && !JSValueIsNull(gContext, arguments[1]))
+ ThrowMsg(InvalidArgumentException, "2nd argument is not array.");
+ }
} Catch(Exception ) {
LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(gContext);
std::string number;
- ContactPhoneNumberTypeArrayPtr types;
+ ContactPhoneNumberTypeArrayPtr types(NULL);
Try {
number = converter->toString(arguments[0]);
}
Try {
- types = converter->toContactPhoneNumberTypeArray(arguments[1]);
- if(types->size() == 0)
+ if(argumentCount >= 2)
+ {
+ if(JSIsArrayValue(gContext, arguments[1]))
+ types = converter->toContactPhoneNumberTypeArray(arguments[1]);
+ }
+ if(types == NULL)
+ {
+ types = ContactPhoneNumberTypeArrayPtr(new ContactPhoneNumberTypeArray());
types->push_back(CONTACT_PHONE_NUMBER_TYPE_VOICE);
+ }
} Catch(Exception) {
LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
*exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
{
//Api::Messaging::IEmailPtr email = DPL::StaticPointerCast<Api::IEmailPtr>(Api::Messaging::MessageFactory::convertToEmail(msg));
Api::Messaging::IEmailPtr email = Api::Messaging::MessageFactory::convertToEmail(msg);
- return converter.toJSValueRef(email->isBodyDownloaded());
+ return converter.toJSValueRef(email->isBodyDownloaded() > 0 ? true : false);
}
else
{
MessagingExportedNames[MESSAGING_FUNCTION_API_LOAD_MESSAGE_BODY]);
TIZEN_ASYNC_CBM_ACCESS_HANDLER(status, context, callbackManager);
- if (JSValueIsObject(context, arguments[0]) && Validator(context).isCallback(arguments[0])) //check
+ if ( JSValueIsObject(context, arguments[0]) )
{
- callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[0]));
- if (converter->toFunctionOrNull(arguments[1]) && Validator(context).isCallback(arguments[1]) )
- {
- callbackManager->setOnError(converter->toFunctionOrNull(arguments[1]));
+ switch(argumentCount){
+ case 3:
+ {
+ if ( Validator(context).isCallback(arguments[2]))
+ {
+ callbackManager->setOnError(converter->toFunctionOrNull(arguments[2]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
+ case 2:
+ {
+ if ( Validator(context).isCallback(arguments[1]))
+ {
+ callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[1]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
}
- Api::Messaging::EventMessagingServicePtr event(new Api::Messaging::EventMessagingService()); //create event
- if ( JSValueIsObject(context, arguments[2]) )
- {
- event->m_message = converter->toIMessage(arguments[2]) ;
+ Api::Messaging::EventMessagingServicePtr event(new Api::Messaging::EventMessagingService()); //create even
+ event->m_message = converter->toIMessage(arguments[0]) ;
+ if ( event->m_message )
+ {
+ int msgType = event->m_message->getMessageType();
LogDebug("Message Type =" << event->m_message->getMessageType());
- privateData->setMessageJSValueRef(arguments[2]); //set Message JSValueRef.
- }
- else
- {
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ if (msgType == Api::Messaging::EMAIL)
+ {
+ Api::Messaging::IEmailPtr email = Api::Messaging::MessageFactory::convertToEmail(event->m_message);
+ if (email && email->isBodyDownloaded() > 0)
+ {
+ callbackManager->callOnSuccess(arguments[0]);
+ return JSValueMakeNull(context);
+ }
+ }
+ else
+ {
+ callbackManager->callOnSuccess(arguments[0]);
+ return JSValueMakeNull(context);
+ }
+
+ privateData->setMessageJSValueRef(arguments[0]); //set Message JSValueRef.
}
- IMessagingServicePtr imessagingService = priv->getObject();
+ IMessagingServicePtr imessagingService = priv->getObject();
int opId = imessagingService->createOpId(MESSAGING_SERVICE_OP_DOWNLOAD_BODY);
LogDebug("Operation ID is = " << opId);
Try {
- if (JSValueIsObject(context, arguments[0]) && Validator(context).isCallback(arguments[0])) //check
+ //check permission.
+ AceSecurityStatus status = MESSAGING_CHECK_ACCESS(
+ priv->getContext(),
+ MessagingExportedNames[MESSAGING_FUNCTION_API_LOAD_MESSAGE_ATTACHMENT]);
+ TIZEN_ASYNC_CBM_ACCESS_HANDLER(status, context, callbackManager);
+
+ if (JSValueIsObject(context, arguments[0]) && !JSValueIsNull(context, arguments[0]))
{
EventMessagingServicePrivateDataPtr privateData( new EventMessagingServicePrivateData(callbackManager) );
+ if (!privateData)
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
- callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[0]));
- if (converter->toFunctionOrNull(arguments[1]) && Validator(context).isCallback(arguments[1]) )
- {
- callbackManager->setOnError(converter->toFunctionOrNull(arguments[1]));
+ switch(argumentCount){
+ case 3:
+ {
+ if ( Validator(context).isCallback(arguments[2]))
+ {
+ callbackManager->setOnError(converter->toFunctionOrNull(arguments[2]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
+ case 2:
+ {
+ if ( Validator(context).isCallback(arguments[1]))
+ {
+ callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[1]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
}
- //check permission.
- AceSecurityStatus status = MESSAGING_CHECK_ACCESS(
- priv->getContext(),
- MessagingExportedNames[MESSAGING_FUNCTION_API_LOAD_MESSAGE_ATTACHMENT]);
- TIZEN_ASYNC_CBM_ACCESS_HANDLER(status, context, callbackManager);
-
- IMessagingServicePtr imessagingService = priv->getObject();
Api::Messaging::EventMessagingServicePtr event(new Api::Messaging::EventMessagingService()); //create event
-
- LogInfo("event");
-
event->setEventType(EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_ATTACHMENT);
event->setPrivateData(DPL::StaticPointerCast<WrtDeviceApis::Commons::IEventPrivateData>(privateData));
event->setForAsynchronousCall(&MessagingController::getInstance());
- LogInfo("agu");
- if (argumentCount == 3 && !JSValueIsNull(context, arguments[2]))
- {
- Api::Messaging::IAttachmentPtr iAttchmentPtr = converter->toIAttachment(arguments[2]);
- privateData->setMessageJSValueRef(arguments[2]); //set Message JSValueRef.
- if (iAttchmentPtr)
- {
- event->m_attachment = iAttchmentPtr;
- event->m_message = event->m_attachment->getMessage();
-
- if (!event->m_message)
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
- }
- else
- {
+
+ Api::Messaging::IAttachmentPtr iAttchmentPtr = converter->toIAttachment(arguments[0]);
+ if (iAttchmentPtr)
+ {
+ event->m_attachment = iAttchmentPtr;
+ event->m_message = event->m_attachment->getMessage();
+
+ if (!event->m_message)
return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::NOT_FOUND_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_FOUND);
- }
+ JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
+
+ privateData->setMessageJSValueRef(arguments[0]); //set attachment JSValueRef.
}
else
{
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::NOT_FOUND_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_FOUND);
}
-
- int opId = imessagingService->createOpId(MESSAGING_SERVICE_OP_DOWNLOAD_ATTACHMENT);
- LogDebug("Operation ID is = " << opId);
-
- event->opId = opId;
- imessagingService->setMessageToOpId(opId, event->m_message);
- LogInfo("pendingOperation");
- //JSValueRef pendingOperation = WrtDeviceApis::CommonsJavaScript::makePendingOperation(globalContext, event); //create pendingOperation.
- Api::Messaging::ReqReceiverMessageSingleton::Instance().loadMessageAttachment(event); //load message Body
-
- return converter->toJSValueRef(event->opId);
+ IMessagingServicePtr imessagingService = priv->getObject();
+ if (imessagingService)
+ {
+ int opId = imessagingService->createOpId(MESSAGING_SERVICE_OP_DOWNLOAD_ATTACHMENT);
+ LogDebug("Operation ID is = " << opId);
+ event->opId = opId;
+ imessagingService->setMessageToOpId(opId, event->m_message);
+
+ //JSValueRef pendingOperation = WrtDeviceApis::CommonsJavaScript::makePendingOperation(globalContext, event); //create pendingOperation.
+ Api::Messaging::ReqReceiverMessageSingleton::Instance().loadMessageAttachment(event); //load message Body
+
+ return converter->toJSValueRef(event->opId);
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::NOT_FOUND_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_FOUND);
+ }
+
+
}
else
{
return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
}
}
IMessagingServicePtr imessagingService = priv->getObject(); //get MessagingService.
-
Api::Messaging::MessageType msgType = (Api::Messaging::MessageType)imessagingService->getType();
LogInfo("msgType :" << msgType);
if (JSValueIsObject(context, arguments[0]) && !Validator(context).isCallback(arguments[0])) //check
{
-
AceSecurityStatus status = MESSAGING_CHECK_ACCESS(
priv->getContext(),
MessagingExportedNames[MESSAGING_FUNCTION_API_SYNC_FOLDER]);
IMessageFolderPtr folder = converter->toIMessageFolder(arguments[0]);
if ( folder )
{
- event->m_folder_name = folder->getName(); //it will be changed to the folder ptr
+ //event->m_folder_name = folder->getName(); //it will be changed to the folder ptr
+ event->m_folder_name = folder->getPath(); //it will be changed to the folder ptr
}
if ( argumentCount > 1 )
JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_TYPE_MISMATCH);
}
}
+ Catch(WrtDeviceApis::Commons::UnsupportedException) {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::NOT_SUPPORTED_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_SUPPORTED);
+ }
Catch(WrtDeviceApis::Commons::ConversionException) {
return JSTizenExceptionFactory::postException(context, exception,
JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_TYPE_MISMATCH);