show success/fail popup after uninstalling app
authorEunmi Son <eunmi.son@samsung.com>
Thu, 6 Sep 2012 14:01:02 +0000 (23:01 +0900)
committerEunmi Son <eunmi.son@samsung.com>
Thu, 6 Sep 2012 14:21:28 +0000 (23:21 +0900)
Change-Id: I6ed6cae54cb85d3ef2d1d102dee3cc65c6ddbf0d

common/include/mgr-app-widget.h
common/src/mgr-app-widget.c
packaging/ug-setting-manage-applications-efl.spec
view/src/mgr-app-view-app-info.c
view/src/mgr-app-view-app-list.c

index ed0df34..00ac235 100755 (executable)
@@ -34,8 +34,10 @@ Evas_Object *mgr_app_create_scroller(Evas_Object *parent);
 Evas_Object *mgr_app_create_box(Evas_Object *parent, Eina_Bool is_hori);
 Evas_Object *mgr_app_create_button(Evas_Object *parent, void (*func) (void *data, Evas_Object *obj, void *event_info), const char *label, const char *swallow, const char *style, void *data);
 Evas_Object *mgr_app_create_label(Evas_Object *parent, const char *text, const char *swallow, void *data);
+void mgr_app_create_popup_text_1button(Evas_Object *parent, char *text, char *btn_text, Evas_Smart_Cb func);
+void mgr_app_create_popup_progressbar(Evas_Object *parent, char *text);
+void mgr_app_destroy_popup_progressbar();
 void mgr_app_box_pack_end_separator(Evas_Object *box, const char *style);
-
 void mgr_app_set_transit_effect(Evas_Object *parent, int effect_type);
 
 #ifdef __cplusplus
index 6301e42..e9b07f5 100755 (executable)
@@ -32,6 +32,8 @@ struct _Custom_Effect {
        struct _size to;
 };
 
+static Evas_Object *_popup = NULL;
+
 static Elm_Transit_Effect *__custom_context_new(Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h)
 {
        MGR_APP_BEGIN();
@@ -291,3 +293,72 @@ void mgr_app_set_transit_effect(Evas_Object *parent, int effect_type)
        MGR_APP_END();
 }
 
+void mgr_app_create_popup_text_1button(Evas_Object *parent, char *text, char *btn_text, Evas_Smart_Cb func)
+{
+       MGR_APP_BEGIN();
+
+       ret_if(parent == NULL);
+       ret_if(text == NULL);
+       ret_if(btn_text == NULL);
+
+       Evas_Object *popup = NULL;
+       Evas_Object *btn = NULL;
+
+       popup = elm_popup_add(parent);
+       ret_if(popup == NULL);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(popup, text);
+
+       btn = elm_button_add(popup);
+       ret_if(btn == NULL);
+       elm_object_text_set(btn, btn_text);
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", func, popup);
+       evas_object_show(popup);
+
+       MGR_APP_BEGIN();
+}
+
+void mgr_app_create_popup_progressbar(Evas_Object *parent, char *text)
+{
+       MGR_APP_BEGIN();
+
+       ret_if(parent == NULL);
+       ret_if(text == NULL);
+
+       Evas_Object *progressbar = NULL;
+
+       if (_popup) {
+               evas_object_del(_popup);
+               _popup = NULL;
+       }
+
+       _popup = elm_popup_add(parent);
+       ret_if(_popup == NULL);
+
+       progressbar = elm_progressbar_add(_popup);
+       ret_if(progressbar == NULL);
+       elm_object_style_set(progressbar, "list_process");
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       evas_object_show(progressbar);
+
+       elm_object_part_text_set(_popup, "title,text", text);
+       elm_object_content_set(_popup, progressbar);
+       evas_object_show(_popup);
+
+       MGR_APP_END();
+}
+
+void mgr_app_destroy_popup_progressbar()
+{
+       MGR_APP_BEGIN();
+
+       if (_popup) {
+               evas_object_del(_popup);
+               _popup = NULL;
+       }
+
+       MGR_APP_END();
+}
index 58811dc..9bf324e 100644 (file)
@@ -2,13 +2,13 @@
 %define _ugdir %{_optdir}/ug
 
 
