From: Brad Peters Date: Fri, 14 Sep 2012 20:52:09 +0000 (-0700) Subject: Fix setting_about_main_get_battery_string to be platform specific X-Git-Tag: accepted/tizen_2.1/20130425.022820~31^2~209^2~3^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=771f2db83d7904a881bcce438dd051635fe30075;p=apps%2Fcore%2Fpreloaded%2Fsettings.git Fix setting_about_main_get_battery_string to be platform specific --- diff --git a/packaging/settings.changes b/packaging/settings.changes new file mode 100644 index 0000000..b6d1485 --- /dev/null +++ b/packaging/settings.changes @@ -0,0 +1,2 @@ +* Fri Sept 14 2012 Brad Peters +- Fix setting_about_main_get_battery_string() to be platform specific diff --git a/setting-about/src/setting-about-main.c b/setting-about/src/setting-about-main.c index e4b86ba..8cbfe43 100755 --- a/setting-about/src/setting-about-main.c +++ b/setting-about/src/setting-about-main.c @@ -285,30 +285,16 @@ void setting_about_main_get_battery_string(char *str, int size) { setting_retm_if(str == NULL, "str parameter is NULL"); - int val = -1; - char file[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, }; - snprintf(file, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO, - "%s/%s/%s", SETTING_ABOUT_POWER_SUPPLY_PATH, "battery", "capacity"); - - char buf[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, }; - int fd = 0; - int r = 0; - - fd = open(file, O_RDONLY); - if (fd != -1) { - r = read(fd, buf, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO); - if ((r >= 0) && (r < MAX_DISPLAY_STR_LEN_ON_PHONE_INFO)) { - buf[r] = '\0'; - val = atoi(buf); - snprintf(str, size, "%d%s", val, "\%"); - } else { - SETTING_TRACE_ERROR("read file fail"); - snprintf(str, size, "%s", _("IDS_ST_HEADER_UNAVAILABLE")); - } + int bat_level = -1; - close(fd); - } else { - SETTING_TRACE_ERROR("open file fail"); + /* Read battery level from vconf, as system-server sets that key using a + device-specific plugin. Reading directly from /sys fails on different + devices */ + if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &bat_level) == 0) { + snprintf(str, size, "%d%s", bat_level, "\%"); + } + else { + SETTING_TRACE_ERROR("Reading VCONFKEY_SYSMAN_BATTERY_CAPACITY failed."); snprintf(str, size, "%s", _("IDS_ST_HEADER_UNAVAILABLE")); } }