[Fix] Absence detection callback 37/214437/1
authorAbhay Agarwal <ay.agarwal@samsung.com>
Wed, 18 Sep 2019 10:33:58 +0000 (19:33 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 23 Sep 2019 05:24:00 +0000 (14:24 +0900)
Change-Id: Id9acbf51ab574be1348f9342612f4b4abe2dd426
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
ua-daemon/src/ua-manager-core.c

index d072b37..2a10ecf 100644 (file)
@@ -1719,11 +1719,29 @@ static gboolean __start_detection(gpointer data)
        env_sensors = _uam_core_get_env_sensors();
        UAM_DBG("Envionmental sensors: 0x%8.8X", env_sensors);
        if (0 != env_sensors) {
+               /* Stop PRESENCE detection on envionmental sensors*/
+               ret = _uam_pm_stop_detection(UAM_DETECT_PRESENCE, env_sensors);
+               if (UAM_ERROR_NONE != ret)
+                       UAM_ERR("Failed with error: %s (0x%4.4X)",
+                                       _uam_manager_error_to_str(ret), ret);
+
+               /* Stop ABSENCE detection on envionmental sensors*/
+               ret = _uam_pm_stop_detection(UAM_DETECT_ABSENCE, env_sensors);
+               if (UAM_ERROR_NONE != ret)
+                       UAM_ERR("Failed with error: %s (0x%4.4X)",
+                                       _uam_manager_error_to_str(ret), ret);
+
                /* Always Start PRESENCE detection on envionmental sensors*/
                ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE, env_sensors);
                if (UAM_ERROR_NONE != ret)
                        UAM_ERR("Failed with error: %s (0x%4.4X)",
                                        _uam_manager_error_to_str(ret), ret);
+
+               /* Always Start ABSENCE detection on envionmental sensors*/
+               ret = _uam_pm_start_detection(UAM_DETECT_ABSENCE, env_sensors);
+               if (UAM_ERROR_NONE != ret)
+                       UAM_ERR("Failed with error: %s (0x%4.4X)",
+                                       _uam_manager_error_to_str(ret), ret);
        }
 
        for (l = services; NULL != l; l = g_slist_next(l)) {
@@ -1763,6 +1781,10 @@ static gboolean __start_detection(gpointer data)
        sensors = _uam_core_get_active_sensors(UAM_DETECT_ABSENCE);
        UAM_DBG("ABSENCE sensors: 0x%8.8X", sensors);
 
+       /* Remove env sensors from active sensors */
+       sensors &= ~env_sensors;
+       UAM_DBG("Connectivity sensors: 0x%8.8X", sensors);
+
        if (0 != sensors) {
                /* Start ABSENCE detection */
                ret = _uam_pm_start_detection(UAM_DETECT_ABSENCE, sensors);