Smartmanager battery 05/106905/2
authorRadek Kintop <r.kintop@samsung.com>
Fri, 23 Dec 2016 12:28:05 +0000 (13:28 +0100)
committerRadek Kintop <r.kintop@samsung.com>
Fri, 23 Dec 2016 13:23:26 +0000 (14:23 +0100)
- Fix: inaccessible app icons replaced by default icons
- default icon path obtaining procedure moved to commons
- Fix: per app usage % text was missing

Change-Id: I36db847628bc602da9ba19aa30470248444c1add
Signed-off-by: Radek Kintop <r.kintop@samsung.com>
setting-appmgr/include/setting-appmgr-utils.h
setting-appmgr/src/setting-appmgr-runinfo.c
setting-appmgr/src/setting-appmgr-utils.c
setting-common/include/setting-common-general-func.h
setting-common/src/setting-common-general-func.c
setting-smartmanager/smartmanager-battery/src/smartmanager-battery-main.c
setting-smartmanager/smartmanager-battery/src/smartmanager-battery.c

index 5df97e486ea4627c90cea920f4ae91b531225f34..a5187af00a2872c78c97ad070d1a8bebc9b16a86 100644 (file)
@@ -37,8 +37,6 @@ void appmgr_popup_close(void *data, Evas_Object *obj, void *event_info);
 void appmgr_fail_popup(char *str, SettingAppMgr *ad);
 void appmgr_error_app_popup(char *str, SettingAppMgr *ad);
 
-char *appmgr_get_defualt_icon(pkgmgrinfo_appinfo_h handle);
-
 void appmgr_utils_init_apps_list(SettingAppMgr *ad);
 void appmgr_utils_init_pkgs_list(SettingAppMgr *ad);
 int appmgr_utils_init_apps_and_pkgs_lists(SettingAppMgr *ad);
index 67ef1cbcf015a5ab9eb8edf06455541068f1bb7d..dfcde42260d26f7c31c99880ce5465d9e60c4027 100644 (file)
@@ -321,7 +321,6 @@ static bool _app_in_package_info_cb(package_info_app_component_type_e comp_type,
                                        const char *app_id, void *user_data)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_h internal_api_handle = NULL;
        SettingAppMgr *ad = user_data;
        SettingAppMgr_AppInfo *app = NULL;
        app_t *sibling_info = NULL;
@@ -362,10 +361,7 @@ static bool _app_in_package_info_cb(package_info_app_component_type_e comp_type,
        (void)app_info_get_icon(sibling_app_info, &sibling_info->icon);
        if (EINA_TRUE != ecore_file_exists(sibling_info->icon)) {
                free(sibling_info->icon);
-               pkgmgrinfo_appinfo_get_appinfo(app_id, &internal_api_handle);
-               sibling_info->icon =
-                               appmgr_get_defualt_icon(internal_api_handle);
-               pkgmgrinfo_appinfo_destroy_appinfo(internal_api_handle);
+               sibling_info->icon = get_application_default_icon(app_id);
        }
 
        (void)app_info_get_label(sibling_app_info, &sibling_info->label);
index c78fc4fccc641b265ec2cc432beb396e66669cef..74ef5df34aaa48301840c46801b414ca7840ec45 100644 (file)
@@ -92,27 +92,6 @@ void appmgr_error_app_popup(char *str, SettingAppMgr *ad)
                        appmgr_popup_close, 0, FALSE, FALSE, 1, MGRAPP_STR_OK);
 }
 
