[Telegram] Create contact view(ver.1) 07/50807/1
authormoon87.park <moon87.park@samsung.com>
Mon, 2 Nov 2015 10:49:00 +0000 (19:49 +0900)
committermoon87.park <moon87.park@samsung.com>
Mon, 2 Nov 2015 10:49:00 +0000 (19:49 +0900)
Change-Id: I6cd0a2d1d22cab5dc947a5d3ec1dbc63e6ecec58

TelegramTizen/res/edje/telegram_init_screen.edc
TelegramTizen/res/images/core_icon_container.png [new file with mode: 0644]
TelegramTizen/res/images/telegram_circle_btn_ic_call.png [new file with mode: 0755]
TelegramTizen/src/tg_search_peer_view.c

index a740909..6d14dd1 100644 (file)
@@ -16,6 +16,14 @@ styles {
                tag:  "b" "+ font=Tizen:style=Bold";
                tag:  "tab" "\t";
        }
+       style {
+               name: "name,display";
+               base: "font=Tizen=Regular text_class=ATO022 font_size=40 align=left color=#666666 color_class=ATO009 wrap=mixed";
+               tag:  "br" "\n";
+               tag:  "hilight" "+ font=Tizen:style=Bold";
+               tag:  "b" "+ font=Tizen:style=Bold";
+               tag:  "tab" "\t";
+       }
 }
 
 collections {
@@ -119,6 +127,8 @@ base_scale: 2.6;
                image: "camera_btn_gallery_mask.png" COMP;
                image: "telegram_date_divider.#.png" COMP;
                image: "telegram_list_thumb_image_bg.png" COMP;
+               image: "core_icon_container.png" COMP;
+               image: "telegram_circle_btn_ic_call.png" COMP;
        }
 
    group {
@@ -3267,5 +3277,483 @@ group
                                        color: 0 255 0 255;                     
                         }
                }
+       }
      }
