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;
SettingAppMgr_PkgInfo *pkg = user_data;
+ pkgmgrinfo_appinfo_h handle = NULL;
+ bool autorestart_flag = false;
+ bool taskmanage_flag = false;
retv_if(!pkg, true);
- pkg->apps_in_package = eina_list_append(pkg->apps_in_package,
+ ret = pkgmgrinfo_appinfo_get_appinfo(app_id, &handle);
+ if (PMINFO_R_OK != ret) {
+ SETTING_TRACE_ERROR("pkgmgrinfo_appinfo_get_appinfo()"\
+ "Fail(%s) for %s",
+ get_error_message(ret),
+ app_id);
+ return true;
+ }
+ ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart_flag);
+ if (PMINFO_R_OK != ret) {
+ SETTING_TRACE_ERROR(
+ "pkgmgrinfo_appinfo_is_autorestart()Fail(%s) for %s",
+ get_error_message(ret), app_id);
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
+ return true;
+ }
+ ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage_flag);
+ if (PMINFO_R_OK != ret) {
+ SETTING_TRACE_ERROR(
+ "pkgmgrinfo_appinfo_is_taskmanage()Fail(%s) for %s",
+ get_error_message(ret), app_id);
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
+ return true;
+ }
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
+
+ if (!autorestart_flag && taskmanage_flag)
+ pkg->apps_in_package = eina_list_append(pkg->apps_in_package,
strdup(app_id));
return true;
}