[ug-wifi-direct]Sync with Tizen 2.4
[apps/native/ug-wifi-direct.git] / ug-wifidirect / src / wfd_ug_genlist.c
index 44cceaf..0a6a44f 100755 (executable)
@@ -1,13 +1,13 @@
 /*
 *  WiFi-Direct UG
 *
-* Copyright 2012 Samsung Electronics Co., Ltd
+* Copyright 2012  Samsung Electronics Co., Ltd
 
-* Licensed under the Flora License, Version 1.1 (the "License");
+* Licensed under the Flora License, Version 1.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 
-* http://floralicense.org/license
+* http://www.tizenopensource.org/license
 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
@@ -18,8 +18,6 @@
 */
 
 #include <libintl.h>
-
-#include <assert.h>
 #include <glib.h>
 
 #include <Elementary.h>
 #include "wfd_ug_view.h"
 #include "wfd_client.h"
 
-Elm_Gen_Item_Class head_itc;
-Elm_Gen_Item_Class name_itc;
+Elm_Gen_Item_Class device_name_title_itc;
+#ifdef WFD_ON_OFF_GENLIST
+Elm_Gen_Item_Class wfd_onoff_itc;
+#endif
+Elm_Gen_Item_Class device_name_itc;
 Elm_Gen_Item_Class title_itc;
+Elm_Gen_Item_Class multi_view_title_itc;
 Elm_Gen_Item_Class peer_itc;
+Elm_Gen_Item_Class title_no_device_itc;
 Elm_Gen_Item_Class noitem_itc;
-Elm_Gen_Item_Class button_itc;
+Elm_Gen_Item_Class title_available_itc;
 
 Elm_Gen_Item_Class title_conn_itc;
 Elm_Gen_Item_Class peer_conn_itc;
@@ -46,185 +49,198 @@ Elm_Gen_Item_Class peer_busy_itc;
 
 Elm_Gen_Item_Class title_multi_connect_itc;
 Elm_Gen_Item_Class peer_multi_connect_itc;
+Elm_Gen_Item_Class select_all_multi_connect_itc;
 
 Elm_Gen_Item_Class title_conn_failed_itc;
 Elm_Gen_Item_Class peer_conn_failed_itc;
 
