From 05e44fa07c513340b556343845e9bfc0cc105474 Mon Sep 17 00:00:00 2001 From: Andrzej Popowski Date: Mon, 8 Jun 2015 12:43:13 +0200 Subject: [PATCH] [Alarm] - fixing bugs in AlarmManager Change-Id: I6b795de2884a8b6264b199fad812e979821350d3 Signed-off-by: Andrzej Popowski --- src/alarm/alarm_manager.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/alarm/alarm_manager.cc b/src/alarm/alarm_manager.cc index d1f0df93..da1226ac 100755 --- a/src/alarm/alarm_manager.cc +++ b/src/alarm/alarm_manager.cc @@ -159,6 +159,12 @@ void AlarmManager::Add(const picojson::value& args, picojson::object& out) { struct tm *start_date; start_date = localtime(&second); + if (start_date == nullptr) { + LoggerE("Invalid date."); + ReportError(PlatformResult(ErrorCode::UNKNOWN_ERR, "Invalid date."), &out); + return; + } + mktime(start_date); char str_date[kDateSize]; @@ -316,7 +322,7 @@ PlatformResult AlarmManager::GetAlarm(int id, picojson::object& obj) { obj.insert(std::make_pair("min", picojson::value(std::to_string(date.tm_min)))); obj.insert(std::make_pair("sec", picojson::value(std::to_string(date.tm_sec)))); - int interval = 0, byDayValue = 0; + int interval = 0; app_control_get_extra_data(app_control, kAlarmAbsoluteRecurrenceTypeKey, &alarm_type); @@ -329,6 +335,14 @@ PlatformResult AlarmManager::GetAlarm(int id, picojson::object& obj) { obj.insert(std::make_pair("second", picojson::value(std::to_string(interval)))); } else if (!strcmp(alarm_type, kAlarmAbsoluteReccurrenceTypeByDayValue)) { + int byDayValue = 0; + + ret = alarm_get_scheduled_recurrence_week_flag(id, &byDayValue); + if (ALARM_ERROR_NONE != ret) { + LoggerE("Failed to get data."); + return PlatformResult(ErrorCode::NOT_FOUND_ERR, "Failed to get data."); + } + picojson::array& array = obj.insert(std::make_pair("second", picojson::value(picojson::array()))) .first->second.get(); -- 2.34.1