appmgr: Fixed move to phone/SD bug 72/105472/1
authorBartlomiej Uliasz <b.uliasz@samsung.com>
Fri, 16 Dec 2016 16:02:23 +0000 (17:02 +0100)
committerBartlomiej Uliasz <b.uliasz@samsung.com>
Fri, 16 Dec 2016 16:02:23 +0000 (17:02 +0100)
Fixes issue TSAM-11428.
Fixed "Move to..." item in some situtaions didn't reflect actual state.

Change-Id: Ifa2dd5ccc4cb9148ad9fc09e3f9c2da0d2d9e3b9
Signed-off-by: Bartlomiej Uliasz <b.uliasz@samsung.com>
setting-appmgr/include/setting-appmgr-string.h
setting-appmgr/src/setting-appmgr-async-worker.c
setting-appmgr/src/setting-appmgr-main.c
setting-appmgr/src/setting-appmgr-pkginfo.c
setting-appmgr/src/setting-appmgr.c

index 4403cf304bfdf37398dec0ef4bfa41d4f13a78e2..140888c2105057b90b5899e118bacade578906b2 100644 (file)
@@ -66,7 +66,7 @@
 #define MGRAPP_STR_MOVE_FAIL "IDS_EMAIL_POP_FAILED_TO_MOVE"
 #define MGRAPP_STR_NO_MEM "IDS_MSGC_BODY_NOT_ENOUGH_MEMORY_IN_PHONE_MEMORY_"\
        "DELETE_SOME_ITEMS_AND_TRY_AGAIN"
-#define MGRAPP_STR_MOVEING "IDS_PB_BODY_MOVING_ING"
+#define MGRAPP_STR_MOVING "IDS_PB_BODY_MOVING_ING"
 #define MGRAPP_STR_UNINSTALL_MSG "IDS_ST_POP_UNINSTALL_Q"
 #define MGRAPP_STR_UNINSTALL_COMPLETE "IDS_ST_POP_THE_APP_HAS_BEEN_UNINSTALLED"
 #define MGRAPP_STR_UNINSTALL_FAILED "IDS_ST_POP_FAILED_TO_UNINSTALL_THE_APP"
index b92471ace5cc0c506879a8f15e2cb7e8191404cd..e17ea453022c036664f72d5515437b738ece8cdf 100644 (file)
@@ -37,8 +37,6 @@ static GHashTable *async_worker_hashT = NULL;
 
 static Eina_Bool _async_worker_idler(void *data)
 {
-       SETTING_TRACE_BEGIN;
-       SETTING_TRACE("----------------------------------thread join BEGIN ");
        appmgr_worker *worker = data;
 
        retv_if(NULL == data, ECORE_CALLBACK_CANCEL);
@@ -52,18 +50,11 @@ static Eina_Bool _async_worker_idler(void *data)
 
        g_hash_table_remove(async_worker_hashT, worker);
 
-       /* worker->worker_idler = ecore_idler_add(_async_worker_idler,
-        * worker); */
-
-       /*worker->worker_idler = NULL;*/
-       SETTING_TRACE("----------------------------------thread join END ");
-       SETTING_TRACE_END;
        return ECORE_CALLBACK_CANCEL;
 }
 
 static void *_async_worker_thread(void *data)
 {
-       SETTING_TRACE(" --------------------------- thread worker : BEGIN ");
        int ret;
        appmgr_worker *worker = data;
 
@@ -96,7 +87,6 @@ static void *_async_worker_thread(void *data)
                /*      _async_worker_idler(worker); */
        }
 
-       SETTING_TRACE(" --------------------------- thread worker : END ");
        pthread_exit(NULL);
        return NULL;
 }
index 8796b4daf8285b615268ed401cd0b115a5e221e9..6624be74d611c0c5222310222caa716431b86aa4 100644 (file)
@@ -838,7 +838,9 @@ static Eina_Bool _update_timer_cb(void *data)
 
        retv_if(!ad, EINA_FALSE);
        update_cycle++;