-/**
- *     This function let the ug get the label of header
- *     @return   the label of header
- *     @param[in] data the pointer to the main data structure
- *     @param[in] obj the pointer to the evas object
- *     @param[in] part the pointer to the part of item
- */
-static char *_gl_header_label_get(void *data, Evas_Object *obj, const char *part)
+#ifdef WFD_ON_OFF_GENLIST
+static char *_gl_wfd_onoff_text_get(void *data, Evas_Object *obj,
+               const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
-       struct ug_data *ugd = (struct ug_data *) data;
-       WDUG_LOGI("%s", part);
+       __FUNC_ENTER__;
 
-       if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
-               return NULL;
-       }
-
-       if (!strcmp(part, "elm.text.1")) {
-               WDUG_LOGI("Current text mode [%d]\n", ugd->head_text_mode);
-               switch (ugd->head_text_mode) {
-               case HEAD_TEXT_TYPE_DIRECT:
-               case HEAD_TEXT_TYPE_ACTIVATED:
-               case HEAD_TEXT_TYPE_SCANING:
-                       return strdup(dgettext("sys_string", "IDS_COM_OPT1_WI_FI_DIRECT"));
-                       break;
-               case HEAD_TEXT_TYPE_DEACTIVATING:
-                       return strdup(_("IDS_WFD_BODY_DEACTIVATING"));
-                       break;
-               case HEAD_TEXT_TYPE_ACTIVATING:
-                       return strdup(_("IDS_WFD_BODY_ACTIVATING"));
-                       break;
-               default:
-                       break;
+       struct ug_data *ugd = (struct ug_data *) data;
+       DBG(LOG_INFO, "%s", part);
+       WFD_RETV_IF(ugd == NULL, NULL, "Incorrect parameter(NULL)\n");
+       wfd_get_vconf_device_name(ugd);
+       char *dev_name;
+
+       if (!g_strcmp0(part,"elm.text.main.left.bottom")) {
+               DBG(LOG_INFO, "%s", ugd->dev_name);
+               if (ugd->dev_name) {
+                       dev_name = elm_entry_utf8_to_markup(ugd->dev_name);
+                       if (NULL == dev_name) {
+                               DBG(LOG_ERROR, "elm_entry_utf8_to_markup failed.\n");
+                               __FUNC_EXIT__;
+                               return NULL;
+                       }
+                       __FUNC_EXIT__;
+                       return dev_name;
                }
-       } else if (!strcmp(part, "elm.text.1")) {
-               return strdup(dgettext("sys_string", "IDS_COM_OPT1_WI_FI_DIRECT"));
-       } else if (!strcmp(part, "elm.text.2")) {
-               return strdup(ugd->dev_name);
+       } else if (!g_strcmp0(part, "elm.text.sub.left.top")) {
+               return g_strdup(_("IDS_ST_HEADER_MY_DEVICE_NAME"));
        }
-
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return NULL;
 }
 
-/**
- *  This function let the ug call it when click header
- *  @return   void
- *  @param[in] data the pointer to the main data structure
- *  @param[in] obj the pointer to the evas object
- *  @param[in] event_info the pointer to the event information
- */
-static void _gl_header_sel(void *data, Evas_Object *obj, void *event_info)
+static Evas_Object *_gl_wfd_onoff_content_get(void *data,Evas_Object *obj,
+               const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
-       struct ug_data *ugd = (struct ug_data *) data;
+       __FUNC_ENTER__;
 
-       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-       if (item != NULL)
-               elm_genlist_item_selected_set(item, EINA_FALSE);
+       struct ug_data *ugd = (struct ug_data *) data;
+       WFD_RETV_IF(ugd == NULL, NULL, "Incorrect parameter(NULL)\n");
+       Evas_Object *btn = NULL;
+       Evas_Object *icon = NULL;
+       icon = elm_layout_add(obj);
 
-       if (ugd == NULL)
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
-       else {
-               if(!ugd->wfd_onoff) {
-                       WDUG_LOGD("Wi-Fi direct switch on\n");
-                       wfd_client_switch_on(ugd);
-               } else {
-                       WDUG_LOGD("Wi-Fi direct switch off\n");
-                       wfd_client_switch_off(ugd);
-               }
+       if (g_strcmp0(part, "elm.icon.2")) {
+               return NULL;
        }
-       __WDUG_LOG_FUNC_EXIT__;
+       elm_layout_theme_set(icon, "layout", "list/C/type.3", "default");
+       btn = elm_check_add(icon);
+       /* Wi-Fi on indication button */
+       btn= elm_check_add(icon);
+       elm_object_style_set(btn, "on&off");
+       evas_object_propagate_events_set(btn, EINA_FALSE);
+       elm_check_state_set(btn, ugd->wfd_onoff);
+       evas_object_propagate_events_set(btn, EINA_FALSE);
+       evas_object_smart_callback_add(btn, "changed",_onoff_changed_cb, ugd);
+       ugd->on_off_check = btn;
+       evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND,
+                       EVAS_HINT_EXPAND);
+       elm_layout_content_set(icon, "elm.swallow.content", btn);
+       __FUNC_EXIT__;
+       return icon;
 }
+#endif
 
 /**
- *     This function let the ug get the icon of header
- *     @return   the icon of header
+ *     This function let the ug get the label of header
+ *     @return   the label of header
  *     @param[in] data the pointer to the main data structure
  *     @param[in] obj the pointer to the evas object
  *     @param[in] part the pointer to the part of item
  */
-static Evas_Object *_gl_header_icon_get(void *data, Evas_Object *obj, const char *part)
+static char *_gl_device_name_label_get(void *data, Evas_Object *obj,
+               const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
-       struct ug_data *ugd = (struct ug_data *) data;
-       Evas_Object *onoff = NULL;
+       __FUNC_ENTER__;
 
-       if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
-               return NULL;
-       }
-
-       if (ugd->head_text_mode == HEAD_TEXT_TYPE_ACTIVATING ||
-               ugd->head_text_mode == HEAD_TEXT_TYPE_DEACTIVATING) {
-               return NULL;
-       }
-
-       if (!strcmp(part, "elm.icon")) {
-               onoff = elm_check_add(obj);
-               elm_object_style_set(onoff, "on&off");
-               elm_check_state_set(onoff, ugd->wfd_onoff);
-               evas_object_smart_callback_add(onoff, "changed", _gl_header_sel , ugd);
-               evas_object_show(onoff);
+       struct ug_data *ugd = (struct ug_data *) data;
+       DBG(LOG_INFO, "%s", part);
+       WFD_RETV_IF(ugd == NULL, NULL, "Incorrect parameter(NULL)\n");
+       wfd_get_vconf_device_name(ugd);
+       char *dev_name;
+
+       if (!g_strcmp0(part,"elm.text.main.left.bottom")) {
+               DBG(LOG_INFO, "%s", ugd->dev_name);
+               if (ugd->dev_name) {
+                       dev_name = elm_entry_utf8_to_markup(ugd->dev_name);
+                       if (NULL == dev_name) {
+                               DBG(LOG_ERROR, "elm_entry_utf8_to_markup failed.\n");
+                               __FUNC_EXIT__;
+                               return NULL;
+                       }
+                       __FUNC_EXIT__;
+                       return dev_name;
+               }
+       } else if (!g_strcmp0(part, "elm.text.sub.left.top")) {
+               return g_strdup(_("IDS_ST_HEADER_MY_DEVICE_NAME"));
        }
-
-       __WDUG_LOG_FUNC_EXIT__;
-       return onoff;
+       __FUNC_EXIT__;
+       return NULL;
 }
 
 /**
- *     This function let the ug get the label of about item
- *     @return   the label of about item
+ *     This function let the ug get the label of title
+ *     @return   the label of titile
  *     @param[in] data the pointer to the main data structure
  *     @param[in] obj the pointer to the evas object
  *     @param[in] part the pointer to the part of item
  */
-static char *_gl_name_label_get(void *data, Evas_Object *obj, const char *part)
+static char *_gl_title_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
-       struct ug_data *ugd = (struct ug_data *) data;
+       __FUNC_ENTER__;
 
-       if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
-               return NULL;
+       WFD_RETV_IF(data == NULL, NULL, "Incorrect parameter(NULL)\n");
+       DBG(LOG_INFO, "%s", part);
+       if (!g_strcmp0(part, "elm.text.main")) {
+               return g_strdup(_("IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB"));
        }
+       __FUNC_EXIT__;
+       return NULL;
+}
 
-       WDUG_LOGI("%s", part);
 
