diff options
author | Abhay agarwal <ay.agarwal@samsung.com> | 2019-10-14 12:42:07 +0530 |
---|---|---|
committer | saerome.kim <saerome.kim@samsung.com> | 2019-10-14 17:43:25 +0900 |
commit | a1609c4025599beea9301131a259c3cb488e9374 (patch) | |
tree | 876111b2074844c3b0c022e21891451db393817b | |
parent | 1373e030f7b07441cb247a280568a8a453daa772 (diff) | |
download | user-awareness-a1609c4025599beea9301131a259c3cb488e9374.tar.gz user-awareness-a1609c4025599beea9301131a259c3cb488e9374.tar.bz2 user-awareness-a1609c4025599beea9301131a259c3cb488e9374.zip |
Provide user callback to applications as soon as possible
Provide user callback earlier instead of waiting for detection window to complete.
Callback is provided as soon as the AND/OR condition for a particular user is met.
This will result in missing of device/sensor information in callback provided for
the device/sensor detected after sending callback.
Change-Id: I7a5a1912a66ec932ef261f74f354d4717994decf
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 | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/packaging/capi-network-ua.spec b/packaging/capi-network-ua.spec index 41ee5fa..15b45fd 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.11.8 +Version: 0.11.9 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 2e9cd3a..39ab618 100644 --- a/src/user-awareness-monitors.c +++ b/src/user-awareness-monitors.c @@ -472,6 +472,7 @@ static void __ua_sensor_presence_detected(ua_monitor_s *monitor, FUNC_ENTRY; GSList *l; + GSList *l1; int found = 0; int ret = UA_ERROR_NONE; ua_user_state_info_s *user_state = NULL; @@ -522,6 +523,22 @@ static void __ua_sensor_presence_detected(ua_monitor_s *monitor, __ua_monitor_send_sensor_presence_cb(monitor, device_handle, sensor_info); + if (account && user_state) { + __ua_monitor_send_user_presence_cb(monitor, user_state); + } + + if (!account) { + for (l1 = monitor->user_state; NULL != l1; l1 = g_slist_next(l1)) { + ua_user_state_info_s *user_state = l1->data; + + if (user_state) { + UA_DBG("user_state->account [%s]", user_state->account); + __ua_monitor_send_user_presence_cb(monitor, user_state); + } + } + __ua_monitor_send_env_user_presence_cb(monitor); + } + FUNC_EXIT; } |