Apply some changes for IoT common profile 41/234041/2
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 21 May 2020 08:09:52 +0000 (17:09 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 21 May 2020 08:14:02 +0000 (17:14 +0900)
- Move scan, forget button to the bottom of list
- Check the part for group list style

Change-Id: I813bfa9f5054d06e56f53a5591c713f73bae4eda

packaging/wifi-efl-ug.spec
sources/libraries/Common/common_ip_info.c
sources/libraries/Common/common_utils.c
sources/ui-gadget/edcs/custom_genlist.edc
sources/ui-gadget/edcs/main_layout.edc
sources/ui-gadget/include/viewer_list.h
sources/ui-gadget/include/viewer_manager.h
sources/ui-gadget/viewers-layout/view_detail.c
sources/ui-gadget/viewers-layout/viewer_manager.c
sources/ui-gadget/viewers-layout/wifi_viewer_list.c

index 4614720..b9e6f20 100644 (file)
@@ -1,6 +1,6 @@
 Name:          wifi-efl-ug
 Summary:       Wi-Fi UI Gadget for TIZEN
-Version:       1.0.247
+Version:       1.0.248
 Release:       1
 Group:         App/Network
 License:       Flora-1.1
index a4c72b8..55691a6 100755 (executable)
@@ -40,8 +40,8 @@ typedef struct {
 static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
                char* description, Elm_Object_Item* insert_after);
 
-static Elm_Genlist_Item_Class *ip_toggle_itc ;
-static Elm_Genlist_Item_Class *description_itc ;
+static Elm_Genlist_Item_Class *ip_toggle_itc;
+static Elm_Genlist_Item_Class *description_itc;
 static Elm_Genlist_Item_Class *ip_entry_itc;
 static Evas_Object *curr_unfocus_entry = NULL;
 static int curr_unfocuc_cursor_pos = 0;
index a146959..433f34d 100755 (executable)
@@ -859,7 +859,10 @@ static void _init_genlist_group_index_style(void)
        g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].style_name = GENLIST_STYLE_GROUP_INDEX;
        g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].text_part = GENLIST_PART_ELM_TEXT;
        g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].sub_text_part = NULL;
-       g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].content_part = NULL;
+       if (g_ug_type == UG_VIEW_IOT_COMMON)
+               g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].content_part = GENLIST_PART_ELM_END;
+       else
+               g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].content_part = NULL;
        g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].sub_content_part = NULL;
 }
 
index 158284b..bf7d52c 100755 (executable)
 #define CUSTOM_GENLIST_LR_PADDING 60
 #define CUSTOM_GENLIST_TB_PADDING 20
 
+#define CUSTOM_GENLIST_BUTTON_LR_PADDING 400
+#define CUSTOM_GENLIST_BUTTON_TOP_PADDING 100
+#define CUSTOM_GENLIST_BUTTON_BOTTOM_PADDING 30
+
 styles {
    style { "custom_textblock_style";
       base: "font=Tizen:weight=Light font_size=40 color=#000 text_class=entry ellipsis=1.0 left_margin=5 right_margin=5";
@@ -273,4 +277,76 @@ group { name: "gl_custom_common_item";
       }
    }
 }