-       if (!strcmp(part, "elm.text")) {
-               return strdup(IDS_WFD_TITLE_ABOUT_WIFI_DIRECT);
-       } else if (!strcmp(part, "elm.text.2")) {
-               return strdup(ugd->dev_name);
+static char *_gl_title_no_device_label_get(void *data, Evas_Object *obj,
+               const char *part)
+{
+       __FUNC_ENTER__;
+
+       WFD_RETV_IF(data == NULL, NULL, "Incorrect parameter(NULL)\n");
+       DBG(LOG_INFO, "%s", part);
+       if (!g_strcmp0(part, "elm.text.main")) {
+               return g_strdup(_("IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB"));
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return NULL;
 }
 
-/**
- *     This function let the ug get the label of titile
- *     @return   the label of titile
- *     @param[in] data the pointer to the main data structure
- *     @param[in] obj the pointer to the evas object
- *     @param[in] part the pointer to the part of item
- */
-static char *_gl_title_label_get(void *data, Evas_Object *obj, const char *part)
+static char *_gl_multi_title_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+
+       WFD_RETV_IF(data == NULL, NULL, "Incorrect parameter(NULL)\n");
+       if (!g_strcmp0(part, "elm.text.main")) {
+               return g_strdup(_("IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB"));
+       }
+
+       __FUNC_EXIT__;
+       return NULL;
+}
+
+static Evas_Object *_gl_multi_title_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       __FUNC_ENTER__;
+
+       Evas_Object *progressbar = NULL;
        struct ug_data *ugd = (struct ug_data *) data;
+       WFD_RETV_IF(ugd == NULL, NULL, "Incorrect parameter(NULL)\n");
+
+       if (!g_strcmp0(part, "elm.icon")) {
+               if (TITLE_CONTENT_TYPE_SCANNING == ugd->title_content_mode) {
+                       progressbar = elm_progressbar_add(obj);
+                       elm_object_style_set(progressbar, "process_small");
+                       elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+                       elm_progressbar_pulse(progressbar, EINA_TRUE);
+                       evas_object_show(progressbar);
+                       return progressbar;
+               }
+       }
+
+       __FUNC_EXIT__;
+       return NULL;
+}
+
+static char *_gl_available_title_label_get(void *data, Evas_Object *obj, const char *part)
+{
+       __FUNC_ENTER__;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
-
-       if (!strcmp(part, "elm.text")) {
-               if (ugd->multiconn_view_genlist != NULL) {
-                       // It's called at Multi connect view...
-                       if (ugd->gl_available_dev_cnt_at_multiconn_view > 0) {
-                               return strdup(_("IDS_WFD_BODY_AVAILABLE_DEVICES"));
-                       } else {
-                               return strdup(_("IDS_WFD_BODY_WIFI_DIRECT_DEVICES"));
-                       }
-               } else {
-                       // It's called at Main View
-                       if (ugd->gl_available_peer_cnt > 0) {
-                               return strdup(_("IDS_WFD_BODY_AVAILABLE_DEVICES"));
-                       } else {
-                               return strdup(_("IDS_WFD_BODY_WIFI_DIRECT_DEVICES"));
-                       }
-               }
+       DBG(LOG_INFO, "available- %s", part);
+       if (!g_strcmp0(part, "elm.text.main")) {
+               return g_strdup(_("IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB"));
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return NULL;
 }
 
@@ -237,18 +253,22 @@ static char *_gl_title_label_get(void *data, Evas_Object *obj, const char *part)
  */
 static Evas_Object *_gl_title_content_get(void *data, Evas_Object *obj, const char *part)
 {
+       __FUNC_ENTER__;
+
        Evas_Object *progressbar = NULL;
        struct ug_data *ugd = (struct ug_data *) data;
 
        if (data == NULL) {
-           WDUG_LOGE("Incorrect parameter(NULL)\n");
+           DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
            return NULL;
        }
 
-       if (!strcmp(part, "elm.icon")) {
-               if (HEAD_TEXT_TYPE_SCANING == ugd->head_text_mode) {
+       DBG(LOG_INFO, "Title content- %s", part);
+
+       if (!g_strcmp0(part, "elm.icon")) {
+               if (TITLE_CONTENT_TYPE_SCANNING == ugd->title_content_mode) {
                        progressbar = elm_progressbar_add(obj);
-                       elm_object_style_set(progressbar, "list_process_small");
+                       elm_object_style_set(progressbar, "process_small");
                        elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
                        elm_progressbar_pulse(progressbar, EINA_TRUE);
                        evas_object_show(progressbar);
@@ -257,6 +277,7 @@ static Evas_Object *_gl_title_content_get(void *data, Evas_Object *obj, const ch
                }
        }
 
+       __FUNC_EXIT__;
        return progressbar;
 }
 
@@ -269,53 +290,64 @@ static Evas_Object *_gl_title_content_get(void *data, Evas_Object *obj, const ch
  */
 static char *_gl_peer_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+
        assertm_if(NULL == obj, "NULL!!");
        assertm_if(NULL == part, "NULL!!");
        device_type_s *peer = (device_type_s *) data;
        char buf[WFD_GLOBALIZATION_STR_LENGTH] = { 0, };
-       WDUG_LOGI("%s", part);
+       char *ssid;
+
+       DBG(LOG_INFO, "%s", part);
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
 
-       if (!strcmp(part, "elm.text.1")) {
-               __WDUG_LOG_FUNC_EXIT__;
-               return strdup(peer->ssid);
-       } else if (!strcmp(part, "elm.text.2")) {
+       if (!g_strcmp0(part, "elm.text.main.left.top")) {
+               if (strlen(peer->ssid) != 0) {
+                       ssid = elm_entry_utf8_to_markup(peer->ssid);
+                       if (NULL == ssid) {
+                               DBG(LOG_ERROR, "elm_entry_utf8_to_markup failed.\n");
+                               __FUNC_EXIT__;
+                               return NULL;
+                       }
+                       __FUNC_EXIT__;
+                       return ssid;
+               }
+       } else if (!g_strcmp0(part, "elm.text.sub.left.bottom")) {
                switch (peer->conn_status) {
                case PEER_CONN_STATUS_DISCONNECTED:
-                       g_strlcpy(buf, _("IDS_WFD_TAP_TO_CONNECT"), WFD_GLOBALIZATION_STR_LENGTH);
+                       g_strlcpy(buf, _("IDS_CHATON_BODY_AVAILABLE"), WFD_GLOBALIZATION_STR_LENGTH);
                        break;
                case PEER_CONN_STATUS_CONNECTING:
-                       g_strlcpy(buf, _("IDS_WFD_CONNECTING"), WFD_GLOBALIZATION_STR_LENGTH);
+                       g_strlcpy(buf, _("IDS_WIFI_BODY_CONNECTING_ING"), WFD_GLOBALIZATION_STR_LENGTH);
                        break;
                case PEER_CONN_STATUS_CONNECTED:
                        if (peer->is_group_owner == FALSE) {
-                               g_strlcpy(buf, _("IDS_WFD_CONNECTED"), WFD_GLOBALIZATION_STR_LENGTH);
+                               g_strlcpy(buf, _("IDS_COM_BODY_CONNECTED_M_STATUS"), WFD_GLOBALIZATION_STR_LENGTH);
                        } else {
-                               g_strlcpy(buf, _("IDS_WFD_TAP_TO_CONNECT"), WFD_GLOBALIZATION_STR_LENGTH);
+                               g_strlcpy(buf, _("IDS_CHATON_BODY_AVAILABLE"), WFD_GLOBALIZATION_STR_LENGTH);
                        }
                        break;
                case PEER_CONN_STATUS_FAILED_TO_CONNECT:
-                       g_strlcpy(buf, _("IDS_WFD_FAILED_TO_CONNECT"), WFD_GLOBALIZATION_STR_LENGTH);
+                       g_strlcpy(buf, _("IDS_CHATON_HEADER_CONNECTION_FAILED_ABB2"), WFD_GLOBALIZATION_STR_LENGTH);
                        break;
                case PEER_CONN_STATUS_WAIT_FOR_CONNECT:
-                       g_strlcpy(buf, _("IDS_WFD_WAITING_FOR_CONNECT"), WFD_GLOBALIZATION_STR_LENGTH);
+                       g_strlcpy(buf, _("IDS_WIFI_BODY_WAITING_FOR_CONNECTION_M_STATUS_ABB"), WFD_GLOBALIZATION_STR_LENGTH);
                        break;
                default:
-                       g_strlcpy(buf, _("IDS_WFD_TAP_TO_CONNECT"), WFD_GLOBALIZATION_STR_LENGTH);
+                       g_strlcpy(buf, _("IDS_CHATON_BODY_AVAILABLE"), WFD_GLOBALIZATION_STR_LENGTH);
                        break;
                }
        } else {
-               __WDUG_LOG_FUNC_EXIT__;
+               __FUNC_EXIT__;
                return NULL;
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
-       return strdup(buf);
+       __FUNC_EXIT__;
+       return g_strdup(buf);
 }
 
 /**
@@ -327,197 +359,226 @@ static char *_gl_peer_label_get(void *data, Evas_Object *obj, const char *part)
  */
 static Evas_Object *_gl_peer_icon_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+
        assertm_if(NULL == obj, "NULL!!");
        assertm_if(NULL == part, "NULL!!");
        device_type_s *peer = (device_type_s *) data;
        Evas_Object *icon = NULL;
-       struct ug_data *ugd = wfd_get_ug_data();
+       Evas_Object *layout = NULL;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
-
-       if (!strcmp(part, "elm.icon.2")) {
-               WDUG_LOGI("elm.icon.2 - connection status [%d]\n", peer->conn_status);
+       DBG(LOG_INFO, "part = %s", part);
+       if (!g_strcmp0(part, "elm.icon.2")) {
+               DBG(LOG_INFO, "elm.icon.2 - connection status [%d]\n", peer->conn_status);
                if (peer->conn_status == PEER_CONN_STATUS_CONNECTING) {
-                       icon = elm_progressbar_add(obj);
-                       elm_object_style_set(icon, "list_process");
+                       layout = elm_layout_add(obj);
+                       elm_layout_theme_set(layout, "layout", "list/C/type.2", "default");
+                       icon = elm_progressbar_add(layout);
+                       elm_object_style_set(icon, "process_medium");
                        elm_progressbar_pulse(icon, EINA_TRUE);
                } else if (peer->conn_status == PEER_CONN_STATUS_CONNECTED) {
                        return NULL;
                }
-
-               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-               elm_icon_resizable_set(icon, 1, 1);
                evas_object_show(icon);
-       } else if (!strcmp(part, "elm.icon.1")) {
-               WDUG_LOGI("elm.icon.1 - category [%d]\n", peer->category);
-               char *img_path = NULL;
-               int status = -1;
-
-               status = wfd_get_device_status(ugd, peer);
-
+               elm_layout_content_set(layout, "elm.swallow.content", icon);
+       } else if (!g_strcmp0(part, "elm.icon.1")) {
+               DBG(LOG_INFO, "elm.icon.1 - category [%d]\n", peer->category);
+               char *img_name = NULL;
+               layout = elm_layout_add(obj);
+               elm_layout_theme_set(layout, "layout", "list/B/type.3", "default");
                /*
                * the icon of connected device is
                * different from available and busy device
                */
                switch (peer->category) {
                case WFD_DEVICE_TYPE_COMPUTER:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_COMPUTER_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_COMPUTER;
-                       }
+                       img_name = WFD_ICON_DEVICE_COMPUTER;
                        break;
                case WFD_DEVICE_TYPE_INPUT_DEVICE:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_INPUT_DEVICE_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_INPUT_DEVICE;
-                       }
+                       img_name = WFD_ICON_DEVICE_INPUT_DEVICE;
                        break;
                case WFD_DEVICE_TYPE_PRINTER:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_PRINTER_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_PRINTER;
-                       }
+                       img_name = WFD_ICON_DEVICE_PRINTER;
                        break;
                case WFD_DEVICE_TYPE_CAMERA:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_CAMERA_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_CAMERA;
-                       }
+                       img_name = WFD_ICON_DEVICE_CAMERA;
                        break;
                case WFD_DEVICE_TYPE_STORAGE:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_STORAGE_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_STORAGE;
-                       }
+                       img_name = WFD_ICON_DEVICE_STORAGE;
                        break;
                case WFD_DEVICE_TYPE_NW_INFRA:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_NETWORK_INFRA_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_NETWORK_INFRA;
-                       }
+                       img_name = WFD_ICON_DEVICE_NETWORK_INFRA;
                        break;
                case WFD_DEVICE_TYPE_DISPLAYS:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_DISPLAY_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_DISPLAY;
-                       }
+                       img_name = WFD_ICON_DEVICE_DISPLAY;
                        break;
                case WFD_DEVICE_TYPE_MM_DEVICES:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_MULTIMEDIA_DEVICE_CONNECT;
+                       if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_STB) {
+                               img_name = WFD_ICON_DEVICE_STB;
+                       } else if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_MS_MA_ME) {
+                               img_name = WFD_ICON_DEVICE_DONGLE;
+                       } else if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_PVP) {
+                               img_name = WFD_ICON_DEVICE_BD;
                        } else {
-                               img_path = WFD_ICON_DEVICE_MULTIMEDIA_DEVICE;
+                               img_name = WFD_ICON_DEVICE_MULTIMEDIA;
                        }
                        break;
                case WFD_DEVICE_TYPE_GAME_DEVICES:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_GAMING_DEVICE_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_GAMING_DEVICE;