+     
+     group {
+         name: "create_contact_screen";
+      parts {
+          part {
+               name: "screen_bg";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+              rel1 { relative: 0.0 0.0; }
+              rel2 { relative: 1.0 1.0; }
+              color: 255 255 255 255;
+            }
+         }
+        part {
+               name: "image,bg";
+            type: RECT;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+              rel1 { relative: 0.0 0.0; to_y: "image"; }
+              rel2 { relative: 1.0 1.0; to_y: "image"; }
+              color: 255 255 255 255;
+              align: 0.5 0.5;
+            }
+         }
+         part {
+               name: "image";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+              rel1 { relative: 0.0 0.0; }
+              rel2 { relative: 1.0 0.0; }
+              min: 0 440;
+              align: 0.5 0.0;
+            }
+         }
+        part {
+                 name: "first_name_entry,bg";
+            type: RECT;
+            description {
+               state: "default" 0.0;
+              rel1 { relative: 0.0 1.0; to_y: "image"; }
+              rel2 { relative: 1.0 1.0; to_y: "image"; offset: 0 120; }
+              color: 255 255 255 255;
+            }
+        }
+       part {
+               name: "second_name_entry,bg";
+            type: RECT;
+            description {
+            state: "default" 0.0;
+              rel1 { relative: 0.0 1.0; to_y: "first_name_entry,bg"; }
+              rel2 { relative: 1.0 1.0; to_y: "first_name_entry,bg"; offset: 0 120; }
+              color: 242 247 249 255;
+            }
+        }
+        part {
+                       name: "name_text";
+                       type: TEXTBLOCK;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 32/720 0.0; to_y: "first_name_entry,bg"; }
+                               rel2 { relative: 212/720 1.0; to_y: "first_name_entry,bg"; }
+                               align: 0.0 0.5;
+                               fixed: 1 1;
+                               min: 180 96;
+                               max: 180 96;
+                               text {
+                                       style: "name,display";
+                                       min: 0 1;
+                                       text: "Name";
+                               }
+                       }
+               }
+       part {
+               name: "first_name_entry";
+            type: SWALLOW;
+            description {
+               state: "default" 0.0;
+              rel1 { relative: 244/720 0.0; to_y: "first_name_entry,bg"; }
+              rel2 { relative: 573/720 1.0; to_y: "first_name_entry,bg"; }
+              align: 0.5 0.5;
+            }
+         }
+       part {
+               name: "second_name_entry";
+            type: SWALLOW;
+            description {
+               state: "default" 0.0;
+              rel1 { relative: 244/720 0.0; to_y: "second_name_entry,bg"; }
+              rel2 { relative: 573/720 1.0; to_y: "second_name_entry,bg"; }
+              align: 0.5 0.5;
+            }
+         }
+         /*
+         part {
+               name: "phone_number_list";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               fixed: 1 1;
+               align: 0.5 0.0;
+              rel1 { relative: 0.0 1.0; to_y: "second_name_entry,bg"; }
+              rel2 { relative: 1.0 1.0; to_y: "second_name_entry,bg"; }
+              min: 0 120;
+            }
+         }
+        part {
+               name: "phone_btn";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               fixed: 1 1;
+               align: 0.0 0.0;
+              rel1 { relative: 0.0 1.0; to_y: "phone_number_list"; }
+              rel2 { relative: 0.0 1.0; to_y: "phone_number_list"; }
+              min: 98 98;
+            }
+         }*/
+        part {
+               name: "name_check";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               align: 0.5 0.5;
+              rel1 { relative: 590/720 0.0; to_y: "first_name_entry"; }
+              rel2 { relative: 710/720 1.0; to_y: "first_name_entry"; }
+              visible: 1;
+            }
+         }
+          part {
+               name: "second_name_check";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               align: 0.5 0.5;
+              rel1 { relative: 590/720 0.0; to_y: "second_name_entry"; }
+              rel2 { relative: 710/720 1.0; to_y: "second_name_entry"; }
+              visible: 1;
+            }
+         }
+         /*
+               part {
+               name: "mobile_button";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               align: 0.5 0.5;
+              rel1 { relative: 32/720 0.0; to_y: "phone_number_entry"; }
+              rel2 { relative: 212/720 1.0; to_y: "phone_number_entry"; }
+              visible: 1;
+            }
+         }
+         part {
+               name: "phone_number_delete";
+            type: SWALLOW;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               align: 0.5 0.5;
+              rel1 { relative: 590/720 0.0; to_y: "phone_number_entry"; }
+              rel2 { relative: 710/720 1.0; to_y: "phone_number_entry"; }
+              visible: 1;
+            }
+         } */
+      } //parts
+   } //create contact_screen
+   
+   #define PART(TYPE, NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: TYPE; \
+       DESCRIPION \
+    }
+   
+    #define DSC_FROM_L( STATE, PARAM ) \
+    description { state: STATE; \
+      fixed: 1 0; \
+      align: 0.0 0.5; \
+      rel2.relative: 0.0 1.0; \
+      PARAM \
+   }
+   
+   #define DSC_L( STATE, LEFT, PARAM ) \
+   description { state: STATE; \
+      align: 0 0.5; \
+      fixed: 1 0; \
+      rel1 { \
+         relative: 1 0; \
+         to_x: LEFT; \
+      } \
+      rel2 { \
+         relative: 1 1; \
+         to_x: LEFT; \
+      } \
+      PARAM \
+   }
+   
+   #define DSC_TO( STATE, PART, PARAM ) \
+   description { state: STATE; \
+      rel1 { \
+         relative: 0 0; \
+         to: PART; \
+      } \
+      rel2 { \
+         relative: 1 1; \
+         to: PART; \
+      } \
+      PARAM \
+   }
+   #define DSC_R( STATE, RIGHT, PARAM ) \
+   description { state: STATE; \
+      align: 1 0.5; \
+      fixed: 1 0; \
+      rel1 { \
+         relative: 0 0; \
+         to_x: RIGHT; \
+      } \
+      rel2 { \
+         relative: 0 1; \
+         to_x: RIGHT; \
+      } \
+      PARAM \
+   }
+   
+    #define DSC_FROM_R( STATE, PARAM ) \
+    description { state: STATE; \
+      fixed: 1 0; \
+      align: 1.0 0.5; \
+      rel1.relative: 1 0; \
+      PARAM \
+   }
+   #define DSC_LR( STATE, LEFT, RIGHT, PARAM ) \
+   description { state: STATE; \
+      rel1 { \
+         relative: 1 0; \
+         to_x: LEFT; \
+      } \
+      rel2 { \
+         relative: 0 1; \
+         to_x: RIGHT; \
+      } \
+      PARAM \
+   }
+   
+   group {
+        name: "elm/genlist/item/input.1image/default";
+
+        data.item: "contents" "contents";
+        data.item: "banded_bg_area" "elm.swallow.bg";
+
+        parts {
+                       PART(SWALLOW, "elm.swallow.bg",
+                description { state: "default" 0.0;
+                  }
+                )
+              PART(SWALLOW, "contents",
+                description { state: "default" 0.0;
+                min: 720 440;
+                        }
+            )
+        }
+    }
+   
+    group {
+        name: "elm/genlist/item/input.3icon/default";
+
+        data.item: "contents" "elm.icon.1 elm.icon.entry elm.icon.2";
+        data.item: "banded_bg_area" "elm.swallow.bg";
+
+        parts {
+            PART(SWALLOW, "elm.swallow.bg",
+                description { state: "default" 0.0;
+                }
+            )
+            PART(SPACER, "elm.padding.left",
+                DSC_FROM_L("default" 0.0,
+                    min: 32 0;
+                    max: 32 -1;
+                )
+            )
+            PART(RECT, "elm.icon.1.rect",
+                    DSC_L("default" 0.0, "elm.padding.left",
+                    min: 180 120;
+                    max: 180 120;
+                    color: 255 255 255 0;
+                )
+            )
+            PART(SPACER, "elm.icon.1.pad",
+                    DSC_L("default" 0.0, "elm.icon.1.rect",
+                    min: 32 120;
+                    max: 32 120;
+                )
+            )
+            PART(SWALLOW, "elm.icon.1",
+                    DSC_TO("default" 0.0, "elm.icon.1.rect",
+                        visible: 1;
+                    )
+            )
+            PART(SPACER, "elm.icon.2.padding.right",
+                DSC_FROM_R("default" 0.0,
+                    min: 10 0;
+                    max: 10 -1;
+                )
+            )
+            PART(SWALLOW, "elm.icon.2",
+                DSC_R("default" 0.0,
+                    "elm.icon.2.padding.right",
+                    align: 1.0 0.5;
+                    min: 80 80;
+                    max: 80 80;
+                    fixed: 1 1;
+                )
+            )
+            PART(SWALLOW, "elm.icon.entry",
+                DSC_LR("default" 0.0,
+                    "elm.icon.1.pad", "elm.icon.2",
+                    min: 0 120;
+                    fixed: 1 1;
+                )
+            )
+        }
+    } // theme
+    
+    group {
+        name: "elm/genlist/item/input.2icon/default";
+
+        data.item: "contents" "elm.icon.entry elm.icon.2";
+        data.item: "texts" "elm.text";
+        data.item: "banded_bg_area" "elm.swallow.bg";
+
+        parts {
+            PART(SWALLOW, "elm.swallow.bg",
+                description { state: "default" 0.0;
+                }
+            )
+            PART(SPACER, "elm.padding.left",
+                DSC_FROM_L("default" 0.0,
+                    min: 32 0;
+                    max: 32 -1;
+                )
+            )
+            PART(RECT, "elm.icon.1.rect",
+                    DSC_L("default" 0.0, "elm.padding.left",
+                    min: 180 120;
+                    max: 180 120;
+                    color: 255 255 255 0;
+                )
+            )
+            PART(SPACER, "elm.icon.1.pad",
+                    DSC_L("default" 0.0, "elm.icon.1.rect",
+                    min: 32 120;
+                    max: 32 120;
+                )
+            )
+            PART(TEXTBLOCK, "elm.text",
+                    DSC_TO("default" 0.0, "elm.icon.1.rect",
+                        min: 180 100;
+                        max: 180 100;
+                        visible: 1;
+                        fixed: 1 1;
+                        text {
+                                                               style: "name,display";
+                                                               min: 0 1;
+                                                               text: "Name";
+                                                       }
+                    )
+            )
+            PART(SPACER, "elm.icon.2.padding.right",
+                DSC_FROM_R("default" 0.0,
+                    min: 10 0;
+                    max: 10 -1;
+                )
+            )
+            PART(SWALLOW, "elm.icon.2",
+                DSC_R("default" 0.0,
+                    "elm.icon.2.padding.right",
+                    align: 1.0 0.5;
+                    min: 80 80;
+                    max: 80 80;
+                    fixed: 1 1;
+                )
+            )
+            PART(SWALLOW, "elm.icon.entry",
+                DSC_LR("default" 0.0,
+                    "elm.icon.1.pad", "elm.icon.2",
+                    min: 0 120;
+                    fixed: 1 1;
+                )
+            )
+        }
+    } // theme
+    
+    group {
+        name: "elm/genlist/item/input.1icon/default";
+
+        data.item: "contents" "elm.icon.1 elm.icon.entry elm.icon.2";
+        data.item: "banded_bg_area" "elm.swallow.bg";
+
+        parts {
+            PART(SWALLOW, "elm.swallow.bg",
+                description { state: "default" 0.0;
+                }
+            )
+            PART(SPACER, "elm.padding.left",
+                DSC_FROM_L("default" 0.0,
+                    min: 32 0;
+                    max: 32 -1;
+                )
+            )
+            PART(RECT, "elm.icon.1.rect",
+                    DSC_L("default" 0.0, "elm.padding.left",
+                    min: 98 98;
+                    max: 98 98;
+                    color: 255 255 255 0;
+                )
+            )
+          part {
+               name: "icon,bg";
+               type: IMAGE;
+            description { 
+               state: "default" 0.0;
+               rel1 { relative: 0.5 0.5; to: "elm.icon.1"; }
+               rel2 { relative: 0.5 0.5; to: "elm.icon.1"; }
+               align: 0.5 0.5;
+               min: 98 98;
+               image.normal: "core_icon_container.png";
+               }
+               description {
+                       state: "pressed" 0.0;
+                       inherit: "default" 0.0;
+                       color: 82 172 217 255;
+               }
+            }
+           part {
+               name: "icon,image";
+               type: IMAGE;
+            description { 
+               state: default 0.0;
+               rel1 { relative: 0.5 0.5; to: "elm.icon.1"; }
+               rel2 { relative: 0.5 0.5; to: "elm.icon.1"; }
+               align: 0.5 0.5;
+               min: 60 60;
+               image.normal: "telegram_circle_btn_ic_call.png";
+               }
+            }
+            PART(SWALLOW, "elm.icon.1",
+                    DSC_TO("default" 0.0, "elm.icon.1.rect",
+                        visible: 1;
+                    )
+            )
+        }
+        programs {
+               program {
+                       name: "pressed";
+                       signal: "mouse,down,1";
+                       source: "icon,image";
+                       action: STATE_SET "pressed" 0.0;
+                       target: "icon,bg";
+               }
+               program {
+                       name: "release";
+                       signal: "mouse,up,1";
+                       source: "icon,image";
+                       action: STATE_SET "default" 0.0;
+                       target: "icon,bg";
+               }
+        }
+    } // theme
+   
 }
