summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhay agarwal <ay.agarwal@samsung.com>2019-10-14 12:42:07 +0530
committersaerome.kim <saerome.kim@samsung.com>2019-10-14 17:43:25 +0900
commita1609c4025599beea9301131a259c3cb488e9374 (patch)
tree876111b2074844c3b0c022e21891451db393817b
parent1373e030f7b07441cb247a280568a8a453daa772 (diff)
downloaduser-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.spec2
-rw-r--r--src/user-awareness-monitors.c17
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;
}