-                       }
+                       img_name = WFD_ICON_DEVICE_GAMING;
                        break;
                case WFD_DEVICE_TYPE_TELEPHONE:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_TELEPHONE_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_TELEPHONE;
-                       }
+                       img_name = WFD_ICON_DEVICE_TELEPHONE;
                        break;
                case WFD_DEVICE_TYPE_AUDIO:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_AUDIO_DEVICE_CONNECT;
+                       if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_TUNER) {
+                               img_name = WFD_ICON_DEVICE_HOME_THEATER;
                        } else {
-                               img_path = WFD_ICON_DEVICE_AUDIO_DEVICE;
+                               img_name = WFD_ICON_DEVICE_HEADSET;
                        }
                        break;
                default:
-                       if (1 == status) {
-                               img_path = WFD_ICON_DEVICE_COMPUTER_CONNECT;
-                       } else {
-                               img_path = WFD_ICON_DEVICE_COMPUTER;
-                       }
+                       img_name = WFD_ICON_DEVICE_UNKNOWN;
                        break;
                }
 
-               icon = elm_icon_add(obj);
-               elm_icon_file_set(icon, img_path, NULL);
-               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-               elm_icon_resizable_set(icon, 1, 1);
+               icon = elm_image_add(layout);
+               elm_image_file_set(icon, WFD_UG_EDJ_PATH, img_name);
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_color_set(icon, 2, 61, 132, 204);
                evas_object_show(icon);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               elm_layout_content_set(layout, "elm.swallow.content", icon);
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
-       return icon;
+       if (layout)
+               evas_object_show(layout);
+       __FUNC_EXIT__;
+       return layout;
 }
 
 /**
- *     This function let the ug get the text of no device item
- *     @return   the text of no device item
+ *     This function let the ug get the icon of peer item
+ *     @return   the icon of peer item
  *     @param[in] data the pointer to the main data structure
  *     @param[in] obj the pointer to the evas object
  *     @param[in] part the pointer to the part of item
  */