+
+group { name: "gl_custom_list_button_item";
+   parts {
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "left_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: CUSTOM_GENLIST_BUTTON_LR_PADDING 0;
+            align: 0.0 0.5;
+            rel1 { to: "base"; relative: 0.0 0.0; }
+            rel2 { to: "base"; relative: 0.0 1.0; }
+            fixed: 1 0;
+         }
+      }
+      part { name: "right_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: CUSTOM_GENLIST_BUTTON_LR_PADDING 0;
+            align: 1.0 0.5;
+            rel1 { to: "base"; relative: 1.0 0.0; }
+            rel2 { to: "base"; relative: 1.0 1.0; }
+            fixed: 1 0;
+         }
+      }
+      part { name: "top_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 CUSTOM_GENLIST_BUTTON_TOP_PADDING;
+            align: 0.5 0.0;
+            rel1 { to: "base"; }
+            rel2 { to: "base"; relative: 1.0 0.0; }
+            fixed: 0 1;
+         }
+      }
+      part { name: "elm.swallow.content";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.5 0.0;
+            rel1 {
+               to_x: "left_padding";
+               to_y: "top_padding";
+               relative: 1.0 1.0;
+            }
+            rel2 {
+               to_x: "right_padding";
+               to_y: "bottom_padding";
+               relative: 0.0 0.0;
+            }
+         }
+      }
+      part { name: "bottom_padding";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 0 CUSTOM_GENLIST_BUTTON_BOTTOM_PADDING;
+            align: 0.5 1.0;
+            rel1 { to: "base"; relative: 0.0 1.0; }
+            rel2 { to: "base"; relative: 1.0 1.0; }
+            fixed: 0 1;
+         }
+      }
+   }
+}
 }
index b1df0b2..66df75e 100644 (file)
@@ -48,7 +48,19 @@ collections
                        swallow { "elm.swallow.content";
                                desc { "default";
                                        rel1 { relative: 1.0 0.0; to: "padding.left"; }
-                                       rel2 { relative: 0.0 1.0; to: "padding.right"; }
+                                       rel2 { relative: 0.0 0.0;
+                                               to_x: "padding.right";
+                                               to_y: "padding.bottom";
+                                       }
+                               }
+                       }
+                       spacer { "padding.bottom"; scale;
+                               desc { "default";
+                                       min: 0 PADDING_SIZE;
+                                       max: -1 PADDING_SIZE;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel.to: "base";
                                }
                        }
                }
index e4e2e3e..8279ca3 100644 (file)
@@ -61,7 +61,7 @@ void viewer_list_item_enable_all(void);
 void viewer_list_item_disable_all(void);
 //////////////////////////////////////////////////////////////////////////////////////////////////
 
-void viewer_list_item_hidden_network_set(Elm_Object_Item *item);
+void viewer_list_last_item_set(Elm_Object_Item *item);
 
 Elm_Object_Item *item_get_for_ap(wifi_manager_ap_h ap);
 Elm_Object_Item *item_get_for_ssid(const char *ssid);
index b7f53aa..c008935 100755 (executable)
@@ -90,6 +90,8 @@ Evas_Object *viewer_manager_create_bg(Evas_Object *parent, char *style);
 #endif
 void viewer_manager_update_hidden_btn(void);
 int viewer_manager_create_scan_btn(void);
+Evas_Object *viewer_maanger_create_scan_list_btn(Evas_Object *parent); // For IoT Common
+
 void viewer_manager_eap_view_deref(void);
 
 #ifdef __cplusplus
index 0cdbd8d..9138cb7 100755 (executable)
@@ -47,6 +47,8 @@ static view_detail_data *_detail_data = NULL;
 static Eina_Bool rotate_flag = EINA_FALSE;
 static int pos_changed = 0;
 
+static Elm_Genlist_Item_Class *forget_btn_itc = NULL;
+
 static Eina_Bool detailview_sk_cb(void *data, Elm_Object_Item *it);
 static void forget_sk_cb(void *data, Evas_Object *obj, void *event_info);
 static void _transition_finished_sub_cb(void *data, Evas_Object *obj, void *event_info);
@@ -492,12 +494,51 @@ static void __view_detail_imf_ctxt_evnt_cb(void *data, Ecore_IMF_Context *ctx, i
        return;
 }
 