-char *appmgr_get_defualt_icon(pkgmgrinfo_appinfo_h handle)
-{
-       int ret = 0;
-       char *type = NULL;
-       const char *icon = NULL;
-
-       icon = SETTING_ICON_PATH"/mainmenu.png";
-       ret = pkgmgrinfo_appinfo_get_component_type(handle, &type);
-
-       if (PMINFO_R_OK == ret) {
-               if (0 == safeStrCmp(type, "svcapp"))
-                       icon = SETTING_ICON_PATH"/default_icon_service.png";
-       } else {
-               SETTING_TRACE_ERROR(
-                       "pkgmgrinfo_appinfo_get_component_type() Fail(%s)",
-                               get_error_message(ret));
-       }
-
-       return strdup(icon);
-}
-
 int get_process_ram_usage_mb(app_info_h handle)
 {
        pid_t pid = 0;
@@ -226,8 +205,6 @@ void free_package_node_internals(package_node *node)
 
 void appmgr_utils_update_app_node(app_node *node, app_info_h app_info)
 {
-       int ret = 0;
-       pkgmgrinfo_appinfo_h internal_api_handle = NULL;
        ret_if(!node);
 
        (void)app_info_get_app_id(app_info, &node->appid);
@@ -237,15 +214,7 @@ void appmgr_utils_update_app_node(app_node *node, app_info_h app_info)
        (void)app_info_get_icon(app_info, &node->icon_path);
        if (EINA_TRUE != ecore_file_exists(node->icon_path)) {
                free(node->icon_path);
-               node->icon_path = NULL;
-               /*TODO: need public API: */
-               pkgmgrinfo_appinfo_get_appinfo(node->appid,
-                                               &internal_api_handle);
-               if (PMINFO_R_OK == ret) {
-                       node->icon_path =
-                               appmgr_get_defualt_icon(internal_api_handle);
-                       pkgmgrinfo_appinfo_destroy_appinfo(internal_api_handle);
-               }
+               node->icon_path = get_application_default_icon(node->appid);
        }
 
        (void)app_info_is_enabled(app_info, &node->is_enabled);
@@ -316,7 +285,6 @@ void appmgr_utils_update_package_node(package_node *node,
 {
        char *main_app_id = NULL;
        pkgmgrinfo_pkginfo_h internal_api_handle = NULL;
-       pkgmgrinfo_appinfo_h internal_api_handle2 = NULL;
        int ret = 0;
        ret_if(!node);
 
@@ -336,20 +304,8 @@ void appmgr_utils_update_package_node(package_node *node,
                        ret = pkgmgrinfo_pkginfo_get_mainappid(
                                        internal_api_handle, &main_app_id);
 
-                       if (PMINFO_R_OK == ret) {
-
-                               ret = pkgmgrinfo_appinfo_get_appinfo(
-                                                       main_app_id,
-                                                       &internal_api_handle2);
-
-                               if (PMINFO_R_OK == ret) {
-                                       node->icon_path =
-                                               appmgr_get_defualt_icon(
-                                                       internal_api_handle2);
-                                       pkgmgrinfo_appinfo_destroy_appinfo(
-                                                       internal_api_handle2);
-                               }
-                       }
+                       if (PMINFO_R_OK == ret)
+                                       node->icon_path = get_application_default_icon(main_app_id);
                        pkgmgrinfo_pkginfo_destroy_pkginfo(internal_api_handle);
                }
        }
index 385c6b05ba237f8f3176aeda7de9927ed0c54b60..e6d40724becc203c1fda685798d882d2336a0de6 100644 (file)
@@ -62,6 +62,8 @@
 #define sncat(to, size, from) strncat(to, from, size-strlen(to)-1)
 #define SAFE_STRDUP(src) (src) ? strdup(src) : NULL
 
+extern char *get_application_default_icon(const char *appid);
+
 extern char *setting_file_basename(char *path);
 
 /*****/
index 963657ed9f65fad6061b3c4486c6582db8851dae..6fa44293f9940d0a0c670101d70795541630103a 100644 (file)
@@ -19,8 +19,8 @@
  *
  */
 
-#include <setting-common-general-func.h>
-#include <setting-common-data-slp-setting.h>
+#include "setting-common-general-func.h"
+#include "setting-common-data-slp-setting.h"
 
 #include <glib.h>
 #include <dlfcn.h>
@@ -33,8 +33,6 @@
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 
-#include <pkgmgr-info.h>
-
 #include <sys/stat.h>
 #include <sys/mount.h>
 
 /*#include <resourced.h> */
 #include <limits.h>
 #include <setting-cfg.h>
+#include <pkgmgr-info.h>
 #include <player.h>
-
 #include <bundle.h>
 #include <bundle_internal.h>
 #include <app_control_internal.h>
+#include <pkgmgr-info.h>
+
+EXPORT_PUBLIC
+char *get_application_default_icon(const char *appid)
+{
+       int ret = 0;
+       char *type = NULL;
+       const char *icon = NULL;
+       pkgmgrinfo_appinfo_h handle = NULL;
+
+       icon = SETTING_ICON_PATH"/mainmenu.png";
+
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (PMINFO_R_OK != ret) {
+               SETTING_TRACE_ERROR("pkgmgrinfo_appinfo_get_appinfo() Fail(%s)",
+                                                       get_error_message(ret));
+               return strdup(icon);
+       }
+
+       ret = pkgmgrinfo_appinfo_get_component_type(handle, &type);
+
+       if (PMINFO_R_OK == ret) {
+               if (0 == safeStrCmp(type, "svcapp"))
+                       icon = SETTING_ICON_PATH"/default_icon_service.png";
+       } else {
+               SETTING_TRACE_ERROR(
+                       "pkgmgrinfo_appinfo_get_component_type() Fail(%s)",
+                               get_error_message(ret));
+       }
+
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+
+       return strdup(icon);
+}
 
 EXPORT_PUBLIC
 char *setting_file_basename(char *path)
index 33d7d9bbc93fa20b98e5d9883a27073726355880..e8f47593e6710b61dc403bafb3e859141d971b7b 100644 (file)
@@ -31,8 +31,7 @@ Elm_Genlist_Item_Class itc_app_batt_usage = {NULL};
 static void _get_battery_usage_time_str(char *buff, size_t buff_len,
                                        int seconds);
 static void _back_button_cb(void *data, Evas_Object *obj, void *event_info);
-static void _get_battery_percent_text(char *desc, size_t len,
-                                       SmartMgrBattery *ad);
+static void _get_battery_percent_text(char *desc, size_t len, int pct);
 static void _get_charge_status_text(char *desc, size_t len,
                                        SmartMgrBattery *ad);
 
@@ -49,11 +48,10 @@ static Evas_Object *_itc_battery_info_content_get(
 static Evas_Object *_itc_app_batt_usage_content_get(void *data,
                                        Evas_Object *obj, const char *part);
 
-static void _get_battery_percent_text(char *desc, size_t len,
-                                       SmartMgrBattery *ad)
+static void _get_battery_percent_text(char *desc, size_t len, int pct)
 {
        ret_if(!desc || len == 0);
-       snprintf(desc, len, "%d%s", ad->current_battery_percent, "%");
+       snprintf(desc, len, "%d%s", pct, "%");
 }
 
 static void _get_charge_status_text(char *desc, size_t len,
@@ -109,7 +107,7 @@ static Evas_Object *_itc_battery_info_content_get(
        evas_object_pass_events_set(progress, EINA_TRUE);
        evas_object_propagate_events_set(progress, EINA_FALSE);
 
-       _get_battery_percent_text(text, sizeof(text), ad);
+       _get_battery_percent_text(text, sizeof(text), ad->current_battery_percent);
        elm_object_part_text_set(layout, "elm.text", text);
        elm_object_part_content_set(layout, "elm.swallow.content", progress);
        _get_charge_status_text(text, sizeof(text), ad);
@@ -125,7 +123,7 @@ static Evas_Object *_itc_app_batt_usage_content_get(void *data,
        Evas_Object *progress = NULL;
        Evas_Object *icon = NULL;
        app_item_t *app_info = data;
-
+       char percent_txt[16] = {'\0'};
        retv_if(!data, NULL);
 
        if (safeStrCmp(part, "elm.swallow.content"))
@@ -144,6 +142,9 @@ static Evas_Object *_itc_app_batt_usage_content_get(void *data,
        evas_object_propagate_events_set(progress, EINA_FALSE);
 
        elm_object_part_text_set(layout, "elm.text", app_info->label);
+       _get_battery_percent_text(percent_txt, sizeof(percent_txt),
+                                                       (int)app_info->percent);
+       elm_object_part_text_set(layout, "elm.text.sub", percent_txt);
        elm_object_part_content_set(layout, "elm.swallow.content", progress);
 
        icon = elm_icon_add(layout);
index a0c2cced4292cede0d40736ec51490c3d6deca84..4fbc3275c87700e51734a989105522add43f5580 100644 (file)
@@ -224,6 +224,11 @@ static void _get_battery_usage_details_list(SmartMgrBattery *ad)
                app_info_create(app->appid, &app_info);
                if (app_info) {
                        app_info_get_icon(app_info, &app->icon);
+                       if (EINA_TRUE != ecore_file_exists(app->icon)) {
+                               free(app->icon);
+                               app->icon = get_application_default_icon(app->appid);
+                       }
+
                        app_info_get_label(app_info, &app->label);
                        app_info_destroy(app_info);
                }