-static char *_gl_noitem_text_get(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *_gl_conn_peer_icon_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+       assertm_if(NULL == obj, "NULL!!");
+       assertm_if(NULL == part, "NULL!!");
+       device_type_s *peer = (device_type_s *) data;
+       Evas_Object *icon = NULL;
+       Evas_Object *layout = NULL;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
+       DBG(LOG_INFO, "part[%s]\n", part);
+       if (!g_strcmp0(part, "elm.icon.1")) {
+               DBG(LOG_INFO, "elm.icon.1 - category [%d]\n", peer->category);
+               char *img_name = NULL;
+               layout = elm_layout_add(obj);
+               elm_layout_theme_set(layout, "layout", "list/B/type.3", "default");
+               /*
+               * the icon of connected device is
+               * different from available and busy device
+               */
+               switch (peer->category) {
+               case WFD_DEVICE_TYPE_COMPUTER:
+                       img_name = WFD_ICON_DEVICE_COMPUTER;
+                       break;
+               case WFD_DEVICE_TYPE_INPUT_DEVICE:
+                       img_name = WFD_ICON_DEVICE_INPUT_DEVICE;
+                       break;
+               case WFD_DEVICE_TYPE_PRINTER:
+                       img_name = WFD_ICON_DEVICE_PRINTER;
+                       break;
+               case WFD_DEVICE_TYPE_CAMERA:
+                       img_name = WFD_ICON_DEVICE_CAMERA;
+                       break;
+               case WFD_DEVICE_TYPE_STORAGE:
+                       img_name = WFD_ICON_DEVICE_STORAGE;
+                       break;
+               case WFD_DEVICE_TYPE_NW_INFRA:
+                       img_name = WFD_ICON_DEVICE_NETWORK_INFRA;
+                       break;
+               case WFD_DEVICE_TYPE_DISPLAYS:
+                       img_name = WFD_ICON_DEVICE_DISPLAY;
+                       break;
+               case WFD_DEVICE_TYPE_MM_DEVICES:
+                       if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_STB) {
+                               img_name = WFD_ICON_DEVICE_STB;
+                       } else if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_MS_MA_ME) {
+                               img_name = WFD_ICON_DEVICE_DONGLE;
+                       } else if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_MULTIMEDIA_PVP) {
+                               img_name = WFD_ICON_DEVICE_BD;
+                       } else {
+                               img_name = WFD_ICON_DEVICE_MULTIMEDIA;
+                       }
+                       break;
+               case WFD_DEVICE_TYPE_GAME_DEVICES:
+                       img_name = WFD_ICON_DEVICE_GAMING;
+                       break;
+               case WFD_DEVICE_TYPE_TELEPHONE:
+                       img_name = WFD_ICON_DEVICE_TELEPHONE;
+                       break;
+               case WFD_DEVICE_TYPE_AUDIO:
+                       if (peer->sub_category == WIFI_DIRECT_SECONDARY_DEVICE_TYPE_AUDIO_TUNER) {
+                               img_name = WFD_ICON_DEVICE_HOME_THEATER;
+                       } else {
+                               img_name = WFD_ICON_DEVICE_HEADSET;
+                       }
+                       break;
+               default:
+                       img_name = WFD_ICON_DEVICE_UNKNOWN;
+                       break;
+               }
 
-       __WDUG_LOG_FUNC_EXIT__;
-       return strdup(_("IDS_WFD_NOCONTENT"));
+               icon = elm_image_add(layout);
+               elm_image_file_set(icon, WFD_UG_EDJ_PATH, img_name);
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_color_set(icon, 2, 61, 132, 204);
+               evas_object_show(icon);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               elm_layout_content_set(layout, "elm.swallow.content", icon);
+       }
+       if (layout)
+               evas_object_show(layout);
+       __FUNC_EXIT__;
+       return layout;
 }
 
 /**
- *     This function let the ug get the multi connect button
- *     @return   the multi connect button
+ *     This function let the ug get the text of no device item
+ *     @return   the text of no device item
  *     @param[in] data the pointer to the main data structure
  *     @param[in] obj the pointer to the evas object
  *     @param[in] part the pointer to the part of item
  */
-static Evas_Object *_gl_button_get(void *data, Evas_Object *obj, const char *part)
+static char *_gl_noitem_text_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
-       struct ug_data *ugd = (struct ug_data *) data;
+       __FUNC_ENTER__;
 
-       WDUG_LOGI("%s", part);
-       ugd->multi_btn = elm_button_add(obj);
-       wfd_refresh_wifi_direct_state(ugd);
-
-       if (ugd->wfd_status == WIFI_DIRECT_STATE_CONNECTING) {
-               elm_object_text_set(ugd->multi_btn, _("IDS_WFD_BUTTON_CANCEL"));
-               WDUG_LOGI("button: Cancel connect\n");
-       } else {
-               if (ugd->gl_connected_peer_cnt > 1) {
-                       elm_object_text_set(ugd->multi_btn, _("IDS_WFD_BUTTON_DISCONNECT_ALL"));
-                       WDUG_LOGI("button: Disconnect All\n");
-               } else if (ugd->gl_connected_peer_cnt == 1) {
-                       elm_object_text_set(ugd->multi_btn, _("IDS_WFD_BUTTON_DISCONNECT"));
-                       WDUG_LOGI("button: Disconnect\n");
-               } else {
-                       elm_object_text_set(ugd->multi_btn, _("IDS_WFD_BUTTON_MULTI"));
-                       WDUG_LOGI("button: Multi connect\n");
-               }
+       if (data == NULL) {
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
+               return NULL;
        }
 
-       evas_object_smart_callback_add(ugd->multi_btn, "clicked", _wifid_create_multibutton_cb, ugd);
-       evas_object_show(ugd->multi_btn);
-
-       __WDUG_LOG_FUNC_EXIT__;
-       return ugd->multi_btn;
+       DBG(LOG_INFO,"part = %s",part);
+       if (!g_strcmp0(part, "elm.text.main.left")) {
+               return g_strdup(_("IDS_BT_BODY_NO_DEVICES_FOUND_ABB"));
+       }
+       __FUNC_EXIT__;
+       return NULL;
 }
 
 /**
@@ -529,21 +590,34 @@ static Evas_Object *_gl_button_get(void *data, Evas_Object *obj, const char *par
  */
 static char *_gl_conn_dev_title_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