+// IoT Common
+static Evas_Object *_forget_btn_item_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       if (!obj)
+               return NULL;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *btn = NULL;
+
+       layout = elm_layout_add(obj);
+       if (!layout)
+               return NULL;
+
+       elm_layout_file_set(layout, CUSTOM_GENLIST_PATH, "gl_custom_list_button_item");
+       btn = elm_button_add(layout);
+       elm_object_style_set(btn, "border");
+       elm_object_domain_translatable_text_set(btn, PACKAGE, "IDS_WIFI_SK_FORGET");
+       evas_object_smart_callback_add(btn, "clicked", forget_sk_cb, data);
+       elm_object_part_content_set(layout, "elm.swallow.content", btn);
+
+       return layout;
+}
+
+// IoT Common
+static void __view_detail_add_forget_button(Evas_Object *list, view_detail_data *data)
+{
+       forget_btn_itc = elm_genlist_item_class_new();
+       forget_btn_itc->item_style = g_genlist_info[WIFI_GENLIST_FULL_STYLE].style_name;
+       forget_btn_itc->func.text_get = NULL;
+       forget_btn_itc->func.content_get = _forget_btn_item_content_get;
+       forget_btn_itc->func.state_get = NULL;
+       forget_btn_itc->func.del = NULL;
+
+       elm_genlist_item_append(list, forget_btn_itc, data,
+                       NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
 static gboolean __view_detail_load_ip_info_list_cb(void *data)
 {
        __COMMON_FUNC_ENTER__;
        Elm_Object_Item *navi_it = NULL;
        Evas_Object *list = NULL;
        Evas_Object *layout;
+       wifi_manager_connection_state_e state;
+
        _detail_data = (view_detail_data *)data;
 
        if (!_detail_data)
@@ -512,6 +553,12 @@ static gboolean __view_detail_load_ip_info_list_cb(void *data)
        /* Append ip info list */
        _detail_data->ip_info = ip_info_append_items(_detail_data->ap,
                        PACKAGE, list, __view_detail_imf_ctxt_evnt_cb, navi_it);
+
+       /* Append forget button */
+       wifi_manager_ap_get_connection_state(_detail_data->ap, &state);
+       if (state == WIFI_MANAGER_CONNECTION_STATE_CONNECTED)
+               __view_detail_add_forget_button(list, _detail_data);
+
        if (_detail_data && _detail_data->btn)
                elm_object_disabled_set(_detail_data->btn, EINA_FALSE);
 
index 4509938..331d2e5 100755 (executable)
@@ -1495,11 +1495,27 @@ Evas_Object *viewer_manager_naviframe_power_item_get(void)
        return elm_object_item_part_content_get(navi_it, "title_right_btn");
 }
 
+// For IoT Common profile.
+Evas_Object *viewer_maanger_create_scan_list_btn(Evas_Object *parent)
+{
+       Evas_Object *btn = elm_button_add(parent);
+       if (!btn)
+               return NULL;
+
+       elm_object_style_set(btn, "border");
+       elm_object_domain_translatable_text_set(btn, PACKAGE,
+                       "IDS_WIFI_BUTTON_SCAN");
+       evas_object_smart_callback_add(btn, "clicked", __refresh_scan_callback, NULL);
+
+       return btn;
+}
+
 int viewer_manager_create_scan_btn(void)
 {
        __COMMON_FUNC_ENTER__;
        if (ug_app_state->ug_type == UG_VIEW_SETUP_WIZARD
                        || ug_app_state->ug_type == UG_VIEW_OOBE
+                       || ug_app_state->ug_type == UG_VIEW_IOT_COMMON
                        || manager_object->scan_button) {
                __COMMON_FUNC_EXIT__;
                return 0;
@@ -1844,8 +1860,8 @@ static int viewer_manager_update_list_all(char *ssid)
                wifi_device_list = NULL;
        }
 
-       // Append hidden AP item
-       viewer_list_item_hidden_network_set(update_info.last_appended_item);
+       // OOBE: hidden AP, IOT: scan button
+       viewer_list_last_item_set(update_info.last_appended_item);
        INFO_LOG(UG_NAME_NORMAL, "total items added = %d", update_info.total_items_added);
 
        if (0 == update_info.total_items_added) {
index f792a7d..6e1aca8 100755 (executable)
@@ -225,11 +225,14 @@ static Evas_Object *_gl_content_scanning_icon_get(void *data, Evas_Object *obj,
 {
        Evas_Object *title_progressbar = NULL;
 
-       if (HEADER_MODE_SEARCHING == viewer_manager_header_mode_get()) {
-               title_progressbar  = elm_progressbar_add(obj);
-               elm_object_style_set(title_progressbar, "process_small");
-               elm_progressbar_horizontal_set(title_progressbar, EINA_TRUE);
-               elm_progressbar_pulse(title_progressbar, EINA_TRUE);
+       if (!g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].content_part
+                       || !strcmp(g_genlist_info[WIFI_GENLIST_GROUP_INDEX_STYLE].content_part, part)) {
+               if (HEADER_MODE_SEARCHING == viewer_manager_header_mode_get()) {
+                       title_progressbar  = elm_progressbar_add(obj);
+                       elm_object_style_set(title_progressbar, "process_small");
+                       elm_progressbar_horizontal_set(title_progressbar, EINA_TRUE);
+                       elm_progressbar_pulse(title_progressbar, EINA_TRUE);
+               }
        }
 
        return title_progressbar;
@@ -261,6 +264,26 @@ static Evas_Object *_gl_hidden_network_content_get(void *data, Evas_Object *obj,
        return icon;
 }
 
+static Evas_Object *_gl_scan_button_content_get(void *data, Evas_Object *obj,
+               const char *part)
+{
+       if (!obj)
+               return NULL;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *btn = NULL;
+
+       layout = elm_layout_add(obj);
+       if (!layout)
+               return NULL;
+
+       elm_layout_file_set(layout, CUSTOM_GENLIST_PATH, "gl_custom_list_button_item");
+       btn = viewer_maanger_create_scan_list_btn(layout);
+       elm_object_part_content_set(layout, "elm.swallow.content", btn);
+
+       return layout;
+}
+
 Elm_Object_Item* viewer_list_get_first_item(void)
 {
        return first_item;
@@ -1038,12 +1061,19 @@ Evas_Object* viewer_list_create(Evas_Object *win)
        no_wifi_device_itc->func.state_get = NULL;
        no_wifi_device_itc->func.del = _gl_listview_del;
 
-       if (wifi_get_ug_type() == UG_VIEW_OOBE) {
+       int ug_type = wifi_get_ug_type();
+       if (ug_type == UG_VIEW_OOBE) {
                last_item_itc = elm_genlist_item_class_new();
                last_item_itc->item_style = g_genlist_info[WIFI_GENLIST_1LINE_STYLE].style_name;
                last_item_itc->func.text_get = _gl_hidden_network_text_get;
                last_item_itc->func.content_get = _gl_hidden_network_content_get;
                last_item_itc->func.del = NULL;
+       } else if (ug_type == UG_VIEW_IOT_COMMON) {
+               last_item_itc = elm_genlist_item_class_new();
+               last_item_itc->item_style = g_genlist_info[WIFI_GENLIST_FULL_STYLE].style_name;
+               last_item_itc->func.text_get = NULL;
+               last_item_itc->func.content_get = _gl_scan_button_content_get;
+               last_item_itc->func.del = NULL;
        }
 
        first_item = last_item = NULL;
@@ -1426,14 +1456,16 @@ static void _hidden_network_cb(void* data, Evas_Object* obj, void* event_info)
     __COMMON_FUNC_EXIT__;
 }
 
-void viewer_list_item_hidden_network_set(Elm_Object_Item *item)
+void viewer_list_last_item_set(Elm_Object_Item *item)
 {
        if (item == NULL)
                return;
 
        last_item = elm_genlist_item_append(viewer_list,
                        last_item_itc, NULL, item,
-                       ELM_GENLIST_ITEM_NONE, _hidden_network_cb, NULL);
+                       ELM_GENLIST_ITEM_NONE,
+                       wifi_get_ug_type() == UG_VIEW_OOBE ? _hidden_network_cb : NULL,
+                       NULL);
 
        elm_genlist_item_select_mode_set(last_item,
                        ELM_OBJECT_SELECT_MODE_ALWAYS);