Add is_emulator for device_battery_get_property 91/186391/1 accepted/tizen/unified/20180810.062929 submit/tizen/20180809.104154
authorlokilee73 <changjoo.lee@samsung.com>
Thu, 9 Aug 2018 08:51:11 +0000 (17:51 +0900)
committerlokilee73 <changjoo.lee@samsung.com>
Thu, 9 Aug 2018 08:51:17 +0000 (17:51 +0900)
There are no nodes for below enum in emulator.
They are only available in real target.
  DEVICE_BATTERY_PROPERTY_VOLTAGE_NOW
  DEVICE_BATTERY_PROPERTY_VOLTAGE_AVERAGE
  DEVICE_BATTERY_PROPERTY_TEMPERATURE

So, add is_emulator to distinguish real target and emulator.
device_battery_get_property returns DEVICE_ERROR_NOT_SUPPORTED for emulator.

Change-Id: I5bae62fb8e4f977f7e763ce8e4dbea49e02fb52c
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
src/battery.c
src/common.c
src/common.h

index 7af1937..22326c6 100755 (executable)
@@ -24,6 +24,7 @@
 #include "battery.h"
 #include "common.h"
 #include "dbus.h"
+#include <system_info.h>
 
 #define METHOD_GET_PERCENT             "GetPercent"
 #define METHOD_GET_INFO         "GetBatteryInfo"
@@ -288,6 +289,12 @@ int device_battery_get_property(device_battery_property_e property, int *val)
        if (!ret)
                return DEVICE_ERROR_NOT_SUPPORTED;
 
+       if (is_emulator())
+               if (property == DEVICE_BATTERY_PROPERTY_VOLTAGE_NOW ||
+                       property == DEVICE_BATTERY_PROPERTY_VOLTAGE_AVERAGE ||
+                       property == DEVICE_BATTERY_PROPERTY_TEMPERATURE)
+                               return DEVICE_ERROR_NOT_SUPPORTED;
+
        ret = device_battery_get_info(&info);
        if (ret != DEVICE_ERROR_NONE) {
                _E("Failed to get battery info (%d)", ret); //LCOV_EXCL_LINE Logs
index 104c168..7e69038 100755 (executable)
@@ -28,6 +28,9 @@
 #define NEWLINE                "\n\r"
 #define COMMENT                '#'
 
+#define MODEL_NAME      "http://tizen.org/system/model_name"
+#define MODEL_EMULATOR  "Emulator"
+
 static inline char *trim_str(char *s)
 {
        char *t;
@@ -211,3 +214,28 @@ int check_async_call_rate(void)
        num_calls++;
        return 0;
 }
+
+bool is_emulator(void)
+{
+       int ret;
+       char *model_name = NULL;
+       static bool emul = false;
+       static int set = 0;
+
+       if (set)
+               return emul;
+
+       ret = system_info_get_platform_string(MODEL_NAME, &model_name);
+       if (ret < 0) {
+               _E("Cannot get model name(%d)", ret);
+               return emul;
+       }
+
+       if (!strncmp(MODEL_EMULATOR, model_name, strlen(model_name) + 1))
+               emul = true;
+
+       set = 1;
+       free(model_name);
+
+       return emul;
+}
index cd633ac..43da9f9 100755 (executable)
@@ -82,4 +82,5 @@ int check_async_call_rate(void);
 
 #define TIZEN_FEATURE_TRACKER (_get_tizen_profile() == TIZEN_PROFILE_TV)
 
+bool is_emulator(void);
 #endif /* __COMMON_H__ */