-
-       if (!strcmp(part, "elm.text")) {
-               return strdup(_("IDS_WFD_BODY_CONNECTED_DEVICES"));
+       DBG(LOG_INFO,"part = %s",part);
+       if (!g_strcmp0(part, "elm.text.main")) {
+               return g_strdup(_("IDS_ST_HEADER_CONNECTED_DEVICES"));
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return NULL;
 }
 
+char* ConvertRGBAtoHex(int r, int g, int b, int a)
+{
+       int hexcolor = 0;
+       char *string = NULL;
+       string = g_try_malloc0(sizeof(char )* 255);
+       if (string == NULL) {
+               return string;
+       }
+       hexcolor = (r << 24) + (g << 16) + (b << 8) + a;
+       sprintf(string, "%08x", hexcolor );
+       return string;
+}
+
 /**
  *     This function let the ug get the label of connected device
  *     @return   the label of connected device
@@ -553,25 +627,53 @@ static char *_gl_conn_dev_title_label_get(void *data, Evas_Object *obj, const ch
  */
 static char *_gl_peer_conn_dev_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+
        assertm_if(NULL == obj, "NULL!!");
        assertm_if(NULL == part, "NULL!!");
        device_type_s *peer = (device_type_s *) data;
-       char buf[WFD_GLOBALIZATION_STR_LENGTH] = { 0, };
-       WDUG_LOGI("%s", part);
+       DBG(LOG_INFO, "%s", part);
+       char *det = NULL;
+       char *buf = NULL;
+       char *str = NULL;
+       char *ssid;
+       int r = 0, g = 0, b = 0, a = 0;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
 
-       if (!strcmp(part, "elm.text.1")) {
-               return strdup(peer->ssid);
-       } else {
-               g_strlcpy(buf, _("IDS_WFD_CONNECTED"), WFD_GLOBALIZATION_STR_LENGTH);
-               __WDUG_LOG_FUNC_EXIT__;
-               return strdup(buf);
+       if (!g_strcmp0(part, "elm.text.main.left.top")) {
+               if (strlen(peer->ssid) != 0) {
+                       ssid = elm_entry_utf8_to_markup(peer->ssid);
+                       if (NULL == ssid) {
+                               DBG(LOG_ERROR, "elm_entry_utf8_to_markup failed.\n");
+                               __FUNC_EXIT__;
+                               return NULL;
+                       }
+                       __FUNC_EXIT__;
+                       return ssid;
+               }
+       } else if(!g_strcmp0(part, "elm.text.sub.left.bottom")){
+               det = elm_entry_utf8_to_markup(_("IDS_COM_BODY_CONNECTED_M_STATUS"));
+               edje_color_class_get("T024S",&r, &g, &b, &a,
+                       NULL, NULL, NULL, NULL,
+                       NULL, NULL, NULL, NULL);
+               str = ConvertRGBAtoHex(r, g, b, a);
+               buf = g_strdup_printf("<color=#%s>%s</color>",
+                       str, det);
+               if (det != NULL) {
+                       g_free(det);
+               }
+               if (str != NULL) {
+                       g_free(str);
+               }
+               __FUNC_EXIT__;
+               return buf;
        }
+       __FUNC_EXIT__;
+       return NULL;
 }
 
 /**
@@ -584,18 +686,18 @@ static char *_gl_peer_conn_dev_label_get(void *data, Evas_Object *obj, const cha
 static char *_gl_conn_failed_dev_title_label_get(void *data, Evas_Object *obj,
                const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
 
-       if (!strcmp(part, "elm.text")) {
-               return strdup(IDS_WFD_BODY_FAILED_DEVICES);
+       if (!g_strcmp0(part, "elm.text")) {
+               return g_strdup(_("IDS_WIFI_SBODY_NOT_CONNECTED_M_STATUS_ABB"));
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return NULL;
 }
 
@@ -608,25 +710,38 @@ static char *_gl_conn_failed_dev_title_label_get(void *data, Evas_Object *obj,
  */
 static char *_gl_peer_conn_failed_dev_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+
        assertm_if(NULL == obj, "NULL!!");
        assertm_if(NULL == part, "NULL!!");
        device_type_s *peer = (device_type_s *) data;
        char buf[WFD_GLOBALIZATION_STR_LENGTH] = { 0, };
-       WDUG_LOGI("%s", part);
+       char *ssid;
+       DBG(LOG_INFO, "%s", part);
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
 
-       if (!strcmp(part, "elm.text.1")) {
-               return strdup(peer->ssid);
+       if (!g_strcmp0(part, "elm.text.1")) {
+               if (strlen(peer->ssid) != 0) {
+                       ssid = elm_entry_utf8_to_markup(peer->ssid);
+                       if (NULL == ssid) {
+                               DBG(LOG_ERROR, "elm_entry_utf8_to_markup failed.\n");
+                               __FUNC_EXIT__;
+                               return NULL;
+                       }
+                       __FUNC_EXIT__;
+                       return ssid;
+               }
        } else {
-               g_strlcpy(buf, _("IDS_WFD_FAILED_TO_CONNECT"), WFD_GLOBALIZATION_STR_LENGTH);
-               __WDUG_LOG_FUNC_EXIT__;
-               return strdup(buf);
+               g_strlcpy(buf, _("IDS_CHATON_HEADER_CONNECTION_FAILED_ABB2"),
+                       WFD_GLOBALIZATION_STR_LENGTH);
+               __FUNC_EXIT__;
+               return g_strdup(buf);
        }
+       return NULL;
 }
 
 /**
@@ -638,27 +753,89 @@ static char *_gl_peer_conn_failed_dev_label_get(void *data, Evas_Object *obj, co
  */
 static char *_gl_multi_connect_dev_title_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
        struct ug_data *ugd = wfd_get_ug_data();
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
+       DBG(LOG_INFO, "%s", part);
 
-       if (!strcmp(part, "elm.text")) {
+       if (!g_strcmp0(part, "elm.text.main")) {
                if (ugd->multi_connect_mode == WFD_MULTI_CONNECT_MODE_IN_PROGRESS) {
-                       return strdup(_("IDS_WFD_BODY_AVAILABLE_DEVICES"));
+                       return g_strdup(_("IDS_WIFI_HEADER_AVAILABLE_DEVICES_ABB"));
                } else if (ugd->multi_connect_mode == WFD_MULTI_CONNECT_MODE_COMPLETED) {
-                       return strdup(IDS_WFD_BODY_FAILED_DEVICES);
+                       return g_strdup(_("IDS_WIFI_SBODY_NOT_CONNECTED_M_STATUS_ABB"));
                }
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
+       return NULL;
+}
+
+/**
+ *     This function let the ug get the title label of select all in multi connect
+ *     @return   the label of select all string
+ *     @param[in] data the pointer to the main data structure
+ *     @param[in] obj the pointer to the evas object
+ *     @param[in] part the pointer to the part of item
+ */
+static char *_gl_multi_connect_select_all_title_label_get(void *data, Evas_Object *obj, const char *part)
+{
+       __FUNC_ENTER__;
+
+       if (data == NULL) {
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
+               return NULL;
+       }
+       DBG(LOG_INFO, "%s", part);
+
+       if (!g_strcmp0(part, "elm.text.main.left")) {
+               __FUNC_EXIT__;
+               return g_strdup(_("IDS_WIFI_BODY_SELECT_ALL"));
+       }
+       __FUNC_EXIT__;
        return NULL;
 }
 
 /**
+ *     This function let the ug get the icon of select all genlist
+ *     @return   the icon of select all genlist
+ *     @param[in] data the pointer to the main data structure
+ *     @param[in] obj the pointer to the evas object
+ *     @param[in] part the pointer to the part of item
+ */
+static Evas_Object *_wfd_gl_select_all_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       __FUNC_ENTER__;
+
+       struct ug_data *ugd = (struct ug_data *) data;
+       Evas_Object *check = NULL;
+       Evas_Object *icon_layout = NULL;
+
+       DBG(LOG_INFO, "Part %s", part);
+
+       if (!g_strcmp0(part, "elm.icon.2")) {
+               icon_layout = elm_layout_add(obj);
+               elm_layout_theme_set(icon_layout, "layout", "list/C/type.2", "default");
+               DBG(LOG_INFO, "Part %s", part);
+               check = elm_check_add(icon_layout);
+               ugd->select_all_icon = check;
+               if (ugd->is_select_all_checked == EINA_TRUE) {
+                       elm_check_state_set(ugd->select_all_icon, TRUE);
+               }
+               elm_object_style_set(check, "default/genlist");
+               evas_object_propagate_events_set(check, EINA_FALSE);
+               evas_object_smart_callback_add(check, "changed",
+                       wfd_genlist_select_all_check_changed_cb, (void *)data);
+               elm_layout_content_set(icon_layout, "elm.swallow.content", check);
+       }
+       __FUNC_EXIT__;
+       return icon_layout;
+}
+
+/**
  *     This function let the ug get the title label of busy device list
  *     @return   the label of connected device
  *     @param[in] data the pointer to the main data structure
@@ -668,18 +845,19 @@ static char *_gl_multi_connect_dev_title_label_get(void *data, Evas_Object *obj,
 static char *_gl_busy_dev_title_label_get(void *data, Evas_Object *obj,
                const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
+       DBG(LOG_INFO, "%s", part);
 
-       if (!strcmp(part, "elm.text")) {
-               return strdup(_("IDS_WFD_BODY_BUSY_DEVICES"));
+       if (!g_strcmp0(part,"elm.text.main")) {
+               return g_strdup(_("IDS_ST_HEADER_BUSY_DEVICES"));
        }
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return NULL;
 }
 
@@ -692,27 +870,40 @@ static char *_gl_busy_dev_title_label_get(void *data, Evas_Object *obj,
  */
 static char *_gl_peer_busy_dev_label_get(void *data, Evas_Object *obj, const char *part)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
        assertm_if(NULL == obj, "NULL!!");
        assertm_if(NULL == part, "NULL!!");
        device_type_s *peer = (device_type_s *) data;
        char buf[WFD_GLOBALIZATION_STR_LENGTH] = { 0, };
-       WDUG_LOGI("%s", part);
+       char *ssid;
+       DBG(LOG_INFO, "%s", part);
 
        if (data == NULL) {
-               WDUG_LOGE("Incorrect parameter(NULL)\n");
+               DBG(LOG_ERROR, "Incorrect parameter(NULL)\n");
                return NULL;
        }
 
-       WDUG_LOGI("peer->ssid = %s", peer->ssid);
+       DBG(LOG_INFO, "peer->ssid = %s", peer->ssid);
 
-       if (!strcmp(part, "elm.text.1")) {
-               return strdup(peer->ssid);
-       } else {
-               g_strlcpy(buf, _("IDS_WFD_CONNECTED_WITH_OTHER_DEVICE"), WFD_GLOBALIZATION_STR_LENGTH);
-               __WDUG_LOG_FUNC_EXIT__;
-               return strdup(buf);
+       if (!g_strcmp0(part, "elm.text.main.left.top")) {
+               if (strlen(peer->ssid) != 0) {
+                       ssid = elm_entry_utf8_to_markup(peer->ssid);
+                       if (NULL == ssid) {
+                               DBG(LOG_ERROR, "elm_entry_utf8_to_markup failed.\n");
+                               __FUNC_EXIT__;
+                               return NULL;
+                       }
+                       __FUNC_EXIT__;
+                       return ssid;
+               }
+       } else if (!g_strcmp0(part, "elm.text.sub.left.bottom")) {
+               g_strlcpy(buf, _("IDS_ST_BODY_CONNECTED_WITH_ANOTHER_DEVICE_ABB"),
+                       WFD_GLOBALIZATION_STR_LENGTH);
+               __FUNC_EXIT__;
+               return g_strdup(buf);
        }
+       return NULL;
+
 }
 
 /**
@@ -723,11 +914,12 @@ static char *_gl_peer_busy_dev_label_get(void *data, Evas_Object *obj, const cha
  */
 static void _gl_peer_del(void *data, Evas_Object *obj)
 {
-       __WDUG_LOG_FUNC_ENTER__;
+       __FUNC_ENTER__;
+
        assertm_if(NULL == obj, "NULL!!");
        assertm_if(NULL == data, "NULL!!");
 
-       __WDUG_LOG_FUNC_EXIT__;
+       __FUNC_EXIT__;
        return;
 }
 
@@ -737,51 +929,67 @@ static void _gl_peer_del(void *data, Evas_Object *obj)
  */
 void initialize_gen_item_class()
 {
-       __WDUG_LOG_FUNC_ENTER__;
-       head_itc.item_style = "dialogue/2text.1icon.10";
-       head_itc.func.text_get = _gl_header_label_get;
-       head_itc.func.content_get = _gl_header_icon_get;
-       head_itc.func.state_get = NULL;
-
-       name_itc.item_style = "dialogue/1text";
-       name_itc.func.text_get = _gl_name_label_get;
-       name_itc.func.content_get = NULL;
-       name_itc.func.state_get = NULL;
-       name_itc.func.del = NULL;
-
-       title_itc.item_style = "dialogue/title";
+       elm_theme_extension_add(NULL, WFD_UG_EDJ_PATH);
+
+       device_name_itc.item_style = "dialogue/2text.2";
+       device_name_itc.func.text_get = NULL;
+       device_name_itc.func.content_get = NULL;
+       device_name_itc.func.state_get = NULL;
+
+#ifdef WFD_ON_OFF_GENLIST
+       wfd_onoff_itc.item_style = "2line.bottom";
+       wfd_onoff_itc.func.text_get = _gl_wfd_onoff_text_get;
+       wfd_onoff_itc.func.content_get = _gl_wfd_onoff_content_get;
+       wfd_onoff_itc.func.state_get = NULL;
+       wfd_onoff_itc.func.del = NULL;
+#endif
+
+
+       title_itc.item_style = "groupindex";
        title_itc.func.text_get = _gl_title_label_get;
        title_itc.func.content_get = _gl_title_content_get;
        title_itc.func.state_get = NULL;
        title_itc.func.del = NULL;
 
-       peer_itc.item_style = "dialogue/2text.2icon.3";
+       multi_view_title_itc.item_style = "groupindex";
+       multi_view_title_itc.func.text_get = _gl_multi_title_label_get;
+       multi_view_title_itc.func.content_get = _gl_multi_title_content_get;
+       multi_view_title_itc.func.state_get = NULL;
+       multi_view_title_itc.func.del = NULL;
+
+       title_no_device_itc.item_style = "groupindex";
+       title_no_device_itc.func.text_get = _gl_title_no_device_label_get;
+       title_no_device_itc.func.content_get = NULL;
+       title_no_device_itc.func.state_get = NULL;
+       title_no_device_itc.func.del = NULL;
+
+       title_available_itc.item_style = "groupindex";
+       title_available_itc.func.text_get = _gl_available_title_label_get;
+       title_available_itc.func.content_get = _gl_title_content_get;
+       title_available_itc.func.state_get = NULL;
+       title_available_itc.func.del = NULL;
+
+       peer_itc.item_style = "2line.top";
        peer_itc.func.text_get = _gl_peer_label_get;
        peer_itc.func.content_get = _gl_peer_icon_get;
        peer_itc.func.state_get = NULL;
        peer_itc.func.del = _gl_peer_del;
 
-       noitem_itc.item_style = "dialogue/1text";
+       noitem_itc.item_style = "1line";
        noitem_itc.func.text_get = _gl_noitem_text_get;
        noitem_itc.func.content_get = NULL;
        noitem_itc.func.state_get = NULL;
        noitem_itc.func.del = NULL;
 
-       button_itc.item_style = "1icon";
-       button_itc.func.text_get = NULL;
-       button_itc.func.content_get = _gl_button_get;
-       button_itc.func.state_get = NULL;
-       button_itc.func.del = NULL;
-
-       title_conn_itc.item_style = "dialogue/title";
+       title_conn_itc.item_style = "groupindex";
        title_conn_itc.func.text_get = _gl_conn_dev_title_label_get;
        title_conn_itc.func.content_get = NULL;
        title_conn_itc.func.state_get = NULL;
        title_conn_itc.func.del = NULL;
 
-       peer_conn_itc.item_style = "dialogue/2text.2icon.3";
+       peer_conn_itc.item_style = "2line.top";
        peer_conn_itc.func.text_get = _gl_peer_conn_dev_label_get;
-       peer_conn_itc.func.content_get = _gl_peer_icon_get;
+       peer_conn_itc.func.content_get = _gl_conn_peer_icon_get;
        peer_conn_itc.func.state_get = NULL;
        peer_conn_itc.func.del = _gl_peer_del;
 
@@ -797,24 +1005,28 @@ void initialize_gen_item_class()
        peer_conn_failed_itc.func.state_get = NULL;
        peer_conn_failed_itc.func.del = _gl_peer_del;
 
-       title_busy_itc.item_style = "dialogue/title";
+       title_busy_itc.item_style = "groupindex";
        title_busy_itc.func.text_get = _gl_busy_dev_title_label_get;
        title_busy_itc.func.content_get = NULL;
        title_busy_itc.func.state_get = NULL;
        title_busy_itc.func.del = NULL;
 
-       peer_busy_itc.item_style = "dialogue/2text.2icon.3";
+       peer_busy_itc.item_style = "2line.top";
        peer_busy_itc.func.text_get = _gl_peer_busy_dev_label_get;
        peer_busy_itc.func.content_get = _gl_peer_icon_get;
        peer_busy_itc.func.state_get = NULL;
        peer_busy_itc.func.del = _gl_peer_del;
 
-       title_multi_connect_itc.item_style = "dialogue/title";
+       title_multi_connect_itc.item_style = "groupindex";
        title_multi_connect_itc.func.text_get = _gl_multi_connect_dev_title_label_get;
        title_multi_connect_itc.func.content_get = NULL;
        title_multi_connect_itc.func.state_get = NULL;
        title_multi_connect_itc.func.del = NULL;
 
-       __WDUG_LOG_FUNC_EXIT__;
-
+       select_all_multi_connect_itc.item_style = "1line";
+       select_all_multi_connect_itc.func.text_get =
+               _gl_multi_connect_select_all_title_label_get;
+       select_all_multi_connect_itc.func.content_get = _wfd_gl_select_all_icon_get;
+       select_all_multi_connect_itc.func.state_get = NULL;
+       select_all_multi_connect_itc.func.del = NULL;
 }