diff --git a/TelegramTizen/res/images/core_icon_container.png b/TelegramTizen/res/images/core_icon_container.png
new file mode 100644 (file)
index 0000000..65c4ae2
Binary files /dev/null and b/TelegramTizen/res/images/core_icon_container.png differ
diff --git a/TelegramTizen/res/images/telegram_circle_btn_ic_call.png b/TelegramTizen/res/images/telegram_circle_btn_ic_call.png
new file mode 100755 (executable)
index 0000000..ca9ef39
Binary files /dev/null and b/TelegramTizen/res/images/telegram_circle_btn_ic_call.png differ
index f6eea63..a205e05 100755 (executable)
@@ -293,15 +293,342 @@ void on_new_contact_creation_reply_cb(app_control_h request, app_control_h reply
        }
 }
 
+static void delete_btn_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *entry = data;
+       elm_object_text_set(entry, "");
+}
+
+static void list_delete_btn_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *genlist = data;
+       Evas_Object *btn = NULL;
+       Elm_Object_Item *item = NULL;
+
+       int count = 0;
+       int idx = 3;
+       count = elm_genlist_items_count(genlist);
+
+       while(idx <= count) {
+               item = elm_genlist_nth_item_get(genlist, idx);
+               btn = elm_object_item_part_content_get(item, "elm.icon.2");
+               if (btn == obj) break;
+               idx ++;
+       }
+
+       elm_object_item_del(item);
+}
+/*
+static void change_line_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       char buf[256] = {'\0',};
+       snprintf(buf, sizeof(buf), "%s", elm_object_text_get(obj));
+
+       layout = evas_object_data_get(ad->nf, "regi,layout");
+       if (strcasecmp(buf, "") != 0) {
+               elm_object_signal_emit(layout, "show", "line");
+       } else {
+               elm_object_signal_emit(layout, "hide", "line");
+       }
+}
+*/
+static Evas_Object *_get_content_cb(void *data, Evas_Object *obj, const char *part)
+{
+       if (0 == strcmp(part, "elm.icon.entry")) {
+               Evas_Object* phone_entry = elm_entry_add(obj);
+               evas_object_size_hint_weight_set(phone_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(phone_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_entry_input_panel_layout_set(phone_entry, ELM_INPUT_PANEL_LAYOUT_PHONENUMBER);
+
+               elm_object_part_text_set(phone_entry, "elm.guide", i18n_get_text("IDS_TGRAM_BODY_PHONE_NUMBER_ABB"));
+
+               elm_entry_single_line_set(phone_entry, EINA_TRUE);
+               elm_entry_scrollable_set (phone_entry, EINA_FALSE);
+               elm_entry_cnp_mode_set(phone_entry, ELM_CNP_MODE_NO_IMAGE);
+               elm_entry_context_menu_disabled_set(phone_entry, EINA_TRUE);
+               elm_entry_text_style_user_push(phone_entry, "DEFAULT='color=#000000'");
+               //evas_object_smart_callback_add(phone_entry, "changed", change_line_cb, NULL)
+               evas_object_show(phone_entry);
+
+               return phone_entry;
+       } else if (0 == strcmp(part, "elm.icon.2")) {
+
+               Evas_Object* phone_delete_btn = elm_button_add(obj);
+               elm_object_style_set(phone_delete_btn, "icon_expand_delete");
+               evas_object_smart_callback_add(phone_delete_btn, "clicked", list_delete_btn_clicked, obj);
+               evas_object_show(phone_delete_btn);
+               return phone_delete_btn;
+       } else if (0 == strcmp(part, "elm.icon.1")) {
+               Evas_Object* mobile_btn = elm_button_add(obj);
+               elm_object_style_set(mobile_btn, "dropdown");
+               evas_object_size_hint_weight_set(mobile_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(mobile_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_min_set(mobile_btn, 180, 100);
+               //evas_object_smart_callback_add(mobile_btn, "clicked", delete_btn_clicked, phone_entry);
+               elm_object_translatable_text_set(mobile_btn, "IDS_TGRAM_OPT_MOBILE");
+               evas_object_show(mobile_btn);
+
+               return mobile_btn;
+
+       }
+       return NULL;
+}
+
+static Evas_Object *_get_first_name_content_cb(void *data, Evas_Object *obj, const char *part)
+{
+       if (0 == strcmp(part, "elm.icon.entry")) {
+               Evas_Object* phone_entry = elm_entry_add(obj);
+               evas_object_size_hint_weight_set(phone_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(phone_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               elm_object_part_text_set(phone_entry, "elm.guide", i18n_get_text("IDS_TGRAM_BODY_FIRST_NAME_ABB"));
+
+               elm_entry_single_line_set(phone_entry, EINA_TRUE);
+               elm_entry_scrollable_set (phone_entry, EINA_FALSE);
+               elm_entry_cnp_mode_set(phone_entry, ELM_CNP_MODE_NO_IMAGE);
+               elm_entry_context_menu_disabled_set(phone_entry, EINA_TRUE);
+               elm_entry_text_style_user_push(phone_entry, "DEFAULT='color=#000000'");
+               //evas_object_smart_callback_add(phone_entry, "changed", change_line_cb, NULL);
+               evas_object_show(phone_entry);
+
+               return phone_entry;
+
+       } else if (0 == strcmp(part, "elm.icon.2")) {
+               Evas_Object* phone_delete_btn = elm_button_add(obj);
+               elm_object_style_set(phone_delete_btn, "icon_expand_delete");
+               evas_object_smart_callback_add(phone_delete_btn, "clicked", list_delete_btn_clicked, obj);
+               evas_object_show(phone_delete_btn);
+               return phone_delete_btn;
+       }
+       return NULL;
+}
+
+static Evas_Object *_get_second_name_content_cb(void *data, Evas_Object *obj, const char *part)
+{
+       if (0 == strcmp(part, "elm.icon.entry")) {
+               Evas_Object* phone_entry = elm_entry_add(obj);
+               evas_object_size_hint_weight_set(phone_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(phone_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               elm_object_part_text_set(phone_entry, "elm.guide", i18n_get_text("IDS_TGRAM_BODY_LAST_NAME_ABB"));
+
+               elm_entry_single_line_set(phone_entry, EINA_TRUE);
+               elm_entry_scrollable_set (phone_entry, EINA_FALSE);
+               elm_entry_cnp_mode_set(phone_entry, ELM_CNP_MODE_NO_IMAGE);
+               elm_entry_context_menu_disabled_set(phone_entry, EINA_TRUE);
+               elm_entry_text_style_user_push(phone_entry, "DEFAULT='color=#000000'");
+               evas_object_show(phone_entry);
+
+               return phone_entry;
+
+       } else if (0 == strcmp(part, "elm.icon.2")) {
+               Evas_Object* phone_delete_btn = elm_button_add(obj);
+               elm_object_style_set(phone_delete_btn, "icon_expand_delete");
+               evas_object_smart_callback_add(phone_delete_btn, "clicked", list_delete_btn_clicked, obj);
+               evas_object_show(phone_delete_btn);
+               return phone_delete_btn;
+       }
+       return NULL;
+}
+
+static char *_get_name_text_cb(void *data, Evas_Object *obj, const char *part)
+{
+       char *buf = NULL;
+       if (0 == strcmp(part, "elm.text")) {
+               buf = elm_entry_utf8_to_markup(i18n_get_text("IDS_TGRAM_BODY_NAME_ABB"));
+               return buf;
+       }
+       return NULL;
+}
+
+static Evas_Object *_get_picture_cb(void *data, Evas_Object *obj, const char *part)
+{
+       if (0 == strcmp(part, "contents")) {
+               Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_color_set(rect, 0, 0, 255, 255);
+               evas_object_resize(rect, 720, 440);
+               evas_object_show(rect);
+               return rect;
+       }
+       return NULL;
+}
+
+static void _append_picture_item(Evas_Object *genlist, appdata_s *ad)
+{
+       Elm_Genlist_Item_Class *itc = NULL;
+       Elm_Object_Item *item = NULL;
+
+       itc = elm_genlist_item_class_new();
+       itc->item_style = "input.1image";
+       itc->func.text_get = NULL;
+       itc->func.content_get = _get_picture_cb;
+       itc->func.state_get = NULL;
+       itc->func.del = NULL;
+
+       item = elm_genlist_item_append(genlist, itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       if(itc) elm_genlist_item_class_free(itc);
+}
+
+static void _append_name_item(Evas_Object *genlist, appdata_s *ad)
+{
+       Elm_Genlist_Item_Class *itc = NULL;
+       Elm_Genlist_Item_Class *ttc = NULL;
+       Elm_Object_Item *item = NULL;
+
+       ttc = elm_genlist_item_class_new();
+       ttc->item_style = "input.2icon";
+       ttc->func.text_get = _get_name_text_cb;
+       ttc->func.content_get = _get_first_name_content_cb;
+       ttc->func.state_get = NULL;
+       ttc->func.del = NULL;
+
+       item = elm_genlist_item_append(genlist, ttc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       itc = elm_genlist_item_class_new();
+       itc->item_style = "input.3icon";
+       itc->func.text_get = NULL;
+       itc->func.content_get = _get_second_name_content_cb;
+       itc->func.state_get = NULL;
+       itc->func.del = NULL;
+
+       item = elm_genlist_item_append(genlist, itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       if(itc) elm_genlist_item_class_free(itc);
+       if(ttc) elm_genlist_item_class_free(ttc);
+}
+
+static void _append_phone_item(Evas_Object *genlist, appdata_s *ad)
+{
+       Elm_Genlist_Item_Class *itc = NULL;
+       Elm_Object_Item *item = NULL;
+
+       itc = elm_genlist_item_class_new();
+       itc->item_style = "input.3icon";
+       itc->func.text_get = NULL;
+       itc->func.content_get = _get_content_cb;
+       itc->func.state_get = NULL;
+       itc->func.del = NULL;
+
+       item = elm_genlist_item_append(genlist, itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       if(itc) elm_genlist_item_class_free(itc);
+}
+
+static void _insert_before_phone_item(Evas_Object *genlist, appdata_s *ad)
+{
+       Elm_Genlist_Item_Class *itc = NULL;
+       Elm_Object_Item *item = NULL;
+       Elm_Object_Item *before = NULL;
+
+       itc = elm_genlist_item_class_new();
+       itc->item_style = "input.3icon";
+       itc->func.text_get = NULL;
+       itc->func.content_get = _get_content_cb;
+       itc->func.state_get = NULL;
+       itc->func.del = NULL;
+
+       before = elm_genlist_last_item_get(genlist);
+
+       item = elm_genlist_item_insert_before(genlist, itc, NULL, NULL, before, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       if(itc) elm_genlist_item_class_free(itc);
+}
+
+static void phone_btn_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *genlist = data;
+       appdata_s *ad = evas_object_data_get(genlist, "app_data");
+
+       _insert_before_phone_item(genlist, ad);
+}
+
+static Evas_Object *_get_icon_cb(void *data, Evas_Object *obj, const char *part)
+{
+       if (0 == strcmp(part, "elm.icon.1")) {
+               Evas_Object* mobile_btn = elm_button_add(obj);
+               elm_object_style_set(mobile_btn, "transparent");
+               evas_object_size_hint_weight_set(mobile_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(mobile_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_min_set(mobile_btn, 98, 98);
+               evas_object_smart_callback_add(mobile_btn, "clicked", phone_btn_clicked, obj);
+               elm_object_translatable_text_set(mobile_btn, "IDS_TGRAM_OPT_MOBILE");
+               evas_object_show(mobile_btn);
+
+               return mobile_btn;
+       }
+       return NULL;
+}
+
+static void _append_phone_icon(Evas_Object *genlist, appdata_s *ad)
+{
+       Elm_Genlist_Item_Class *itc = NULL;
+       Elm_Object_Item *item = NULL;
+
+       itc = elm_genlist_item_class_new();
+       itc->item_style = "input.1icon";
+       itc->func.text_get = NULL;
+       itc->func.content_get = _get_icon_cb;
+       itc->func.state_get = NULL;
+       itc->func.del = NULL;
+
+       item = elm_genlist_item_append(genlist, itc, ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+       if(itc) elm_genlist_item_class_free(itc);
+}
+
+static Evas_Object* create_genlist(appdata_s *ad, Evas_Object *layout)
+{
+       Evas_Object *list = elm_genlist_add(layout);
+       elm_genlist_mode_set(list, ELM_LIST_COMPRESS);
+       evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(list);
+       elm_object_focus_set(list, EINA_TRUE);
+       return list;
+}
+
 int on_create_new_contact(appdata_s* ad)
 {
-       app_control_h request;
-       app_control_create(&request);
-       app_control_set_operation(request, "http://tizen.org/appcontrol/operation/add");
-       app_control_set_mime(request, "application/vnd.tizen.contact");
-       int result = app_control_send_launch_request(request, &on_new_contact_creation_reply_cb, ad);
-       app_control_destroy(request);
-       return result;
+       if (!ad)
+               return 0;
+
+       ad->current_app_state = TG_ADD_CONTACT_STATE;
+
+       char edj_path[PATH_MAX] = {0, };
+       app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
+
+       Elm_Theme *theme = elm_theme_new();
+       elm_theme_ref_set(theme, NULL);
+       elm_theme_extension_add(theme, edj_path);
+
+       Evas_Object* phone_list = create_genlist(ad, ad->nf);
+       elm_genlist_select_mode_set(phone_list, ELM_OBJECT_SELECT_MODE_NONE);
+       elm_object_theme_set(phone_list, theme);
+       evas_object_data_set(phone_list, "app_data", ad);
+
+       _append_picture_item(phone_list, ad);
+       _append_name_item(phone_list, ad);
+       _append_phone_item(phone_list, ad);
+       _append_phone_icon(phone_list, ad);
+
+       Elm_Object_Item* navi_item = elm_naviframe_item_push(ad->nf, i18n_get_text("IDS_TGRAM_HEADER_CREATE_CONTACT_ABB"), NULL, NULL, phone_list, NULL);
+
+       Evas_Object *done_btn = elm_button_add(ad->nf);
+       elm_object_style_set(done_btn, "naviframe/title_right");
+       elm_object_text_set(done_btn, i18n_get_text("IDS_TGRAM_ACBUTTON_DONE_ABB"));
+       //evas_object_smart_callback_add(done_btn, "clicked", on_name_entry_done_clicked, ad);
+
+       Evas_Object *cancel_btn = elm_button_add(ad->nf);
+       elm_object_style_set(cancel_btn, "naviframe/title_left");
+       elm_object_text_set(cancel_btn, i18n_get_text("IDS_TGRAM_ACBUTTON_CANCEL_ABB"));
+       //evas_object_smart_callback_add(cancel_btn, "clicked", on_naviframe_cancel_clicked, ad);
+
+       elm_object_item_part_content_set(navi_item, "title_right_btn", done_btn);
+       elm_object_item_part_content_set(navi_item, "title_left_btn", cancel_btn);
+
+       evas_object_data_set(ad->nf, "name_done_btn", (void*)done_btn);
+       elm_object_disabled_set(done_btn, EINA_TRUE);
 }
 
 
@@ -869,20 +1196,6 @@ static Evas_Object* create_fastscroll(appdata_s *ad)
                return index;
        }
 
-
-static Evas_Object* create_genlist(appdata_s *ad, Evas_Object *layout)
-{
-       Evas_Object *list = elm_genlist_add(ad->nf);
-       elm_list_mode_set(list, ELM_LIST_COMPRESS);
-       elm_genlist_mode_set(list, ELM_LIST_COMPRESS);
-       evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       evas_object_show(list);
-       elm_object_focus_set(list, EINA_TRUE);
-       return list;
-}
-
-
 void launch_start_peer_search_view(appdata_s* ad)
 {
        if (!ad)