-       retv_if(ad->data_lists_under_update, EINA_TRUE);
+
+       if (ad->data_lists_under_update)
+               return EINA_TRUE;
 
        if (ad->needs_to_update_on_sort) {
                ad->needs_to_update_on_sort = false;
@@ -866,8 +868,7 @@ static Eina_Bool _update_timer_cb(void *data)
                ad->needs_to_update_on_lists_contents = false;
                if (!appmgr_start_async_worker(
                                        appmgr_utils_init_apps_and_pkgs_lists,
-                                       _async_update_finish, ad)
-               ) {
+                                       _async_update_finish, ad)) {
                        ad->data_lists_under_update = false;
                        ad->needs_to_update_on_lists_contents = true;
                        SETTING_TRACE_ERROR("appmgr_start_async_worker() fail");
@@ -887,8 +888,7 @@ static Eina_Bool _update_timer_cb(void *data)
        return EINA_TRUE;
 }
 
-static void _app_node_2_ui_node_adapter(const app_node *info,
-                                               ui_node **node)
+static void _app_node_2_ui_node_adapter(const app_node *info, ui_node **node)
 {
        if (!node || !info)
                return;
index 49fab0161d1a886fdbcae5015a7ebd0d1787fd24..f0a1fb877adccc6b0fbb5763b0101ff4e5761a24 100755 (executable)
@@ -64,29 +64,29 @@ static void _pkginfo_append_cache(SettingAppMgr *ad);
 static void _pkginfo_append_default(SettingAppMgr *ad);
 static void _pkginfo_append_privilege(SettingAppMgr *ad);
 
-static int appmgr_pkg_create(void *data);
-static int appmgr_pkg_destroy(void *data);
-static int appmgr_pkg_update(void *data);
-static int appmgr_pkg_cleanup(void *data);
+static int _view_create(void *data);
+static int _view_destroy(void *data);
+static int _view_update(void *data);
+static int _view_cleanup(void *data);
 
 /* Genlist items classes functions: */
-static char *pkginfo_move_to_sd_item_text_get(void *data, Evas_Object *obj,
+static char *_move_to_sd_item_text_get(void *data, Evas_Object *obj,
                                                const char *part);
-static char *pkginfo_clear_cache_text_get(void *data, Evas_Object *obj,
+static char *_clear_cache_text_get(void *data, Evas_Object *obj,
                                        const char *part);
-static char *pkginfo_clear_default_text_get(void *data, Evas_Object *obj,
+static char *_clear_default_text_get(void *data, Evas_Object *obj,
                                                const char *part);
-static char *pkginfo_total_size_text_get(void *data, Evas_Object *obj,
+static char *_total_size_text_get(void *data, Evas_Object *obj,
                                        const char *part);
-static char *pkginfo_app_size_text_get(void *data, Evas_Object *obj,
+static char *_app_size_text_get(void *data, Evas_Object *obj,
                                        const char *part);
-static char *pkginfo_data_size_text_get(void *data, Evas_Object *obj,
+static char *_data_size_text_get(void *data, Evas_Object *obj,
                                        const char *part);
-static char *pkginfo_cache_size_text_get(void *data, Evas_Object *obj,
+static char *_cache_size_text_get(void *data, Evas_Object *obj,
                                        const char *part);
-static char *pkginfo_privilige_detail_text_get(void *data, Evas_Object *obj,
+static char *_privilige_detail_text_get(void *data, Evas_Object *obj,
                                                const char *part);
-static void pkginfo_privilige_detail_del(void *data, Evas_Object *genlist);
+static void _privilige_detail_del(void *data, Evas_Object *genlist);
 
 /* UI callbacks */
 static void _force_close_cb(void *data, Evas_Object *button, void *event_info);
@@ -121,10 +121,10 @@ void appmgr_pkginfo_init(SettingAppMgr *ad)
        ret_if(NULL == ad);
        ret_if(ad->pkginfo_view);
 
-       setting_view_appmgr_pkginfo.create = appmgr_pkg_create;
-       setting_view_appmgr_pkginfo.destroy = appmgr_pkg_destroy;
-       setting_view_appmgr_pkginfo.update = appmgr_pkg_update;
-       setting_view_appmgr_pkginfo.cleanup = appmgr_pkg_cleanup;
+       setting_view_appmgr_pkginfo.create = _view_create;
+       setting_view_appmgr_pkginfo.destroy = _view_destroy;
+       setting_view_appmgr_pkginfo.update = _view_update;
+       setting_view_appmgr_pkginfo.cleanup = _view_cleanup;
 
        ad->pkginfo_view = &setting_view_appmgr_pkginfo;
 }
@@ -282,7 +282,7 @@ static void _pkginfo_append_genlist(SettingAppMgr *ad)
 /**
  * [UI] Naviframe : "Application info"
  */
-static int appmgr_pkg_create(void *data)
+static int _view_create(void *data)
 {
        int ret = 0;
        SETTING_TRACE_BEGIN;
@@ -291,22 +291,22 @@ static int appmgr_pkg_create(void *data)
        retv_if(!data, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
 
        itc_move_to_sd.item_style = "type1";
-       itc_move_to_sd.func.text_get = pkginfo_move_to_sd_item_text_get;
+       itc_move_to_sd.func.text_get = _move_to_sd_item_text_get;
        itc_clear_cache.item_style = "type1";
-       itc_clear_cache.func.text_get = pkginfo_clear_cache_text_get;
+       itc_clear_cache.func.text_get = _clear_cache_text_get;
        itc_clear_default.item_style = "type1";
-       itc_clear_default.func.text_get = pkginfo_clear_default_text_get;
+       itc_clear_default.func.text_get = _clear_default_text_get;
        itc_total_size_item.item_style = "type1";
-       itc_total_size_item.func.text_get = pkginfo_total_size_text_get;
+       itc_total_size_item.func.text_get = _total_size_text_get;
        itc_app_size_item.item_style = "type1";
-       itc_app_size_item.func.text_get = pkginfo_app_size_text_get;
+       itc_app_size_item.func.text_get = _app_size_text_get;
        itc_data_size_item.item_style = "type1";
-       itc_data_size_item.func.text_get = pkginfo_data_size_text_get;
+       itc_data_size_item.func.text_get = _data_size_text_get;
        itc_cache_size_item.item_style = "type1";
-       itc_cache_size_item.func.text_get = pkginfo_cache_size_text_get;
+       itc_cache_size_item.func.text_get = _cache_size_text_get;
        itc_privilege_detail.item_style = "multiline";
-       itc_privilege_detail.func.text_get = pkginfo_privilige_detail_text_get;
-       itc_privilege_detail.func.del = pkginfo_privilige_detail_del;
+       itc_privilege_detail.func.text_get = _privilige_detail_text_get;
+       itc_privilege_detail.func.del = _privilige_detail_del;
 
        ret = package_info_create(ad->selected_pkg.id,
                                        &ad->selected_pkg.package_info);
@@ -338,7 +338,7 @@ static int appmgr_pkg_create(void *data)
        return SETTING_RETURN_SUCCESS;
 }
 
-static int appmgr_pkg_destroy(void *data)
+static int _view_destroy(void *data)
 {
        SETTING_TRACE_BEGIN;
        SettingAppMgr *ad = data;
@@ -390,7 +390,7 @@ static int appmgr_pkg_destroy(void *data)
        return SETTING_RETURN_SUCCESS;
 }
 
-static int appmgr_pkg_update(void *data)
+static int _view_update(void *data)
 {
        SETTING_TRACE_BEGIN;
        int ret = 0;
@@ -399,7 +399,14 @@ static int appmgr_pkg_update(void *data)
        Elm_Widget_Item *next_privilege_item = NULL;
        Elm_Widget_Item *last_privilege_item = NULL;
        SettingAppMgr *ad = data;
-       retv_if(!data, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+       retv_if(!ad, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+
+       if (ad->selected_pkg.package_info) {
+               package_info_destroy(ad->selected_pkg.package_info);
+               ad->selected_pkg.package_info = NULL;
+               package_manager_get_package_info(ad->selected_pkg.id,
+                                               &ad->selected_pkg.package_info);
+       }
 
        elm_genlist_realized_items_update(ad->package_info_gl);
        /* free package data: */
@@ -441,9 +448,9 @@ static int appmgr_pkg_update(void *data)
        return SETTING_RETURN_SUCCESS;
 }
 
-static int appmgr_pkg_cleanup(void *data)
+static int _view_cleanup(void *data)
 {
-       return appmgr_pkg_destroy(data);
+       return _view_destroy(data);
 }
 
 static bool _app_in_package_info_cb(package_info_app_component_type_e comp_type,
@@ -661,10 +668,6 @@ static void _size_info_receive_cb(const char *package_id,
        pkg->pkg_total_size = pkg->pkg_app_size + pkg->pkg_cached_data_size +
                                pkg->pkg_user_data_size;
 
-       SETTING_TRACE_DEBUG("Recieved pkg %s size info: %lld %lld %lld",
-                               package_id, pkg->pkg_total_size,
-                               pkg->pkg_app_size, pkg->pkg_user_data_size);
-
        elm_genlist_item_fields_update(ad->total_size_item, "elm.text.sub",
                                        ELM_GENLIST_ITEM_FIELD_TEXT);
        elm_genlist_item_fields_update(ad->app_size_item, "elm.text.sub",
@@ -796,7 +799,6 @@ static int _get_privileges_grp_iter(const char *grp, void *user_data)
 static int _get_privilege_detail_cb(const char *privilege, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-
        int ret = 0;
        SettingAppMgr *ad = user_data;
        privilege_detail_t *privilege_data = NULL;
@@ -845,26 +847,12 @@ static void _package_move_finished(int id, const char *type,
                package_manager_event_state_e event_state, int progress,
                package_manager_error_e error, void *user_data)
 {
-       int ret = 0;
        SettingAppMgr *ad = user_data;
-       package_info_installed_storage_type_e storage_type;
 
        ret_if(!ad);
 
-       ret = package_info_get_installed_storage(ad->selected_pkg.package_info,
-                                               &storage_type);
-       if (PACKAGE_MANAGER_ERROR_NONE != ret) {
-               SETTING_TRACE_ERROR("package_info_get_installed_storage(): %s",
-                                       get_error_message(ret));
-       }
-
-       ad->selected_pkg.is_installed_internally =
-                       (PACKAGE_INFO_INTERNAL_STORAGE == storage_type);
-
        evas_object_del(ad->popup);
        ad->popup = NULL;
-       elm_genlist_item_fields_update(ad->total_size_item, "elm.text.sub",
-                                       ELM_GENLIST_ITEM_FIELD_TEXT);
 }
 
 static int __package_move_finished2(uid_t target_uid, int req_id,
@@ -872,8 +860,6 @@ static int __package_move_finished2(uid_t target_uid, int req_id,
                                const char *key, const char *val,
                                const void *pmsg, void *data)
 {
-       int ret = 0;
-       package_info_installed_storage_type_e storage_type;
        SettingAppMgr *ad = data;
 
        retv_if(!ad, -1);
@@ -881,26 +867,14 @@ static int __package_move_finished2(uid_t target_uid, int req_id,
        if (0 != safeStrCmp(key, "end"))
                return 0;
 
-       package_info_destroy(ad->selected_pkg.package_info);
-       ad->selected_pkg.package_info = NULL;
-       package_manager_get_package_info(ad->selected_pkg.id,
-                                               &ad->selected_pkg.package_info);
+       /* there is no need to update package info, as it's updated by general
+        * package change callback (registered in setting-appmgr.c), which calls
+        * view_update on this view
+        */
 
-       ret = package_info_get_installed_storage(ad->selected_pkg.package_info,
-                                               &storage_type);
-       if (PACKAGE_MANAGER_ERROR_NONE != ret) {
-               SETTING_TRACE_ERROR("package_info_get_installed_storage(): %s",
-                                       get_error_message(ret));
-       }
-
-       ad->selected_pkg.is_installed_internally =
-                       (PACKAGE_INFO_INTERNAL_STORAGE == storage_type);
        evas_object_del(ad->popup);
        ad->popup = NULL;
-
        elm_object_item_disabled_set(ad->move_to_from_sd_item, EINA_FALSE);
-       elm_genlist_item_fields_update(ad->move_to_from_sd_item, "elm.text.sub",
-                                       ELM_GENLIST_ITEM_FIELD_TEXT);
 
        return 0;
 }
@@ -1022,7 +996,7 @@ Evas_Object *pkginfo_icon_name_ver_content_get(void *data, Evas_Object *genlist,
        return icon;
 }
 
-static char *pkginfo_move_to_sd_item_text_get(void *data, Evas_Object *obj,
+static char *_move_to_sd_item_text_get(void *data, Evas_Object *obj,
                                                const char *part)
 {
        SettingAppMgr_PkgInfo *pkg = data;
@@ -1038,7 +1012,7 @@ static char *pkginfo_move_to_sd_item_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_clear_cache_text_get(void *data, Evas_Object *obj,
+static char *_clear_cache_text_get(void *data, Evas_Object *obj,
                                        const char *part)
 {
        if (!strcmp(part, "elm.text"))
@@ -1047,7 +1021,7 @@ static char *pkginfo_clear_cache_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_clear_default_text_get(void *data, Evas_Object *obj,
+static char *_clear_default_text_get(void *data, Evas_Object *obj,
                                                const char *part)
 {
        if (!strcmp(part, "elm.text"))
@@ -1060,7 +1034,7 @@ static char *pkginfo_clear_default_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_total_size_text_get(void *data, Evas_Object *obj,
+static char *_total_size_text_get(void *data, Evas_Object *obj,
                                        const char *part)
 {
        char desc[NAME_MAX] = {0};
@@ -1086,8 +1060,7 @@ static char *pkginfo_total_size_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_app_size_text_get(void *data, Evas_Object *obj,
-                                       const char *part)
+static char *_app_size_text_get(void *data, Evas_Object *obj, const char *part)
 {
        char desc[NAME_MAX] = {0};
        SettingAppMgr_PkgInfo *pkg = data;
@@ -1112,7 +1085,7 @@ static char *pkginfo_app_size_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_data_size_text_get(void *data, Evas_Object *obj,
+static char *_data_size_text_get(void *data, Evas_Object *obj,
                                        const char *part)
 {
        char desc[NAME_MAX] = {0};
@@ -1138,7 +1111,7 @@ static char *pkginfo_data_size_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_cache_size_text_get(void *data, Evas_Object *obj,
+static char *_cache_size_text_get(void *data, Evas_Object *obj,
                                        const char *part)
 {
        char desc[NAME_MAX] = {0};
@@ -1164,7 +1137,7 @@ static char *pkginfo_cache_size_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static char *pkginfo_privilige_detail_text_get(void *data, Evas_Object *obj,
+static char *_privilige_detail_text_get(void *data, Evas_Object *obj,
                                                const char *part)
 {
        privilege_detail_t *privilege_data = data;
@@ -1180,7 +1153,7 @@ static char *pkginfo_privilige_detail_text_get(void *data, Evas_Object *obj,
        return NULL;
 }
 
-static void pkginfo_privilige_detail_del(void *data, Evas_Object *genlist)
+static void _privilige_detail_del(void *data, Evas_Object *genlist)
 {
        privilege_detail_t *privilege_data = data;
 
@@ -1328,7 +1301,7 @@ static void _move_to_from_sd(void *data, Evas_Object *genlist, void *event_info)
                        ad->popup =
                        setting_create_popup_with_progressbar(ad, ad->md.window,
                                        PROGRESSBAR_STYLE, NULL,
-                                       MGRAPP_STR_MOVEING, NULL,
+                                       MGRAPP_STR_MOVING, NULL,
                                        0, true, true, 0);
                }
                ret = package_manager_request_move(request,
@@ -1370,11 +1343,9 @@ static void _move_to_from_sd(void *data, Evas_Object *genlist, void *event_info)
        if (ret > 0) {
                SETTING_TRACE_DEBUG("pkgmgr_client_move(): %d", ret);
                evas_object_del(ad->popup);
-               ad->popup =
-               setting_create_popup_with_progressbar(ad, ad->md.window,
-                               PROGRESSBAR_STYLE, NULL,
-                               MGRAPP_STR_MOVEING, NULL,
-                               0, true, true, 0);
+               ad->popup = setting_create_popup_with_progressbar(ad,
+                               ad->md.window, PROGRESSBAR_STYLE, NULL,
+                               MGRAPP_STR_MOVING, NULL, 0, true, true, 0);
        } else {
                SETTING_TRACE_ERROR("pkgmgr_client_move(): %d", ret);
                appmgr_fail_popup(MGRAPP_STR_MOVE_FAIL, ad);
index 714b3b59aa8bde2f0fec6d17a260eadd77df9349..e7841d0302a416b3510abf4af62f4acefc76ff28 100755 (executable)
@@ -310,12 +310,12 @@ static void _app_mgr_event_cb(const char *type, const char *app_id,
                                app_manager_event_state_e event_state,
                                app_manager_event_h handle, void *user_data)
 {
-       if (APP_MANAGER_EVENT_STATE_COMPLETED == event_state) {
-               SETTING_TRACE_DEBUG("_app_mgr_event_cb: %s %s %d", type,
-                                               app_id, event_type);
-               setting_view_update(setting_view_node_get_cur_view(),
-                                       user_data);
-       }
+       if (event_state != APP_MANAGER_EVENT_STATE_COMPLETED)
+               return;
+
+       SETTING_TRACE_DEBUG("_app_mgr_event_cb: %s %s %d", type, app_id,
+                       event_type);
+       setting_view_update(setting_view_node_get_cur_view(), user_data);
 }
 
 static void _app_mgr_ctx_event_cb(app_context_h app_context,
@@ -350,38 +350,30 @@ static void _pkg_mgr_event_cb(const char *type, const char *package,
                                void *user_data)
 {
        SettingAppMgr *ad = user_data;
-       SETTING_TRACE_DEBUG("_pkg_mgr_event_cb: %s %s %d", type,
-                                               package, event_type);
-       if (!ad)
+       ret_if(!ad);
+
+       if (event_state != PACKAGE_MANAGER_EVENT_STATE_COMPLETED
+                       && event_state != PACKAGE_MANAGER_EVENT_STATE_FAILED)
                return;
 
-       if (PACKAGE_MANAGER_EVENT_STATE_COMPLETED == event_state ||
-               PACKAGE_MANAGER_EVENT_STATE_FAILED == event_state) {
-               if (
-                       setting_view_node_get_cur_view() == ad->pkginfo_view &&
-                       event_type == PACAKGE_MANAGER_EVENT_TYPE_UNINSTALL &&
-                       !safeStrCmp(package, ad->selected_pkg.id)
-                       ) {
-                               if (
-                               PACKAGE_MANAGER_EVENT_STATE_COMPLETED
-                               == event_state) {
-                                       setting_create_toast_popup(
-                                               _("IDS_ST_POP_THE_APP_"\
-                                               "HAS_BEEN_UNINSTALLED"),
-                                               ad->md.window);
-                               } else {
-                                       setting_create_toast_popup(
-                                               _("IDS_ST_POP_THE_APP_"\
-                                               "HAS_BEEN_UNINSTALLED"),
-                                               ad->md.window);
-                               }
-
-                               elm_naviframe_item_pop(ad->md.naviframe);
-                               return;
-                       }
+       SETTING_TRACE_DEBUG("pkg_mgr event: type:%s, package:%s, event_type:%d, event_state:%d, progress:%d, error:%d",
+                       type, package, event_type, event_state, progress, error);
+       if (setting_view_node_get_cur_view() == ad->pkginfo_view
+                       && event_type == PACAKGE_MANAGER_EVENT_TYPE_UNINSTALL
+                       && !safeStrCmp(package, ad->selected_pkg.id)) {
+               if (event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED)
+                       setting_create_toast_popup(
+                                       _("IDS_ST_POP_THE_APP_HAS_BEEN_UNINSTALLED"),
+                                       ad->md.window);
+               else
+                       setting_create_toast_popup(
+                                       _("IDS_IM_POP_UNEXPECTED_ERROR"),
+                                       ad->md.window);
 
-               setting_view_update(setting_view_node_get_cur_view(), ad);
+               elm_naviframe_item_pop(ad->md.naviframe);
+               return;
        }
+       setting_view_update(setting_view_node_get_cur_view(), ad);
 }
 
 static void _storage_changed_cb(int storage_id, storage_dev_e dev,