[TIZENIOT-1523]Added folder drag & drop & removed folder icon badge 85/232585/3 submit/tizen/20200507.051812
authorallu.k <allu.k@samsung.com>
Wed, 6 May 2020 12:53:26 +0000 (18:23 +0530)
committerAmritanshu Pandia <a.pandia1@samsung.com>
Thu, 7 May 2020 05:07:21 +0000 (05:07 +0000)
Change-Id: I5f96edddae0f85468a2f9e5d916ed8717699aaff

inc/apps_data.h
src/apps_data.c
src/apps_view.c
src/homescreen-manager.c

index 36391ae..4cbd19a 100644 (file)
@@ -79,4 +79,5 @@ void apps_data_update_list(app_data_t *item,app_data_t *folder);
 void apps_data_db_update();
 app_data_t *__apps_data_find_item_sort(int db_id);
 void apps_data_shift_app(app_data_t *item,app_data_t *before_item);
+void apps_data_shift_folder(app_data_t *folder,app_data_t *before_item);
 #endif /* __APPS_DATA_H__ */
index ffd82cc..8e686ef 100644 (file)
@@ -269,10 +269,42 @@ void apps_data_update_list(app_data_t *item,app_data_t *folder){
 }
 
 void apps_data_shift_app(app_data_t *item,app_data_t *before_item){
-       if(before_item!=NULL){
-       apps_data_s.data_list=eina_list_remove(apps_data_s.data_list,item);
-       apps_data_s.data_list=eina_list_prepend_relative(apps_data_s.data_list, item,before_item);
-       }
+       if(before_item!=NULL){
+               apps_data_s.data_list=eina_list_remove(apps_data_s.data_list,item);
+               apps_data_s.data_list=eina_list_prepend_relative(apps_data_s.data_list, item,before_item);
+       }else{
+               apps_data_s.data_list=eina_list_remove(apps_data_s.data_list,item);
+               apps_data_s.data_list=eina_list_append(apps_data_s.data_list, item);
+       }
+}
+
+
+void apps_data_shift_folder(app_data_t *folder,app_data_t *before_item){
+       if(before_item!=NULL){
+               apps_data_s.data_list=eina_list_remove(apps_data_s.data_list,folder);
+               apps_data_s.data_list=eina_list_prepend_relative(apps_data_s.data_list, folder,before_item);
+               app_data_t *item = NULL;
+               Eina_List *find_list;
+               Eina_List *list=NULL;
+               apps_data_get_folder_item_list(&list,folder);
+               EINA_LIST_FOREACH(list, find_list, item) {
+                       if (item->parent_db_id == folder->db_id) {
+                               apps_data_shift_app(item,before_item);
+                       }
+               }
+       }else{
+                       apps_data_s.data_list=eina_list_remove(apps_data_s.data_list,folder);
+                       apps_data_s.data_list=eina_list_append(apps_data_s.data_list, folder);
+                       app_data_t *item = NULL;
+                       Eina_List *find_list;
+                       Eina_List *list=NULL;
+                       apps_data_get_folder_item_list(&list,folder);
+                       EINA_LIST_FOREACH(list, find_list, item) {
+                               if (item->parent_db_id == folder->db_id) {
+                                       apps_data_shift_app(item,before_item);
+                               }
+                       }
+       }
 }
 
 
index db109de..64d6ea4 100644 (file)
@@ -1221,11 +1221,11 @@ void apps_view_update_folder_icon(app_data_t* item)
                __D("%s", temp_item->label_str);
                snprintf(folder_item_count_string, sizeof(folder_item_count_string), "icon_%d", i);
                __D("%s", folder_item_count_string);
-               icon_image = elm_image_add(item->folder_layout);
+               /*icon_image = elm_image_add(item->folder_layout);
                elm_image_file_set(icon_image, temp_item->icon_path_str, NULL);
                evas_object_size_hint_weight_set(icon_image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                elm_object_part_content_set(item->folder_layout, folder_item_count_string, icon_image);
-               evas_object_show(icon_image);
+               evas_object_show(icon_image);*/
        }
        snprintf(folder_item_count_string, sizeof(folder_item_count_string), "set_item_count_%d", item_count > 4 ? 4 : item_count);
        __D("%s", folder_item_count_string);
@@ -1811,13 +1811,8 @@ static Eina_Bool __apps_view_icon_long_press_time_cb(void *data)
                return ECORE_CALLBACK_CANCEL;
 
        apps_mouse_info.long_pressed = true;
-
        elm_scroller_movement_block_set(apps_view_s.scroller, ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL);
-
-       if (!item->is_folder) {
-               __apps_view_edit_pick_up_icon(data);
-       }
-
+       __apps_view_edit_pick_up_icon(data);
        if (apps_view_s.view_state == VIEW_STATE_NORMAL)
                apps_view_set_state(VIEW_STATE_EDIT);
 
@@ -1952,34 +1947,35 @@ static void __apps_view_edit_drop_icon(void *data)
 
        __apps_view__set_icon_label_style(item, VIEW_STATE_EDIT);
 
