summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNishant Chaprana <n.chaprana@samsung.com>2019-07-23 21:09:08 +0530
committersaerome.kim <saerome.kim@samsung.com>2019-07-24 08:43:50 +0900
commitdf828955358d899b5aaa69a9485f0e5039c5005b (patch)
treeadf3dbc737eba17bdbc74819fe5adb333046995f
parent083b2a826b05f0dd475f468f83c751b25e989a6e (diff)
downloaduser-awareness-submit/tizen/20190724.080451.tar.gz
user-awareness-submit/tizen/20190724.080451.tar.bz2
user-awareness-submit/tizen/20190724.080451.zip
Add ua_device_get_last_presence() API for getting last presence timestamp for device handle.submit/tizen/20190724.080451accepted/tizen/unified/20190724.130113
Change-Id: I9cede9c9b603f608d8bdb8da039f9361b6a46d5c Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
-rw-r--r--include/user-awareness-private.h1
-rw-r--r--include/user-awareness.h21
-rw-r--r--src/user-awareness-users.c19
-rw-r--r--test/uat-devices.c5
4 files changed, 46 insertions, 0 deletions
diff --git a/include/user-awareness-private.h b/include/user-awareness-private.h
index a4e878b..e3792dc 100644
--- a/include/user-awareness-private.h
+++ b/include/user-awareness-private.h
@@ -247,6 +247,7 @@ typedef struct {
ua_os_type_e os; /**< OS type */
gboolean isadded; /**< Is the device addition completed? */
gboolean create_by_app; /**< Did app add this device information? */
+ long last_presence_timestamp; /**< timestamp of last presence */
} ua_dev_info_s;
/**
diff --git a/include/user-awareness.h b/include/user-awareness.h
index db2e19e..51f7030 100644
--- a/include/user-awareness.h
+++ b/include/user-awareness.h
@@ -2093,6 +2093,27 @@ int ua_device_get_wifi_ipv4_address(
/**
* @ingroup CAPI_NETWORK_UA_MODULE
+ * @brief Gets last presence timestamp info for device handle.
+ * @since_tizen 5.5
+ *
+ * @param[in] device_handle The device handle
+ * @param[out] timestamp The last presence timestamp information for UA device
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @exception
+ * @pre
+ * @post
+ *
+ */
+int ua_device_get_last_presence(
+ ua_device_h device_handle,
+ long *timestamp);
+
+/**
+ * @ingroup CAPI_NETWORK_UA_MODULE
* @brief Gets whether pairing is required for the user device.
* @since_tizen 5.5
*
diff --git a/src/user-awareness-users.c b/src/user-awareness-users.c
index d72e95f..67ee906 100644
--- a/src/user-awareness-users.c
+++ b/src/user-awareness-users.c
@@ -1265,6 +1265,22 @@ done:
return UA_ERROR_NONE;
}
+int ua_device_get_last_presence(
+ ua_device_h device_handle,
+ long *timestamp)
+{
+ FUNC_ENTRY;
+ ua_dev_info_s *device = (ua_dev_info_s *)device_handle;
+
+ UA_VALIDATE_INPUT_PARAMETER(device_handle);
+ UA_VALIDATE_INPUT_PARAMETER(timestamp);
+ UA_PRINT_DEVICE_HANDLE(device_handle);
+
+ *timestamp = device->last_presence_timestamp;
+ FUNC_EXIT;
+ return UA_ERROR_NONE;
+}
+
int ua_device_get_handle_by_mac_address(
const char *mac,
ua_device_h *device_handle)
@@ -1599,6 +1615,7 @@ int ua_device_clone(ua_device_h *cloned,
device->isadded = org_device->isadded;
device->type = org_device->type;
device->os = org_device->os;
+ device->last_presence_timestamp = org_device->last_presence_timestamp;
if (!device->user) {
/* Currently user info will be create and store at this point */
@@ -1871,6 +1888,7 @@ int ua_foreach_all_registered_dev_info(
device_info->handle = (ua_device_h)device_info;
device_info->type = __to_ua_mac_type(ptr->type);
device_info->os = ptr->operating_system;
+ device_info->last_presence_timestamp = ptr->last_seen;
ua_devices_db_list = g_slist_append(ua_devices_db_list, device_info);
} else {
UA_ERR("OPERATION_FAILED(0x%08x)",
@@ -1972,6 +1990,7 @@ int ua_foreach_registered_dev_info_by_user(
device_info->handle = (ua_device_h)device_info;
device_info->type = __to_ua_mac_type(ptr->type);
device_info->os = ptr->operating_system;
+ device_info->last_presence_timestamp = ptr->last_seen;
device_info->user = (ua_user_h)user;
ua_devices_db_list = g_slist_append(ua_devices_db_list, device_info);
} else {
diff --git a/test/uat-devices.c b/test/uat-devices.c
index bd2a9ba..468e97d 100644
--- a/test/uat-devices.c
+++ b/test/uat-devices.c
@@ -84,6 +84,7 @@ static bool __foreach_registered_dev_cb(
char *wifi_bssid = NULL;
char *ipv4 = NULL;
bool required = false;
+ long timestamp = 0;
if (device_handle) {
ua_device_h handle = NULL;
@@ -133,6 +134,10 @@ static bool __foreach_registered_dev_cb(
if (UA_ERROR_NONE == ret_temp)
msgb("Pairing Required : %s", required ? "YES" : "NO");
+ ret_temp = ua_device_get_last_presence(handle, &timestamp);
+ if (UA_ERROR_NONE == ret_temp)
+ msgb("Last present at : %ld", timestamp);
+
g_device_list = g_slist_append(g_device_list, handle);
}
}