-Name:       ug-setting-manage-applications-efl
-Summary:    Manage Application package
-Version:    0.0.24
-Release:    0
-Group:      TO_BE/FILLED_IN
-License:    Flora Software License
-Source0:    %{name}-%{version}.tar.gz
+Name:          ug-setting-manage-applications-efl
+Summary:       Manage Application package
+Version:       0.0.25
+Release:       0
+Group:         TO_BE/FILLED_IN
+License:       Flora Software License
+Source0:       %{name}-%{version}.tar.gz
 BuildRequires: cmake
 BuildRequires: gettext-tools
 BuildRequires: edje-tools
index 47921c0..d807445 100755 (executable)
@@ -284,6 +284,8 @@ static void _uninstall_by_pkgmgr_cb(void *data, Evas_Object *obj, void *event_in
        evas_object_data_del(obj, STR_POPUP);
        evas_object_del(popup);
 
+       mgr_app_create_popup_progressbar(ugd->win_main, dgettext(PACKAGE, "IDS_ST_POP_UNINSTALLING_ING"));
+
        _force_stop_clicked_cb(data, btn_uninstall, event_info);
 
        MGR_APP_DEBUG("pkg type: %s, pkg_name: %s", app_info->pkg_type, app_info->pkg_name);
index b32736b..7b2f6f2 100755 (executable)
@@ -55,7 +55,9 @@
 #define STR_END                                "end"
 #define STR_OK                         "ok"
 #define STR_CANCEL                     "cancel"
-
+#define STR_ERROR                      "error"
+#define STR_FAIL                       "fail"
+#define STR_POPUP_OK           "OK"
 
 typedef struct _app_list_view_data_t app_list_view_data_t;
 
@@ -375,32 +377,11 @@ static ail_cb_ret_e _appinfo_func_cb(const ail_appinfo_h ail_info, void *user_da
        return AIL_CB_RET_CONTINUE;
 }
 
-static void _popup_progressbar_by_uninstall(void *data)
+static void _response_cb(void *data, Evas_Object *obj, void *event_info)
 {
        MGR_APP_BEGIN();
 
-       ret_if(data == NULL);
-       struct ug_data *ugd = (struct ug_data*)data;
-
-       Evas_Object *popup = NULL;
-       Evas_Object *layout = NULL;
-       Evas_Object *progressbar = NULL;
-
-       popup = elm_popup_add(ugd->win_main);\r
-       ret_if(popup == NULL);
-
-       progressbar = elm_progressbar_add(popup);
-       ret_if(progressbar == NULL);
-       elm_object_style_set(progressbar, "list_process");
-       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
-       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_progressbar_pulse(progressbar, EINA_TRUE);
-       evas_object_show(progressbar);
-
-       elm_object_part_text_set(popup, "title,text", dgettext(PACKAGE, "IDS_ST_POP_UNINSTALLING_ING"));
-       elm_popup_timeout_set(popup, 1.0);
-       elm_object_content_set(popup, progressbar);
-       evas_object_show(popup);
+       evas_object_del(data);
 
        MGR_APP_END();
 }
@@ -632,11 +613,16 @@ int mgr_app_view_listen_cb(int req_id, const char *pkg_type, const char *pkg_nam
 
        if (!strncmp(key, STR_START, strlen(key)) && !strncmp(val, STR_UNINSTALL, strlen(val))) {
                ugd->uninstall = EINA_TRUE;
-               _popup_progressbar_by_uninstall((void*)ugd);
        } else if (!strncmp(key, STR_START, strlen(key)) && !strncmp(val, STR_INSTALL, strlen(val))) {
                ugd->uninstall = EINA_FALSE;
+       } else if (!strncmp(key, STR_ERROR, strlen(key))) {
+       } else if (!strncmp(key, STR_END, strlen(key)) && !strncmp(val, STR_FAIL, strlen(val))) {
+               mgr_app_destroy_popup_progressbar();
+               mgr_app_create_popup_text_1button(ugd->win_main, "Uninstall failed", STR_POPUP_OK, _response_cb);
        } else if (!strncmp(key, STR_END, strlen(key)) && !strncmp(val, STR_OK, strlen(val))) {
                if (ugd->uninstall) {
+                       mgr_app_destroy_popup_progressbar();
+                       mgr_app_create_popup_text_1button(ugd->win_main, "Uninstall complete", STR_POPUP_OK, _response_cb);
                        _list_update_by_uninstall(pkg_type, pkg_name, (void*)ugd);
                } else {
                        _list_update_by_install(pkg_type, pkg_name, (void*)ugd);