-       if((apps_view_s.new_item && strcmp(apps_view_s.new_item->app_id, apps_view_s.picked_item->app_id) != 0 )&& !(apps_view_s.apps_reorder))
-    {
-               apps_view_s.candidate_folder = apps_data_add_folder_with_items(apps_view_s.new_item,apps_view_s.picked_item);
-               apps_view_s.new_item->parent_db_id = apps_view_s.candidate_folder->db_id;
-               apps_db_update(apps_view_s.new_item);
-               if (apps_view_s.new_item->app_layout) {
-                       evas_object_del(apps_view_s.new_item->app_layout);
-                       apps_view_s.new_item->app_layout = NULL;
-        }
-
-               apps_view_s.picked_item->parent_db_id = apps_view_s.candidate_folder->db_id;
-               apps_db_update(apps_view_s.picked_item);
-               if (apps_view_s.picked_item->app_layout) {
-                       evas_object_del(apps_view_s.picked_item->app_layout);
-                       apps_view_s.picked_item->app_layout = NULL;
-               }
-               apps_view_update_folder_icon(apps_view_s.candidate_folder);
-               __apps_view_open_folder_popup(apps_view_s.candidate_folder);
+               if(apps_view_s.picked_item->app_id!=NULL){
+               if((apps_view_s.new_item && strcmp(apps_view_s.new_item->app_id, apps_view_s.picked_item->app_id) != 0 )&& !(apps_view_s.apps_reorder)){
+                       apps_view_s.candidate_folder = apps_data_add_folder_with_items(apps_view_s.new_item,apps_view_s.picked_item);
+                       apps_view_s.new_item->parent_db_id = apps_view_s.candidate_folder->db_id;
+                       apps_db_update(apps_view_s.new_item);
+                       if (apps_view_s.new_item->app_layout) {
+                               evas_object_del(apps_view_s.new_item->app_layout);
+                               apps_view_s.new_item->app_layout = NULL;
+                       }
 
-               apps_view_s.candidate_folder = NULL;
-               apps_view_s.new_item = NULL;
-       } else if(apps_view_s.candidate_folder && !(apps_view_s.apps_reorder)){
-               int folder_item_count = 0;
-               folder_item_count = apps_data_get_folder_item_count(apps_view_s.candidate_folder);
-               if (folder_item_count >= APPS_FOLDER_MAX_ITEM) {
-                       char str[1024];
-                       snprintf(str, sizeof(str), _("IDS_HS_TPOP_MAXIMUM_NUMBER_OF_APPLICATIONS_IN_FOLDER_HPD_REACHED"), APPS_FOLDER_MAX_ITEM);
-                       toast_show(str);
+                       apps_view_s.picked_item->parent_db_id = apps_view_s.candidate_folder->db_id;
+                       apps_db_update(apps_view_s.picked_item);
+                       if (apps_view_s.picked_item->app_layout) {
+                               evas_object_del(apps_view_s.picked_item->app_layout);
+                               apps_view_s.picked_item->app_layout = NULL;
+                       }
+                       apps_view_update_folder_icon(apps_view_s.candidate_folder);
+                       __apps_view_open_folder_popup(apps_view_s.candidate_folder);
+
+                       apps_view_s.candidate_folder = NULL;
+                       apps_view_s.new_item = NULL;
+               }
+               else if(apps_view_s.candidate_folder && !(apps_view_s.apps_reorder)){
+                       int folder_item_count = 0;
+                       folder_item_count = apps_data_get_folder_item_count(apps_view_s.candidate_folder);
+                       if (folder_item_count >= APPS_FOLDER_MAX_ITEM) {
+                               char str[1024];
+                               snprintf(str, sizeof(str), _("IDS_HS_TPOP_MAXIMUM_NUMBER_OF_APPLICATIONS_IN_FOLDER_HPD_REACHED"), APPS_FOLDER_MAX_ITEM);
+                               toast_show(str);
                } else {
                        item->parent_db_id = apps_view_s.candidate_folder->db_id;
                        apps_data_update_list(item,apps_view_s.candidate_folder);
@@ -1993,9 +1989,14 @@ static void __apps_view_edit_drop_icon(void *data)
                elm_object_signal_emit(apps_view_s.candidate_folder->folder_layout, SIGNAL_FRAME_POSSIBLE_HIDE, SIGNAL_SOURCE);
                apps_view_s.candidate_folder = NULL;
 
-       }else if(apps_view_s.apps_reorder){
+               }
+       }
+       if(apps_view_s.apps_reorder){
                app_data_t *before_item=apps_data_find_item_by_index(apps_view_s.position+1);
-               apps_data_shift_app(apps_view_s.picked_item,before_item);
+               if(!apps_view_s.picked_item->is_folder)
+                       apps_data_shift_app(apps_view_s.picked_item,before_item);
+               else
+                       apps_data_shift_folder(apps_view_s.picked_item,before_item);
 
                apps_view_s.apps_reorder=false;
                apps_view_s.position=-1;
index 3c1a7f2..71ce0ff 100755 (executable)
@@ -428,7 +428,7 @@ static void __set_wallpaper(void)
        if (!buf || !ecore_file_can_read(buf) || ret != SYSTEM_SETTINGS_ERROR_NONE) {
                elm_image_file_set(main_info.bg, util_get_res_file_path(IMAGE_DIR"/default_bg.png"), "bg");
        } else {
-               elm_image_file_set(main_info.bg, util_get_res_file_path(IMAGE_DIR"/default_bg.png"), "bg");
+               elm_image_file_set(main_info.bg, buf, "bg");
        }
 
        evas_object_show(main_info.bg);