diff options
author | Abhay agarwal <ay.agarwal@samsung.com> | 2019-10-23 18:45:01 +0530 |
---|---|---|
committer | saerome.kim <saerome.kim@samsung.com> | 2019-11-01 12:49:35 +0900 |
commit | 9457689a16339870bb082ff65aebe89ff6be30cd (patch) | |
tree | fead4eb11e171650a51828b0a573ed03e5a92fa0 | |
parent | 8462d2b4cdc8145b93f7651617fb540e7851d86a (diff) | |
download | user-awareness-9457689a16339870bb082ff65aebe89ff6be30cd.tar.gz user-awareness-9457689a16339870bb082ff65aebe89ff6be30cd.tar.bz2 user-awareness-9457689a16339870bb082ff65aebe89ff6be30cd.zip |
Provide only NULL user callback if no connectivity sensor in AND/OR condition
- Problem: In case connectivity sensor is detected but not included in AND/OR
we are providing user callback for detected user
- Solution: Only provide user callback with NULL user and block other callbacks
Change-Id: I08150f2821e326d43bf0745ee4bfa4369e5af942
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
-rw-r--r-- | packaging/capi-network-ua.spec | 2 | ||||
-rw-r--r-- | src/user-awareness-monitors.c | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/packaging/capi-network-ua.spec b/packaging/capi-network-ua.spec index 5370229..577837e 100644 --- a/packaging/capi-network-ua.spec +++ b/packaging/capi-network-ua.spec @@ -1,6 +1,6 @@ Name: capi-network-ua Summary: User Awareness Framework CAPI -Version: 0.12.3 +Version: 0.12.4 Release: 1 License: Apache-2.0 Source0: %{name}-%{version}.tar.gz diff --git a/src/user-awareness-monitors.c b/src/user-awareness-monitors.c index 0e0c9cd..5be4551 100644 --- a/src/user-awareness-monitors.c +++ b/src/user-awareness-monitors.c @@ -271,6 +271,13 @@ static void __ua_monitor_send_user_presence_cb(ua_monitor_s *monitor, ret_if(NULL == user_state); + /** Block user callback if environmental callback already sent*/ + if (monitor->env_user_cb_sent) { + UA_DBG("Environmental User presence cb already sent"); + FUNC_EXIT; + return; + } + ua_user_h user_handle = _ua_get_user_handle_by_account( user_state->account); /** @@ -400,6 +407,7 @@ static void __ua_send_presence_detection() } if (monitor->presence_user_cb.callback) { + __ua_monitor_send_env_user_presence_cb(monitor); for (l1 = monitor->user_state; NULL != l1; l1 = g_slist_next(l1)) { ua_user_state_info_s *user_state = l1->data; @@ -408,7 +416,6 @@ static void __ua_send_presence_detection() __ua_monitor_send_user_presence_cb(monitor, user_state); } } - __ua_monitor_send_env_user_presence_cb(monitor); } monitor->presence_detected_bitmask = 0; @@ -534,6 +541,7 @@ static void __ua_sensor_presence_detected(ua_monitor_s *monitor, } if (!account) { + __ua_monitor_send_env_user_presence_cb(monitor); for (l1 = monitor->user_state; NULL != l1; l1 = g_slist_next(l1)) { ua_user_state_info_s *user_state = l1->data; @@ -542,7 +550,6 @@ static void __ua_sensor_presence_detected(ua_monitor_s *monitor, __ua_monitor_send_user_presence_cb(monitor, user_state); } } - __ua_monitor_send_env_user_presence_cb(monitor); } FUNC_EXIT; |