ThrowMsg(PlatformException, "Can't set alarm type.");
}
+ // Set the display text
+ errorCode = calendar_svc_value_set_str(
+ value,
+ CAL_VALUE_TXT_ALARMS_DESCRIPTION,
+ m_abstractEvent->getAlarmsDescription().at(i).c_str());
+ if (CAL_SUCCESS != errorCode) {
+ if (value) {
+ calendar_svc_value_free(&value);
+ }
+ LogError("Can't set CAL_VALUE_TXT_ALARMS_DESCRIPTION, error: " << errorCode);
+ ThrowMsg(PlatformException, "Can't set alarm description.");
+ }
+
list = g_list_append(list, value);
}
ThrowMsg(UnknownException, "Null platform pointer.");
}
-// calendar F/W not supported
-// time_t time = m_abstractEvent->getCreatedDate();
-// if (CAL_SUCCESS != calendar_svc_struct_set_time(m_platformTask,
-// CAL_VALUE_GMT_CREATED_DATE_TIME,
-// CAL_TZ_FLAG_GMT,
-// time)) {
-// ThrowMsg(PlatformException, "Can't set created time.");
-// }
+ time_t time = m_abstractEvent->getCreatedDate();
+ if (CAL_SUCCESS != calendar_svc_struct_set_time(m_platformEvent,
+ CAL_VALUE_GMT_CREATED_DATE_TIME,
+ CAL_TZ_FLAG_GMT,
+ time)) {
+ ThrowMsg(PlatformException, "Can't set created time.");
+ }
}
void EventWrapper::setCompletedDateToPlatformEvent()
ThrowMsg(UnknownException, "Null platform pointer.");
}
-// calendar F/W not supported
-// time_t time = m_abstractEvent->getCompletedDate();
-// if (CAL_SUCCESS != calendar_svc_struct_set_time(m_platformEvent,
-// CAL_VALUE_GMT_COMPLETED_DATE_TIME,
-// CAL_TZ_FLAG_GMT,
-// time)) {
-// ThrowMsg(PlatformException, "Can't set task completed time.");
-// }
+ time_t time = m_abstractEvent->getCompletedDate();
+ if (CAL_SUCCESS != calendar_svc_struct_set_time(m_platformEvent,
+ CAL_VALUE_GMT_COMPLETED_DATE_TIME,
+ CAL_TZ_FLAG_GMT,
+ time)) {
+ ThrowMsg(PlatformException, "Can't set task completed time.");
+ }
}
void EventWrapper::setProgressToPlatformEvent()
ThrowMsg(UnknownException, "Null platform pointer.");
}
-// int progress = m_abstractEvent->getProgress();
-// not supported
-// if (CAL_SUCCESS != calendar_svc_struct_set_int(m_platformEvent,
-// CAL_VALUE_INT_PROGRESS,
-// progress)) {
-// ThrowMsg(PlatformException, "Can't set visibility.");
-// }
+ int progress = m_abstractEvent->getProgress();
+ if (CAL_SUCCESS != calendar_svc_struct_set_int(m_platformEvent,
+ CAL_VALUE_INT_PROGRESS,
+ progress)) {
+ ThrowMsg(PlatformException, "Can't set visibility.");
+ }
}
CalendarEventPtr EventWrapper::convertPlatformEventToAbstractEvent()
m_abstractEvent->getAlarmsType().push_back(CalendarEvent::NO_ALARM);
break;
}
+
+ const char* description = calendar_svc_value_get_str(alarmValue, CAL_VALUE_TXT_ALARMS_DESCRIPTION);
+ if (NULL == description) {
+ LogError("cannot read alarm description");
+ return;
+ }
+ m_abstractEvent->getAlarmsDescription().push_back(description);
}
}
}
std::time_t createdDate = 0;
-
-// calendar F/W not supported
-// time_t createdDate = calendar_svc_struct_get_time(m_platformEvent,
-// CAL_VALUE_GMT_CREATED_DATE_TIME,
-// CAL_TZ_FLAG_GMT);
+ createdDate = calendar_svc_struct_get_time(m_platformEvent,
+ CAL_VALUE_GMT_CREATED_DATE_TIME,
+ CAL_TZ_FLAG_GMT);
m_abstractEvent->setCreatedDate(createdDate);
}
}
std::time_t completedDate = 0;
-
-// calendar F/W not supported
-// time_t completedDate = calendar_svc_struct_get_time(m_platformEvent,
-// CAL_VALUE_GMT_COMPLETED_DATE_TIME,
-// CAL_TZ_FLAG_GMT);
+ completedDate = calendar_svc_struct_get_time(m_platformEvent,
+ CAL_VALUE_GMT_COMPLETED_DATE_TIME,
+ CAL_TZ_FLAG_GMT);
m_abstractEvent->setCompletedDate(completedDate);
}
}
int progress = 0;
-
-// not supported
-// progress = calendar_svc_struct_get_int(m_platformEvent, CAL_VALUE_INT_PROGRESS);
+ progress = calendar_svc_struct_get_int(m_platformEvent, CAL_VALUE_INT_PROGRESS);
m_abstractEvent->setProgress(progress);
}
}
result->setAlarmsType(alarmsType);
result->setAlarmsTick(alarmsTick);
+ result->setAlarmsDescription(alarmsDescription);
}
if (!JSValueIsUndefined(m_context, isAllDayData)) {
result->setIsAllDay(toBool(isAllDayData));
if (JSValueIsUndefined(context, arguments[0]) || JSValueIsNull(context, arguments[0])) {
ThrowMsg(ConversionException, "First parameter is undefined or null.");
} else if (!JSValueIsObjectOfClass(context, arguments[0], JSCalendarItem::getClassRef()) &&
- JSValueIsObjectOfClass(context, arguments[0], JSCalendarEvent::getClassRef()) &&
- JSValueIsObjectOfClass(context, arguments[0], JSCalendarTask::getClassRef())) {
+ !JSValueIsObjectOfClass(context, arguments[0], JSCalendarEvent::getClassRef()) &&
+ !JSValueIsObjectOfClass(context, arguments[0], JSCalendarTask::getClassRef())) {
ThrowMsg(ConversionException, "Wrong parameter type.");
}
cbm = JSCallbackManager::createObject(globalContext);
if ((!validator.isCallback(arguments[0])) ||
- (argumentCount >= 2 && (!validator.isCallback(arguments[1]))) ||
+ (argumentCount >= 2 && (!validator.isCallback(arguments[1]) && !validator.isNullOrUndefined(arguments[1]))) ||
(argumentCount >= 3 && (!JSValueIsObject(context, arguments[2]) && !validator.isNullOrUndefined(arguments[2]))) ||
- (argumentCount >= 4 && (!JSValueIsObject(context, arguments[3]) && !validator.isNullOrUndefined(arguments[3]))) ||
- (argumentCount >= 5 && (!JSValueIsObject(context, arguments[4]) && !validator.isNullOrUndefined(arguments[4])))) {
+ (argumentCount >= 4 && (!JSValueIsObject(context, arguments[3]) && !validator.isNullOrUndefined(arguments[3])))) {
ThrowMsg(ConversionException, "Wrong parameter type.");
}
}
long watchId = -1;
- CalendarConverterFactory::ConverterType converter = CalendarConverterFactory::getConverter(context);
- if (JSValueIsNumber(context, arguments[0])) {
- watchId = converter->toLong(arguments[0]);
- }
+ CalendarConverterFactory::ConverterType converter = CalendarConverterFactory::getConverter(context);
+ if (JSValueIsNumber(context, arguments[0])) {
+ watchId = converter->toLong(arguments[0]);
+ } else {
+ ThrowMsg(ConversionException, "Wrong watchId type.");
+ }
LogDebug("Make sync operation");
ThrowMsg(ConversionException, "Third parameter conversion failed.");
}
}
- } else { // if (JSValueIsObjectOfClass(context, arguments[0], JSTimeDuration::getClassRef())){ // before case
+ } else if (JSValueIsObjectOfClass(context, arguments[0], JSTimeDuration::getClassRef())){ // before case
alarm->setDuration(timeConverter.getDurationPropertis(arguments[0]));
if (JSValueIsString(context, arguments[1])) {
std::string method = converter.toString(arguments[1]);
ThrowMsg(ConversionException, "Thrid parameter conversion failed.");
}
}
- }/* else { // Workaround until plugin link issue is resolved.
+ } else {
ThrowMsg(ConversionException, "First parameter conversion failed.");
- }*/
+ }
return createJSCalendarAlarm(globalContext, alarm);
}
#include <CommonsJavaScript/Validator.h>
#include <CommonsJavaScript/JSCallbackManager.h>
#include <API/Calendar/EventId.h>
-#include <API/Calendar/ICalendar.h>
-#include <API/Calendar/CalendarFactory.h>
#include "JSCalendarEvent.h"
#include "JSCalendarItemProperties.h"
#include "CalendarConverter.h"
JSClassRef JSCalendarEvent::m_jsClassRef = JSClassCreate(JSCalendarEvent::getClassInfo());
+ICalendarPtr JSCalendarEvent::m_calendar = CalendarFactory::getInstance().createCalendarObject();
+
void JSCalendarEvent::initialize(JSContextRef context,
JSObjectRef object)
{
CalendarEventPtr privateData(new CalendarEvent());
priv = new CalendarEventPrivObject(context, privateData);
JSObjectSetPrivate(object, static_cast<void*>(priv));
- LogDebug("new event is created");
+ LogDebug("New event is created.");
+ } else {
+ LogDebug("Private object already exists.");
+ }
+
+ if (!m_calendar) {
+ LogDebug("Calendar object does not exist!");
} else {
- LogDebug("private object already exists");
+ m_calendar->setType(CalendarEvent::EVENT_TYPE);
+ LogDebug("Calendar object type is set.");
}
}
eventStr = converter.toString(arguments[0]);
format = converter.toVObjectFormat(converter.toString(arguments[1]));
- ICalendarPtr calendar = CalendarFactory::getInstance().createCalendarObject();
- calendar->setType(CalendarEvent::EVENT_TYPE);
-
IEventCreateEventFromStringPtr dplEvent(new IEventCreateEventFromString());
dplEvent->setEventString(eventStr);
dplEvent->setFormat(format);
dplEvent->setForSynchronousCall();
- calendar->createEventFromString(dplEvent);
+ m_calendar->createEventFromString(dplEvent);
// Process the returned object.
if (dplEvent->getResult()) {
std::time_t endDate = INT_MAX; // about 60 years in 4 bytes system.
Converter converter(context);
TimeUtilConverter timeConverter(context);
- if (argumentCount>0 ) {
+ if (JSValueIsObjectOfClass(context, arguments[0], JSTZDate::getClassRef())) {
startDate = timeConverter.toTZDateTimeT(arguments[0]);
+ } else {
+ ThrowMsg(ConversionException, "Wrong first parameter type.");
}
- if (argumentCount>1 ) {
+ if (JSValueIsObjectOfClass(context, arguments[1], JSTZDate::getClassRef())) {
endDate = timeConverter.toDateTimeT(arguments[1]);
+ } else {
+ ThrowMsg(ConversionException, "Wrong second parameter type.");
}
- ICalendarPtr calendar = CalendarFactory::getInstance().createCalendarObject();
- calendar->setType(event->getCalendarType());
-
IEventExpandEventRecurrencePtr dplEvent(new IEventExpandEventRecurrence());
dplEvent->setPrivateData(DPL::StaticPointerCast<IEventPrivateData>(cbm));
dplEvent->setForAsynchronousCall(&CalendarResponseDispatcher::getInstance());
dplEvent->setEvent(event);
dplEvent->setStartDate(startDate);
dplEvent->setEndDate(endDate);
- calendar->expandEventRecurrence(dplEvent);
+ m_calendar->expandEventRecurrence(dplEvent);
return JSValueMakeNull(context);
}
#include <JavaScriptCore/JavaScript.h>
#include <API/Calendar/CalendarEvent.h>
+#include <API/Calendar/ICalendar.h>
+#include <API/Calendar/CalendarFactory.h>
#include <CommonsJavaScript/PrivateObject.h>
namespace TizenApis {
static JSClassRef m_jsClassRef;
+ /**
+ * The calendar object to be used for asynchronous platform function invocation.
+ */
+ static TizenApis::Api::Calendar::ICalendarPtr m_calendar;
+
/**
* The callback invoked when an object is first created.
*/
}
event->setAlarmsType(alarmsType);
event->setAlarmsTick(alarmsTick);
+ event->setAlarmsDescription(alarmsDescription);
return true;
}
Catch(Exception)
}
if (task->getEndTime() != 0) {
// Use the global context saved in the event struct.
- return JSTZDate::createJSObject(privateObject->getContext(), task->getEndTime(), task->getTimeZone());
+ return JSTZDate::createJSObject(privateObject->getContext(), task->getCompletedDate(), task->getTimeZone());
} else {
return JSValueMakeUndefined(context);
}
TimeUtilConverter converter(context);
std::time_t completedDate = converter.toTZDateTimeT(value);
- task->setEndTime(completedDate);
+ task->setCompletedDate(completedDate);
if( task->getTimeZone().empty() ) {
std::string timeZone = converter.getPropertiesInTZDate(value).timezone;