From 200dad5e1c0d0d902ecdf2ce4045fbe542bd21c9 Mon Sep 17 00:00:00 2001 From: Pawel Andruszkiewicz Date: Fri, 4 Sep 2015 10:11:48 +0200 Subject: [PATCH] [Calendar] Constructor of CalendarAlarm should not throw an exception. Fixes: XWALK-769 [Verification] TCT pass rate (r38): 100% (354/354/0/0/0) Change-Id: I55b2f30d9c6b1ce4cd961b13ac752bf807d0b7f0 Signed-off-by: Pawel Andruszkiewicz --- src/calendar/calendar_item.cc | 10 ++++++++-- src/calendar/js/calendar_alarm.js | 9 ++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/calendar/calendar_item.cc b/src/calendar/calendar_item.cc index 5f59ab0f..9bdaeab8 100755 --- a/src/calendar/calendar_item.cc +++ b/src/calendar/calendar_item.cc @@ -1092,9 +1092,15 @@ PlatformResult CalendarItem::AlarmsFromJson(int type, calendar_record_h rec, } } + const auto it_method = obj.find("method"); + std::string method = "unknown"; + + if (obj.end() != it_method && it_method->second.is()) { + method = it_method->second.get(); + } + PlatformResult status = - SetEnum(alarm, _calendar_alarm.action, kAlarmMethod, - common::FromJson(obj, "method")); + SetEnum(alarm, _calendar_alarm.action, kAlarmMethod, method); if (status.IsError()) { LoggerE("Error: %s", status.message().c_str()); return status; diff --git a/src/calendar/js/calendar_alarm.js b/src/calendar/js/calendar_alarm.js index 4f7c1272..08c26386 100755 --- a/src/calendar/js/calendar_alarm.js +++ b/src/calendar/js/calendar_alarm.js @@ -24,8 +24,15 @@ var CalendarAlarm = function(time, method, description) { var _absoluteDate = time instanceof tizen.TZDate && !this.before ? time : null; var _before = time instanceof tizen.TimeDuration && !this.absoluteDate ? time : null; - var _method = converter_.toEnum(method, Object.keys(AlarmMethod), false); var _description = (description) ? converter_.toString(description, true) : ''; + var _method; + + try { + _method = converter_.toEnum(method, Object.keys(AlarmMethod), false); + } catch (e) { + console.warn('Failed to convert method: "' + method + '" to enum AlarmMethod.'); + _method = method; + } Object.defineProperties(this, { absoluteDate: { -- 2.34.1