diff options
author | Inkyun Kil <inkyun.kil@samsung.com> | 2020-01-13 23:50:34 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.ap-northeast-2.compute.internal> | 2020-01-13 23:50:34 +0000 |
commit | ff592b7e36a3b7cd37d145c946d5b2713e4ba81a (patch) | |
tree | 9bd44dacb946c24c58192a800959f526de241eb4 | |
parent | 3bab6a674235435c3d3dc37baeca56eb670cf22c (diff) | |
parent | 646403c3e74e9bd725092e18f639827f84c347ce (diff) | |
download | alarm-manager-ff592b7e36a3b7cd37d145c946d5b2713e4ba81a.tar.gz alarm-manager-ff592b7e36a3b7cd37d145c946d5b2713e4ba81a.tar.bz2 alarm-manager-ff592b7e36a3b7cd37d145c946d5b2713e4ba81a.zip |
Merge "FIx side effect for 'Dispensables'" into tizen
-rw-r--r-- | lib/alarm-lib.c | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/lib/alarm-lib.c b/lib/alarm-lib.c index 0ce96f2..1f53853 100644 --- a/lib/alarm-lib.c +++ b/lib/alarm-lib.c @@ -1152,6 +1152,7 @@ EXPORT_API int alarmmgr_add_alarm_appsvc(int alarm_type, time_t trigger_at_time, { int error_code = 0; int result = 0; + int modified_alarm_type = 0; alarm_info_t alarm_info; const char *operation = NULL; const char *appid = NULL; @@ -1192,22 +1193,23 @@ EXPORT_API int alarmmgr_add_alarm_appsvc(int alarm_type, time_t trigger_at_time, return ERR_ALARM_INVALID_PARAM; } - _initialize_alarm_info(&alarm_info, alarm_type, trigger_at_time, interval, - false); - - alarm_info.alarm_type |= ALARM_TYPE_RELATIVE; - LOGD("alarm_info.type : %d", alarm_info.alarm_type); + modified_alarm_type = alarm_type; if (__compare_api_version(&result, getuid()) < 0) return ERR_ALARM_SYSTEM_FAIL; if (result < 0) { - if (alarm_info.alarm_type & ALARM_TYPE_INEXACT) - alarm_info.alarm_type ^= ALARM_TYPE_INEXACT; + if (alarm_type & ALARM_TYPE_INEXACT) + modified_alarm_type ^= ALARM_TYPE_INEXACT; } - if ((alarm_type & ALARM_TYPE_INEXACT) && - alarm_info.mode.u_interval.interval < MIN_INEXACT_INTERVAL) + _initialize_alarm_info(&alarm_info, modified_alarm_type | ALARM_TYPE_RELATIVE, + trigger_at_time, interval, false); + + if ((alarm_info.alarm_type & ALARM_TYPE_INEXACT) && + alarm_info.mode.u_interval.interval < MIN_INEXACT_INTERVAL) { alarm_info.mode.u_interval.interval = MIN_INEXACT_INTERVAL; + alarm_info.mode.repeat = ALARM_REPEAT_MODE_REPEAT; + } if (!_send_alarm_create_appsvc(alarm_context, &alarm_info, alarm_id, b, &error_code)) return error_code; @@ -1240,15 +1242,14 @@ EXPORT_API int alarmmgr_add_alarm_noti(int alarm_type, time_t trigger_at_time, return ERR_ALARM_INVALID_PARAM; } - _initialize_alarm_info(&alarm_info, alarm_type, trigger_at_time, interval, - false); - - alarm_info.alarm_type |= ALARM_TYPE_RELATIVE; - LOGD("alarm_info.type : %d", alarm_info.alarm_type); + _initialize_alarm_info(&alarm_info, alarm_type | ALARM_TYPE_RELATIVE, + trigger_at_time, interval, false); if ((alarm_info.alarm_type & ALARM_TYPE_INEXACT) && - alarm_info.mode.u_interval.interval < MIN_INEXACT_INTERVAL) + alarm_info.mode.u_interval.interval < MIN_INEXACT_INTERVAL) { alarm_info.mode.u_interval.interval = MIN_INEXACT_INTERVAL; + alarm_info.mode.repeat = ALARM_REPEAT_MODE_REPEAT; + } if (!_send_alarm_create_noti(alarm_context, &alarm_info, alarm_id, noti, &error_code)) return error_code; @@ -1288,12 +1289,8 @@ static int _alarmmgr_add_alarm(int alarm_type, return ERR_ALARM_INVALID_PARAM; } - _initialize_alarm_info(&alarm_info, alarm_type, trigger_at_time, interval, - precision); - - alarm_info.alarm_type |= ALARM_TYPE_RELATIVE; - - LOGD("alarm_info.type : %d", alarm_info.alarm_type); + _initialize_alarm_info(&alarm_info, alarm_type | ALARM_TYPE_RELATIVE, + trigger_at_time, interval, precision); if (destination != NULL) { memset(dst_service_name, 0, @@ -1369,13 +1366,9 @@ static int _alarmmgr_add_alarm_withcb(int alarm_type, time_t trigger_at_time, return ERR_ALARM_INVALID_PARAM; } - _initialize_alarm_info(&alarm_info, alarm_type, trigger_at_time, interval, - precision); - - alarm_info.alarm_type |= ALARM_TYPE_RELATIVE; - alarm_info.alarm_type |= ALARM_TYPE_WITHCB; - - LOGD("alarm_info.type : %d", alarm_info.alarm_type); + _initialize_alarm_info(&alarm_info, + alarm_type | ALARM_TYPE_RELATIVE | ALARM_TYPE_WITHCB, + trigger_at_time, interval, precision); if (!_send_alarm_create(alarm_context, &alarm_info, alarm_id, "null", "null", &error_code)) return error_code; |