- appcontrol operation added to be able to respond from Default apps module calls
Change-Id: I7274296472d2f32123fb5847d43e075d141537e9
Signed-off-by: Radek Kintop <r.kintop@samsung.com>
<label xml:lang="ja-jp">アプリケーション管理</label>
<label xml:lang="ko-kr">애플리케이션 관리자</label>
</ui-application>
- <ui-application appid="org.tizen.setting-appmgr" exec="@TZ_SYS_RO_APP@/org.tizen.setting/bin/setting-appmgr" type="capp" nodisplay="true" taskmanage="false" hw-acceleration="on" launch_mode="caller">
+ <ui-application appid="org.tizen.setting-appmgr" exec="@TZ_SYS_RO_APP@/org.tizen.setting/bin/setting-appmgr" type="capp" nodisplay="true" multiple="true" taskmanage="false" hw-acceleration="on" launch_mode="caller">
<label>settings-appmgr</label>
<label xml:lang="en-us">settings-appmgr</label>
</ui-application>
Evas_Object *popup;
/*pkginfo_view*/
+ bool only_pkginfo; /* This application has been launched externally
+ using appctl mechanism with specific
+ 'viewtype' parameter == "application-info"
+ It means, the app will start in the pkginfo_view and give only this
+ functionality */
+
setting_view *pkginfo_view;
Ecore_Timer *pkginfo_getsize_timer;
/* Items of package_info_gl that need to be updated: */
/*main view */
setting_view *main_view;
- pkgmgr_client *pc_main;
Eina_List *pkg_list;
Eina_List *apps_list;
Evas_Object *all_blank_page;
Evas_Object *disabled_blank_page;
- char *sel_label;
- int sel_total;
- int sel_data_size;
- int sel_is_disabled;
-
- char *selected_id;
- char *selected_icon;
- /* UI lists: */
-
/* Running app view: */
setting_view *runinfo_view;
Ecore_Timer *running_app_update_timer;
Evas_Object *grid;
Elm_Object_Item *toolbar_items[APPMGR_TAB_MAX];
- /*Pkg info view */
- bool support_taskmanager;
-
Elm_Genlist_Item_Class itc_package_nodes_list;
Elm_Genlist_Item_Class itc_app_nodes_list;
ad->pkginfo_getsize_timer = NULL;
}
- if (ad->support_taskmanager && ad->pc_main != NULL) {
-
- SETTING_TRACE("Load pkginfo view");
- pkgmgr_client_free(ad->pc_main);
- ad->pc_main = NULL;
- }
-
- FREE(ad->selected_id);
- FREE(ad->sel_label);
- FREE(ad->selected_icon);
-
/* free package data: */
free(ad->selected_pkg.id);
ad->selected_pkg.id = NULL;
retv_if(data == NULL, EINA_FALSE);
+ if (ad->only_pkginfo) {
+ ui_app_exit();
+ return EINA_TRUE;
+ }
+
setting_view_change(ad->pkginfo_view, ad->main_view, ad);
return EINA_TRUE;
}
}
}
-Evas_Object *_create_new_runinfo_item(void *data, Evas_Object *parent)
-{
- Evas_Object *layout = NULL;
- Evas_Object *icon = NULL;
- SettingAppMgr *ad = data;
-
- /* Set custom layout style */
- layout = elm_layout_add(parent);
- char *gl_style = "gl_custom_item_app_run";
- elm_layout_file_set(layout, EDJDIR"/setting-theme.edj", gl_style);
- evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
-
- icon = elm_icon_add(layout);
- elm_image_file_set(icon, ad->selected_icon, NULL);
- elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE);
- evas_object_size_hint_min_set(icon, 98, 98);
- elm_object_part_content_set(layout, "elm.swallow.icon", icon);
-
- return layout;
-}
-
void free_app_node_internals(app_node *node)
{
if (!node)
void *data)
{
SETTING_TRACE_BEGIN;
+ int ret = 0;
SettingAppMgr *ad = (SettingAppMgr *)data;
char *pkgid = NULL;
char *viewtype = NULL;
+ package_info_h package_info = NULL;
+ ad->only_pkginfo = false;
app_control_get_extra_data(app_control, "viewtype", &viewtype);
if (0 == safeStrCmp(viewtype, "application-info"))
{
+ ad->only_pkginfo = true;
app_control_get_extra_data(app_control, "pkgid", &pkgid);
+ ad->selected_pkg.id = pkgid;
+
+ app_control_init(&ad->md, app_control);
+
+ ret = package_manager_get_package_info(pkgid, &package_info);
+ if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ free(pkgid);
+ app_control_reply_to_launch_request(
+ ad->md.app_reply_svc,
+ ad->md.app_caller_svc,
+ APP_CONTROL_RESULT_FAILED);
+ ui_app_exit();
+ }
+
+ ret =
+ package_info_get_label(package_info, &ad->selected_pkg.label);
+ if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ package_info_destroy(package_info);
+ free(pkgid);
+ app_control_reply_to_launch_request(
+ ad->md.app_reply_svc,
+ ad->md.app_caller_svc,
+ APP_CONTROL_RESULT_FAILED);
+
+ ui_app_exit();
+ }
+
+ ret =
+ package_info_get_icon(package_info, &ad->selected_pkg.icon);
+ if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ package_info_destroy(package_info);
+ free(pkgid);
+ free(ad->selected_pkg.label);
+ app_control_reply_to_launch_request(
+ ad->md.app_reply_svc,
+ ad->md.app_caller_svc,
+ APP_CONTROL_RESULT_FAILED);
+
+ ui_app_exit();
+ }
+
+ if (EINA_TRUE != ecore_file_exists(ad->selected_pkg.icon)) {
+ free(ad->selected_pkg.icon);
+ ad->selected_pkg.icon =
+ strdup(SETTING_ICON_PATH"/mainmenu.png");
+ }
/* register view table */
setting_view_node_table_register(&setting_view_appmgr_pkginfo, NULL);
SETTING_TRACE("viewtype : %s", viewtype);
SETTING_TRACE("pkgname : %s", pkgid);
- ad->selected_id = pkgid;
- ad->sel_total = -1;
- ad->sel_data_size = -1;
- ad->support_taskmanager = TRUE;
- ad->sel_is_disabled = FALSE;
- ad->selected_icon = NULL;
- ad->sel_label = NULL;
setting_view_create(ad->pkginfo_view, ad);
setting_view_node_set_cur_view(ad->pkginfo_view);