CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(message C)
+SET (SETTING_THEME setting_theme)
SET (MSG_UI_SETTING msg_ui_setting)
########################
./src/main/msg-ui-setting-common-util.c
./src/main/msg-ui-setting-msg-service-wrapper.c
./src/main/msg-ui-setting-font-size.c
- ./src/general/msg-ui-setting-general-setting.c
- ./src/general/msg-ui-setting-general-block-message.c
+ ./src/spam/msg-ui-setting-spam-setting.c
+ ./src/spam/msg-ui-setting-spam-block-word.c
+ ./src/spam/msg-ui-setting-spam-block-number.c
./src/text/msg-ui-setting-text-message.c
./src/text/msg-ui-setting-text-service-center.c
./src/multimedia/msg-ui-setting-mm-message.c
ADD_DEFINITIONS("-DSLP_PROF")
+ADD_CUSTOM_TARGET(${SETTING_THEME}.edj
+ COMMAND edje_cc -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+ ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edc ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edj
+ DEPENDS ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} ${SETTING_THEME}.edj)
+
+
# Install executable and .edj files.
+INSTALL(FILES ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edj DESTINATION ${EDJDIR})
ADD_LIBRARY(ug-msg-setting-efl SHARED ${SETTING_SRCS})
TARGET_LINK_LIBRARIES(ug-msg-setting-efl ${pkgs_LDFLAGS} -L${CMAKE_SOURCE_COMMON_DIR} -lmsg-common)
#define __DEF_MSG_UI_SETTING_COMMON_UTIL_H__
#include "msg-ui-setting-main.h"
-#include "msg-ui-setting-general-setting.h"
+#include "msg-ui-setting-spam-setting.h"
#include "msg-ui-setting-text-message.h"
#include "msg-ui-setting-mm-message.h"
+
#define SETTING_MAX_FIELD_COUNT 20
#define SETTING_MAX_VALUE_COUNT 10
Evas_Object *msg_ui_setting_common_create_genlist(Evas_Object *parent);
void msg_ui_setting_common_append_genlist_separator(Evas_Object *genlist, void *data);
+void msg_ui_setting_common_append_genlist_separator_without_bot_line(Evas_Object *genlist, void *data);
Evas_Object *msg_ui_setting_common_create_scroller(Evas_Object *parent);
Evas_Object *msg_ui_setting_common_create_conformant(Evas_Object *parent);
int msg_ui_setting_common_vconf_set(const char *pKey, int nSetValue);
void msg_ui_setting_common_show_popup(PMSG_SETTING_DATA settingData, char *str);
+void msg_ui_setting_common_show_btn_popup(void *data, char *str);
void msg_ui_setting_common_show_notify(void *data, char *str);
void msg_ui_setting_common_show_selectioninfo(Evas_Object *parent, char *str, void *data);
void msg_ui_setting_common_destroy_selectioninfo(void *data);
+ui_gadget_h msg_ui_setting_common_call_phoneui_ug(void *data, void *result_cb);
#endif
#include "msg-ui-util.h"
#include <Elementary.h>
#include "msg-ui-common-utility.h"
+#include "msg-ui-image-resource.h"
#include "msg-ui-setting-types.h"
#include "msg-ui-setting-gadget.h"
#include "msg-ui-setting-callback.h"
MSG_UI_SETTING_MAIN_MENU_CB_MESSAGES,
MSG_UI_SETTING_MAIN_MENU_SUB_TITLE,
MSG_UI_SETTING_MAIN_MENU_FONT_SIZE,
+ MSG_UI_SETTING_MAIN_MENU_USE_VOLUME_KEY,
MSG_UI_SETTING_MAIN_MENU_MAX
*/
-#ifndef __DEF_MSG_UI_SETTING_GENERAL_SETTING_H__
-#define __DEF_MSG_UI_SETTING_GENERAL_SETTING_H__
+#ifndef __DEF_MSG_UI_SETTING_SPAM_SETTING_H__
+#define __DEF_MSG_UI_SETTING_SPAM_SETTING_H__
#include <msg.h>
+#include <status.h>
+#include <Eina.h>
#include "msg-ui-setting-main.h"
typedef enum {
- MSG_UI_SETTING_GENERAL_MENU_NUMBERS_TO_REJECT,
- MSG_UI_SETTING_GENERAL_MENU_BLOCK_MESSAGE,
- MSG_UI_SETTING_GENERAL_MENU_MAX
+ MSG_UI_SETTING_SPAM_MENU_NUMBERS_TO_REJECT,
+ MSG_UI_SETTING_SPAM_MENU_BLOCK_WORD,
+ MSG_UI_SETTING_SPAM_MENU_MAX
} MSG_UI_SETTING_GENERAL_MENU_E;
typedef enum {
- MSG_UI_SETTING_BLOCK_DETAIL_MENU_TITLE,
MSG_UI_SETTING_BLOCK_DETAIL_MENU_DATA,
MSG_UI_SETTING_BLOCK_DETAIL_MENU_MAX
} MSG_UI_SETTING_BLOCK_DETAIL_MENU_E;
+typedef enum {
+ MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_DATA,
+ MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_NAME,
+ MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_MAX
+
+} MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_E;
+
/*============================================================================
FUNCTION DEFINE
=============================================================================*/
-void msg_ui_setting_general_create_view(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_spam_create_view(void *data, Evas_Object *obj, void *event_info);
+Eina_List *filter_chk_list_append(Eina_List* list, int filter_id, Eina_Bool block_filter_chk_state, Eina_Bool number_reject_chk_state);
+/*
+ * Spam Setting - Blocked word
+ */
+void msg_ui_setting_spam_block_word_main(void *data, Evas_Object *obj, void *event_info);
/*
- * General Setting - Block Messsage
+ * Spam Setting - Number to reject
*/
-void msg_ui_setting_block_message_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
-void msg_ui_setting_block_message_exit_edit_mode(void *data);
-void msg_ui_setting_destroy_block_message(void *data);
-void msg_ui_setting_show_block_message(void *data);
-void msg_ui_setting_block_filter_update_view(void *data);
-void msg_ui_setting_general_block_message_main(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_spam_block_number_main(void *data, Evas_Object *obj, void *event_info);
#endif
=============================================================================*/
typedef enum {
MSG_UI_SETTING_TEXT_MENU_REQ_DELIVERY_REPORT,
+ MSG_UI_SETTING_TEXT_MENU_INPUT_MODE,
MSG_UI_SETTING_TEXT_MENU_SMSC,
MSG_UI_SETTING_TEXT_MENU_MAX
#define MSG_SETTING_THEME EDJDIR"/setting_theme.edj"
-#define MSG_SETTING_THEME_BLACK EDJDIR"/setting_theme_black.edj"
#define MAX_SETTING_CTRLBAR_BUTTON 4
-#define MAX_FILTER_LIST 100
#define MAX_SMSC_LIST SMSC_LIST_MAX
#define MAX_SMSC_NAME_LEN SMSC_NAME_MAX
#define MAX_SMSC_ADDR_LEN SMSC_ADDR_MAX
*/
typedef unsigned int MSG_UI_GENERAL_TYPE_T;
+/**
+ * The values for this type SHOULD be in MSG_UI_SETTING_BLOCK_TYPE_E.
+ */
+
+typedef unsigned int MSG_UI_SETTING_BLOCK_TYPE_T;
+
+/**
+ * The values for this type SHOULD be in MSG_UI_SETTING_CRITERIA_TYPE_E.
+ */
+
+typedef unsigned int MSG_UI_SETTING_CRITERIA_TYPE_T;
+
/*============================================================================
ENUMS
} MSG_UI_SETTING_BLOCK_VIEW_MODE_E;
+typedef enum {
+ MSG_UI_SETTING_BLOCK_ADDR_SAME,
+ MSG_UI_SETTING_BLOCK_ADDR_INCLUDE,
+
+} MSG_UI_SETTING_CRITERIA_TYPE_E;
+
/*============================================================================
STRUCT DEFINE
=============================================================================*/
typedef struct {
- Evas_Object *general_genlist;
- Elm_Genlist_Item_Class general_itc;
+ Evas_Object *spam_genlist;
+ Elm_Genlist_Item_Class spam_itc;
-} MSG_UI_SETTING_GENERAL_S;
+} MSG_UI_SETTING_SPAM_S;
typedef struct {
Evas_Object *text_genlist;
Elm_Genlist_Item_Class text_2line_itc;
Elm_Genlist_Item_Class text_1line_1icon_itc;
+ Elm_Genlist_Item_Class text_2line_1icon_itc;
+
+ /* input mode */
+ Elm_Object_Item *text_input_mode_item;
+ Elm_Genlist_Item_Class text_input_mode_itc;
+ Evas_Object *text_input_mode_radio_group;
Evas_Object *req_delivery_rep_check;
MSG_UI_SETTING_TYPE_T type;
msg_struct_t setting_opt;
+ msg_struct_t smsc_opt;
+ msg_struct_t mms_recv_opt;
msg_struct_list_s *smsc_list;
} MSG_UI_SETTING_S;
+typedef struct _MSG_UI_SETTING_FILTER_LIST_S {
+ int filter_id;
+ Eina_Bool block_filter_chk_state;
+ Eina_Bool number_reject_chk_state;
+} MSG_UI_SETTING_FILTER_LIST_S;
+
typedef struct _MSG_UI_SETTING_FILTER_S {
Evas_Object *block_layout;
+ Evas_Object *delete_layout;
msg_struct_list_s filterList;
+ MSG_UI_SETTING_BLOCK_TYPE_T block_type;
+ MSG_UI_SETTING_CRITERIA_TYPE_T criteria_type;
+ int word_cnt;
+ int addr_cnt;
Evas_Object *block_filter_nocontents;
Evas_Object *block_filter_box;
+ Evas_Object *delete_filter_box;
Elm_Object_Item *ctrl_btn[MAX_SETTING_CTRLBAR_BUTTON];
Elm_Object_Item *block_left_btn;
Elm_Object_Item *block_right_btn;
Evas_Object *block_ctrl_bar;
+ Evas_Object *delete_ctrl_bar;
/* Filter list */
Evas_Object *block_filter_genlist;
Elm_Genlist_Item_Class block_filter_itc;
+ Evas_Object *delete_genlist;
+
Evas_Object *block_filter_sel_all_layout;
Evas_Object *block_filter_chk_sel_all;
Eina_Bool block_filter_chk_sel_all_state;
- Evas_Object *block_filter_chk[MAX_FILTER_LIST];
- Eina_Bool block_filter_chk_state[MAX_FILTER_LIST];
+ Eina_List *block_filter_chk_state_list;
/* Filter detail view. */
int block_filter_sel_index;
Evas_Object *block_filter_detail_layout;
Evas_Object *block_filter_detail_genlist;
- Elm_Genlist_Item_Class block_filter_detail_title_itc;
Elm_Genlist_Item_Class block_filter_detail_1icon_itc;
Evas_Object *block_filter_detail_done_btn;
Evas_Object *block_filter_detail_entry_ly;
Evas_Object *block_filter_detail_entry;
+ /* Match criteria */
+ int match_criteria;
+ Elm_Object_Item *block_filter_detail_match_criteria_item;
+ Elm_Genlist_Item_Class block_filter_detail_2line_1icon_itc;
+ Elm_Genlist_Item_Class block_filter_detail_match_criteria_itc;
+ Evas_Object *block_filter_detail_match_criteria_radio_group;
+
} MSG_UI_SETTING_FILTER_S;
typedef struct _MSG_SETTING_DATA {
struct ug_cbs cbs;
ui_gadget_h loaded_ug;
+ Elm_Theme *th;
+
Evas_Object *layout_main;
Evas_Object *bg;
Evas_Object *navi_frame;
MSG_UI_SETTING_S msg_setting;
Elm_Genlist_Item_Class grp_sep_itc;
+ Elm_Genlist_Item_Class grp_sep_without_bot_line_itc;
Evas_Object *main_genlist;
Evas_Object *cb_activate_check;
Evas_Object *font_size_radio_group;
int font_size_index;
+ /* use the volume key */
+ Evas_Object *use_vol_key_activate_check;
+ Elm_Genlist_Item_Class use_vol_key_itc;
+
union {
- MSG_UI_SETTING_GENERAL_S general_setting;
+ MSG_UI_SETTING_SPAM_S spam_setting;
MSG_UI_SETTING_TEXT_S text_msg;
MSG_UI_SETTING_MM_S mm_msg;
} list;
+++ /dev/null
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * 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://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,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "msg-ui-setting-main.h"
-#include "msg-ui-setting-general-setting.h"
-
-
-static struct _msg_ui_setting_mixed_list_item general_menu_its[] = {
- { 1, "Blocked word", msg_ui_setting_general_block_message_main, ELM_GENLIST_ITEM_NONE },
- /* do not delete below */
- { 1, NULL, NULL, ELM_GENLIST_ITEM_NONE }
-};
-
-
-/*============================================================================
- STATIC FUNCTION DEFINE
-=============================================================================*/
-static char *__msg_ui_setting_general_gl_text_get(void *data, Evas_Object *obj, const char *part);
-static void __msg_ui_setting_general_gl_sel(void *data, Evas_Object *obj, void *event_info);
-static Evas_Object *__msg_ui_setting_general_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData);
-static void __msg_ui_setting_general_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
-
-
-/*============================================================================
- FUNCTION IMPLEMENT
-=============================================================================*/
-
-static char *
-__msg_ui_setting_general_gl_text_get(void *data, Evas_Object *obj, const char *part)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- int index = (int)data;
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
-
- if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
- if (general_menu_its[index].name) {
- if (strstr(general_menu_its[index].name, "IDS_COM") != NULL)
- return strdup(dgettext("sys_string", general_menu_its[index].name));
- else
- return strdup(dgettext(MESSAGE_PKGNAME, general_menu_its[index].name));
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
- }
-
- return NULL;
-}
-
-static void
-__msg_ui_setting_general_gl_sel(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
- int index = (int)data;
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
- MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
-
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
-
- if (general_menu_its[index].func != NULL)
- general_menu_its[index].func(settingData, obj, event_info);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static Evas_Object *
-__msg_ui_setting_general_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- Evas_Object *general_genlist;
- int index = 0;
-
- general_genlist = msg_ui_setting_common_create_genlist(parent);
- settingData->list.general_setting.general_genlist = general_genlist;
-
- msg_ui_setting_common_append_genlist_separator(general_genlist, settingData);
-
- settingData->list.general_setting.general_itc.item_style = "dialogue/1text";
- settingData->list.general_setting.general_itc.func.text_get = __msg_ui_setting_general_gl_text_get;
- settingData->list.general_setting.general_itc.func.content_get = NULL;
- settingData->list.general_setting.general_itc.func.state_get = NULL;
- settingData->list.general_setting.general_itc.func.del = NULL;
-
- for (index = 0; general_menu_its[index].name; index++) {
- elm_genlist_item_append(general_genlist, &settingData->list.general_setting.general_itc, (void *)index,
- NULL, general_menu_its[index].type, __msg_ui_setting_general_gl_sel, (void *)index);
- }
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-
- return general_genlist;
-}
-
-static void __msg_ui_setting_general_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
-
- elm_naviframe_item_pop(settingData->navi_frame);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-void msg_ui_setting_general_create_view(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
-
- Evas_Object *general_layout;
- Evas_Object *general_genlist;
- Evas_Object *l_button;
- Elm_Object_Item *navi_it;
-
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
- msg_ui_setting_msg_get_config(settingData);
-
- /* Initialize global variable. */
- memset(&settingData->list.general_setting, 0x0, sizeof(settingData->list.general_setting));
-
- if (obj == NULL) {
- /* Change background color from transparent to group_list. */
- elm_object_style_set(settingData->bg, "group_list");
- }
-
- general_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
-
- general_genlist = __msg_ui_setting_general_create_menu(settingData->navi_frame, settingData);
- elm_object_part_content_set(general_layout, "elm.swallow.content", general_genlist);
-
- /* Create Left Button */
- l_button = elm_button_add(settingData->navi_frame);
-
- navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_SPAM_MESSAGES"), l_button, NULL, general_layout, NULL);
-
- /* Style set should be called after elm_naviframe_item_push(). */
- elm_object_style_set(l_button, "naviframe/back_btn/default");
- if (obj == NULL)
- evas_object_smart_callback_add(l_button, "clicked", msg_ui_setting_quit_cb, (void *)settingData);
- else
- evas_object_smart_callback_add(l_button, "clicked", __msg_ui_setting_general_back_btn_cb, (void *)settingData);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-
-}
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- msg_ui_setting_general_create_view(data, obj, event_info);
+ msg_ui_setting_spam_create_view(data, obj, event_info);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
#include "msg-ui-setting-main.h"
#include "msg-ui-setting-common-util.h"
+#include <contacts-svc.h>
+#include <contacts-ug.h>
+
/*============================================================================
STATIC FUNCTION DEFINE
static void __msg_ui_setting_common_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_setting_common_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_setting_common_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_common_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void __msg_ui_setting_common_ug_destroy_cb(ui_gadget_h ug, void *priv);
/*============================================================================
FUNCTION IMPLEMENT
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
+void msg_ui_setting_common_append_genlist_separator_without_bot_line(Evas_Object *genlist, void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, genlist == NULL, "genlist is NULL");
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Elm_Object_Item *it = NULL;
+
+ settingData->grp_sep_without_bot_line_itc.item_style = "dialogue/seperator.4";
+ settingData->grp_sep_without_bot_line_itc.func.text_get = NULL;
+ settingData->grp_sep_without_bot_line_itc.func.content_get = NULL;
+ settingData->grp_sep_without_bot_line_itc.func.state_get = NULL;
+ settingData->grp_sep_without_bot_line_itc.func.del = NULL;
+
+ it = elm_genlist_item_append(genlist, &settingData->grp_sep_without_bot_line_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
Evas_Object *msg_ui_setting_common_create_scroller(Evas_Object *parent)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
if (settingData->popup) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Popup is exist !!");
evas_object_del(settingData->popup);
settingData->popup = NULL;
}
+ else
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Popup is NULL !!");
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
+void msg_ui_setting_common_show_btn_popup(void *data, char *str)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ settingData->popup = elm_popup_add(settingData->layout_main);
+
+ evas_object_size_hint_weight_set(settingData->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_text_set(settingData->popup, str);
+
+ Evas_Object *btn1 = elm_button_add(settingData->popup);
+ elm_object_style_set(btn1, "popup_button/default");
+ elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+ elm_object_part_content_set(settingData->popup, "button1", btn1);
+ evas_object_smart_callback_add(btn1, "clicked", __msg_ui_setting_common_popup_btn_clicked_cb, settingData);
+
+ evas_object_show(settingData->popup);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
void msg_ui_setting_common_show_notify(void *data, char *str)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
+static void __msg_ui_setting_common_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !priv);
+
+ Evas_Object *base;
+
+ base = ug_get_layout(ug);
+
+ if (!base) {
+ ug_destroy(ug);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "base is NULL !!");
+ return;
+ }
+
+ switch (mode) {
+ case UG_MODE_FULLVIEW:
+ evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ug_get_window(), base);
+ evas_object_show(base);
+ break;
+ case UG_MODE_FRAMEVIEW:
+ break;
+ default:
+ break;
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_common_ug_destroy_cb(ui_gadget_h ug, void *priv)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !priv);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA) priv;
+
+ settingData->loaded_ug = ug;
+
+ if (settingData->loaded_ug) {
+ ug_destroy(settingData->loaded_ug);
+ settingData->loaded_ug = NULL;
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+ui_gadget_h msg_ui_setting_common_call_phoneui_ug(void *data, void *result_cb)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, data == NULL, NULL, "PMSG_SETTING_DATA is NULL");
+ MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, result_cb == NULL, NULL, "result_cb is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ ui_gadget_h ug = NULL;
+ struct ug_cbs cbs = {0, };
+
+ service_h svc_h = NULL;
+ char request_number[DEF_BUF_LEN_D + 1] = {0, };
+
+ if (service_create(&svc_h) < 0 || svc_h == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_create() is failed !!");
+ return NULL;
+ }
+
+ snprintf(request_number, sizeof(request_number)-1, "%d", CT_UG_REQUEST_SELECT_NUMBER);
+ service_add_extra_data(svc_h, MSG_BUNDLE_KEY_TYPE, request_number);
+
+ cbs.layout_cb = __msg_ui_setting_common_ug_layout_cb;
+ cbs.result_cb = result_cb;
+ cbs.destroy_cb = __msg_ui_setting_common_ug_destroy_cb;
+ cbs.priv = data;
+
+ ug = ug_create(settingData->ug, "contacts-tabui-efl", UG_MODE_FULLVIEW, svc_h, &cbs);
+ if (ug == NULL)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "ug_create is failed !!");
+
+ return ug;
+}
static struct _msg_ui_setting_mixed_list_item font_size_menu_its[] = {
{ 1, "Follow system font size", NULL, ELM_GENLIST_ITEM_NONE },
+ { 1, "Giant", NULL, ELM_GENLIST_ITEM_NONE },
{ 1, "Huge", NULL, ELM_GENLIST_ITEM_NONE },
{ 1, "IDS_MSGF_BODY_LARGE", NULL, ELM_GENLIST_ITEM_NONE },
{ 1, "IDS_MSGF_BODY_DEFAULTSTYLE_NORMAL", NULL, ELM_GENLIST_ITEM_NONE },
{ 1, "IDS_MSGF_BODY_SMALL", NULL, ELM_GENLIST_ITEM_NONE },
- { 1, "IDS_MSGF_BODY_TINY", NULL, ELM_GENLIST_ITEM_NONE },
/* do not delete below */
{ 1, NULL, NULL, ELM_GENLIST_ITEM_NONE }
};
strncpy(tmp_str, dgettext(MESSAGE_PKGNAME, font_size_menu_its[index].name), sizeof(tmp_str)-1);
switch(index) {
+ case MSG_APP_FONT_SIZE_INDEX_GIANT :
+ font_size = MSG_APP_FONT_SIZE_GIANT;
+ break;
case MSG_APP_FONT_SIZE_INDEX_HUGE :
font_size = MSG_APP_FONT_SIZE_HUGE;
break;
case MSG_APP_FONT_SIZE_INDEX_SMALL :
font_size = MSG_APP_FONT_SIZE_SMALL;
break;
- case MSG_APP_FONT_SIZE_INDEX_TINY :
- font_size = MSG_APP_FONT_SIZE_TINY;
- break;
case MSG_APP_FONT_SIZE_INDEX_SYSTEM_FONT :
default :
break;
evas_object_propagate_events_set(radio, EINA_FALSE);
evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_font_size_radio_cb, (void *)settingData);
- if (index == 0)
- settingData->font_size_radio_group = radio;
- else
- elm_radio_group_add(radio, settingData->font_size_radio_group);
+ elm_radio_group_add(radio, settingData->font_size_radio_group);
/* Set font size current value */
if (index == settingData->font_size_index)
settingData->font_size_itc.func.state_get = NULL;
settingData->font_size_itc.func.del = NULL;
+ settingData->font_size_radio_group = elm_radio_add(font_size_genlist);
+
for (index = 0; font_size_menu_its[index].name; index++) {
elm_genlist_item_append(font_size_genlist, &settingData->font_size_itc, (void *)index,
NULL, font_size_menu_its[index].type, __msg_ui_setting_font_size_gl_sel, (void *)index);
#include "msg-ui-setting-types.h"
#include "msg-ui-setting-main.h"
#include "msg-ui-common-utility.h"
+#include <contacts-svc.h>
static void __msg_ui_setting_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_setting_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static int __msg_ui_setting_check_msg_server_ready(void);
static void __msg_ui_setting_gadget_popup(PMSG_SETTING_DATA settingData, char *str);
static Evas_Object *__msg_ui_setting_create_fullview(Evas_Object *parent, void *ugd);
static Evas_Object *__msg_ui_setting_create_frameview(Evas_Object *parent, void *ugd);
ug_destroy_me(settingData->ug);
}
-static int __msg_ui_setting_check_msg_server_ready(void)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- int bMsgServerReady = 0;
-
- if (vconf_get_bool(VCONFKEY_MSG_SERVER_READY, &bMsgServerReady) < 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "vconf_get_bool() is failed!!");
- return MSG_UI_RET_ERR;
- }
-
- return bMsgServerReady;
-}
-
static void __msg_ui_setting_gadget_popup(PMSG_SETTING_DATA settingData, char *str)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
ugd = (PMSG_SETTING_DATA)priv;
ugd->ug = ug;
+ ugd->th = elm_theme_new();
+ elm_theme_ref_set(ugd->th, NULL);
+ elm_theme_extension_add(ugd->th, MSG_CUSTOM_WINSET_EDJ);
+
ugd->cbs.layout_cb = NULL;
ugd->cbs.result_cb = NULL;
ugd->cbs.destroy_cb = NULL;
PMSG_SETTING_DATA ugd = (PMSG_SETTING_DATA)priv;
msg_error_t err = MSG_SUCCESS;
msg_handle_t msgHandle;
+ int ct_ret = CTS_ERR_FAIL;
char *svc_value = NULL;
/*Set Message Handler*/
ugd->msgHandle = msgHandle;
+ ct_ret = contacts_svc_connect();
+ if (ct_ret != CTS_SUCCESS)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "contacts_svc_connect failed : ct_ret = [%d]", ct_ret);
+
if (data != NULL)
service_get_extra_data(data, MSG_BUNDLE_KEY_TYPE, &svc_value);
PMSG_SETTING_DATA ugd;
msg_error_t err = MSG_SUCCESS;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+ int ct_ret = CTS_ERR_FAIL;
if (!ug || !priv)
return;
ugd = (PMSG_SETTING_DATA)priv;
+ EINA_LIST_FREE(ugd->block_msg.block_filter_chk_state_list, list_data) {
+ if (list_data)
+ free(list_data);
+ }
+
+ ct_ret = contacts_svc_disconnect();
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "contacts_svc_connect return [%d]", ct_ret);
+
if (ugd->msgHandle) {
err = msg_close_msg_handle(&ugd->msgHandle);
if (err != MSG_SUCCESS) {
evas_object_del(ugd->layout_main);
ugd->layout_main = NULL;
+ if (ugd->th) {
+ elm_theme_extension_del(ugd->th, MSG_CUSTOM_WINSET_EDJ);
+ elm_theme_free(ugd->th);
+ ugd->th = NULL;
+ }
+
+ if (ugd->msg_setting.setting_opt) {
+ msg_release_struct(&(ugd->msg_setting.setting_opt));
+ }
+
+ if (ugd->msg_setting.smsc_opt) {
+ msg_release_struct(&(ugd->msg_setting.smsc_opt));
+ }
+
+ if (ugd->msg_setting.mms_recv_opt) {
+ msg_release_struct(&(ugd->msg_setting.mms_recv_opt));
+ }
}
static void __msg_ui_setting_on_message(ui_gadget_h ug, service_h msg, service_h data, void *priv)
{ "IDS_MSGF_BODY_BROADCASTMESSAGES", NULL },
{ "IDS_COM_BODY_DISPLAY", NULL },
{ "IDS_MSGF_BODY_DEFUALTSTYLE_FONT_SIZE", msg_ui_setting_font_size_cb },
+ { "Use the volume key", NULL },
/* do not delete below */
{ NULL, NULL }
};
static char *__msg_ui_setting_main_gl_text_get(void *data, Evas_Object *obj, const char *part);
static void __msg_ui_setting_main_save_cb_activation(void *data);
static void __msg_ui_setting_main_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_main_save_use_vol_key_activation(void *data);
+static void __msg_ui_setting_main_gl_use_vol_key_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static Evas_Object *__msg_ui_setting_main_gl_content_get(void *data, Evas_Object *obj, const char *part);
static void __msg_ui_setting_main_gl_sel(void *data, Evas_Object *obj, void *event_info);
static Evas_Object *__msg_ui_setting_create_main_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData);
static PMSG_SETTING_DATA g_settingData = NULL;
-static char *
-__msg_ui_setting_main_gl_text_get(void *data, Evas_Object *obj, const char *part)
+static char *__msg_ui_setting_main_gl_text_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
return NULL;
}
-static void
-__msg_ui_setting_main_save_cb_activation(void *data)
+static void __msg_ui_setting_main_save_cb_activation(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "set_val = %d", (int)set_val);
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_CBMSG;
- msg_ui_setting_msg_get_config(settingData);
msg_set_bool_value(settingData->msg_setting.setting_opt, MSG_CB_RECEIVE_BOOL, set_val);
msg_ui_setting_msg_set_config(settingData);
}
-static void
-__msg_ui_setting_main_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_main_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static Evas_Object *
-__msg_ui_setting_main_gl_content_get(void *data, Evas_Object *obj, const char *part)
+static void __msg_ui_setting_main_save_use_vol_key_activation(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ Eina_Bool set_val = EINA_FALSE;
+ bool use_vol_key = false;
+
+ set_val = elm_check_state_get(settingData->use_vol_key_activate_check);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "set_val = %d", (bool)set_val);
+
+ use_vol_key = (bool)set_val;
+ vconf_set_bool(VCONFKEY_MSG_APP_USE_VOLUME_KEY, use_vol_key);
+}
+
+static void __msg_ui_setting_main_gl_use_vol_key_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ __msg_ui_setting_main_save_use_vol_key_activation(settingData);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *__msg_ui_setting_main_gl_content_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
Evas_Object *check;
PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
bool bReceive = false;
+ int use_vol_key = 0;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
- check = elm_check_add(obj);
- settingData->cb_activate_check = check;
+ if (index == MSG_UI_SETTING_MAIN_MENU_CB_MESSAGES) {
+ check = elm_check_add(obj);
+ settingData->cb_activate_check = check;
+
+ msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_CB_RECEIVE_BOOL, &bReceive);
+
+ if (bReceive == true)
+ elm_check_state_set(check, EINA_TRUE);
+ else
+ elm_check_state_set(check, EINA_FALSE);
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_CBMSG;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_CB_RECEIVE_BOOL, &bReceive);
+ elm_object_style_set(check, "on&off");
- if (bReceive == true)
- elm_check_state_set(check, EINA_TRUE);
- else
- elm_check_state_set(check, EINA_FALSE);
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_smart_callback_add(check, "changed", __msg_ui_setting_main_gl_check_clicked_cb, settingData);
+
+ return check;
+ } else if (index == MSG_UI_SETTING_MAIN_MENU_USE_VOLUME_KEY) {
+ check = elm_check_add(obj);
+ settingData->use_vol_key_activate_check = check;
+
+ vconf_get_bool(VCONFKEY_MSG_APP_USE_VOLUME_KEY, &use_vol_key);
+
+ if (use_vol_key == true)
+ elm_check_state_set(check, EINA_TRUE);
+ else
+ elm_check_state_set(check, EINA_FALSE);
- elm_object_style_set(check, "on&off");
+ elm_object_style_set(check, "on&off");
- evas_object_propagate_events_set(check, EINA_FALSE);
- evas_object_smart_callback_add(check, "changed", __msg_ui_setting_main_gl_check_clicked_cb, settingData);
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_smart_callback_add(check, "changed", __msg_ui_setting_main_gl_use_vol_key_check_clicked_cb, settingData);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
- return check;
+ return check;
+ }
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
}
return NULL;
}
-static void
-__msg_ui_setting_main_gl_sel(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_main_gl_sel(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
int index = (int)data;
+ Eina_Bool set_val = EINA_FALSE;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
if (index == MSG_UI_SETTING_MAIN_MENU_CB_MESSAGES) {
- Eina_Bool set_val = EINA_FALSE;
-
set_val = elm_check_state_get(settingData->cb_activate_check);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "set_val = %d", (int)set_val);
__msg_ui_setting_main_save_cb_activation((void *)settingData);
+ } else if (index == MSG_UI_SETTING_MAIN_MENU_USE_VOLUME_KEY) {
+ set_val = elm_check_state_get(settingData->use_vol_key_activate_check);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "set_val = %d", (int)set_val);
+
+ elm_check_state_set(settingData->use_vol_key_activate_check, !set_val);
+
+ __msg_ui_setting_main_save_use_vol_key_activation((void *)settingData);
+
} else {
if (main_menu_its[index].func != NULL)
main_menu_its[index].func(settingData, obj, event_info);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static Evas_Object *
-__msg_ui_setting_create_main_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+static Evas_Object *__msg_ui_setting_create_main_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
settingData->sub_title_itc.func.state_get = NULL;
settingData->sub_title_itc.func.del = NULL;
+ settingData->use_vol_key_itc.item_style = "dialogue/1text.1icon";
+ settingData->use_vol_key_itc.func.text_get = __msg_ui_setting_main_gl_text_get;
+ settingData->use_vol_key_itc.func.content_get = __msg_ui_setting_main_gl_content_get;
+ settingData->use_vol_key_itc.func.state_get = NULL;
+ settingData->use_vol_key_itc.func.del = NULL;
+
for (index = 0; main_menu_its[index].name; index++) {
if (index == MSG_UI_SETTING_MAIN_MENU_CB_MESSAGES) {
elm_genlist_item_append(main_genlist, &settingData->cb_msg_itc, (void *)index, NULL,
} else if (index == MSG_UI_SETTING_MAIN_MENU_SUB_TITLE) {
elm_genlist_item_append(main_genlist, &settingData->sub_title_itc, (void *)index, NULL,
ELM_GENLIST_ITEM_NONE, NULL, (void *)index);
+ } else if (index == MSG_UI_SETTING_MAIN_MENU_USE_VOLUME_KEY) {
+ elm_genlist_item_append(main_genlist, &settingData->use_vol_key_itc, (void *)index, NULL,
+ ELM_GENLIST_ITEM_NONE, __msg_ui_setting_main_gl_sel, (void *)index);
} else {
elm_genlist_item_append(main_genlist, &settingData->main_itc, (void *)index, NULL,
ELM_GENLIST_ITEM_NONE, __msg_ui_setting_main_gl_sel, (void *)index);
/* Navigation Frame */
settingData->navi_frame = msg_ui_setting_create_navigation_layout(settingData->layout_main);
- msg_ui_setting_general_create_view(settingData, NULL, NULL);
+ msg_ui_setting_spam_create_view(settingData, NULL, NULL);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
err = msg_set_sms_send_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
break;
case MSG_UI_SETTING_TYPE_SMSC_LIST:
- err = msg_set_smsc_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
+ err = msg_set_smsc_opt(settingData->msgHandle, settingData->msg_setting.smsc_opt);
break;
case MSG_UI_SETTING_TYPE_MMS_SEND:
err = msg_set_mms_send_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
break;
case MSG_UI_SETTING_TYPE_MMS_RECEIVE:
- err = msg_set_mms_recv_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
+ err = msg_set_mms_recv_opt(settingData->msgHandle, settingData->msg_setting.mms_recv_opt);
break;
case MSG_UI_SETTING_TYPE_CBMSG:
err = msg_set_cb_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
return MSG_UI_RET_ERR;
}
- msg_release_struct(&(settingData->msg_setting.setting_opt));
-
MSG_UI_RETVM_IF(MSG_UI_LEVEL_ASSERT, err != MSG_SUCCESS, -1, "[FAIL] msg_set_config of MSG FW : err %d \n", err);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
err = msg_get_sms_send_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
break;
case MSG_UI_SETTING_TYPE_SMSC_LIST:
- settingData->msg_setting.setting_opt = msg_create_struct(MSG_STRUCT_SETTING_SMSC_OPT);
- err = msg_get_smsc_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
+ settingData->msg_setting.smsc_opt = msg_create_struct(MSG_STRUCT_SETTING_SMSC_OPT);
+ err = msg_get_smsc_opt(settingData->msgHandle, settingData->msg_setting.smsc_opt);
break;
case MSG_UI_SETTING_TYPE_MMS_SEND:
settingData->msg_setting.setting_opt = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
err = msg_get_mms_send_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
break;
case MSG_UI_SETTING_TYPE_MMS_RECEIVE:
- settingData->msg_setting.setting_opt = msg_create_struct(MSG_STRUCT_SETTING_MMS_RECV_OPT);
- err = msg_get_mms_recv_opt(settingData->msgHandle, settingData->msg_setting.setting_opt);
+ settingData->msg_setting.mms_recv_opt = msg_create_struct(MSG_STRUCT_SETTING_MMS_RECV_OPT);
+ err = msg_get_mms_recv_opt(settingData->msgHandle, settingData->msg_setting.mms_recv_opt);
break;
case MSG_UI_SETTING_TYPE_CBMSG:
settingData->msg_setting.setting_opt = msg_create_struct(MSG_STRUCT_SETTING_CB_OPT);
return MSG_UI_RET_ERR;
}
+ MSG_UI_RETVM_IF(MSG_UI_LEVEL_ASSERT, err != MSG_SUCCESS, -1, "[FAIL] msg_get_config of MSG FW : err %d \n", err);
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
return err;
static void __msg_ui_setting_mm_gl_sel(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_setting_mm_gl_exp(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_setting_mm_gl_con(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_mm_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
static Evas_Object *__msg_ui_setting_mm_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData);
/* Save selected value. */
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
if (selection == 1)
msg_set_int_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_CREATION_MODE_INT, MSG_CREATION_MODE_WARNING);
else if (selection == 2)
evas_object_propagate_events_set(radio, EINA_FALSE);
evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_mm_creation_mode_radio_cb, (void *)settingData);
- if (index == 0)
- settingData->list.mm_msg.creation_radio_group = radio;
- else
- elm_radio_group_add(radio, settingData->list.mm_msg.creation_radio_group);
+ elm_radio_group_add(radio, settingData->list.mm_msg.creation_radio_group);
return radio;
} else {
/* Set requesting read report in sending option. */
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_set_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_READ_REPLY_BOOL, set_val);
msg_ui_setting_msg_set_config(settingData);
}
/* Set sending read report in receiving option. */
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_set_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_READ_REPORT_BOOL, set_val);
+ msg_set_bool_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_READ_REPORT_BOOL, set_val);
msg_ui_setting_msg_set_config(settingData);
}
check = elm_check_add(obj);
settingData->list.mm_msg.mm_read_rep_request_check = check;
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_READ_REPLY_BOOL, &bReadValue);
if (bReadValue == true)
elm_check_state_set(check, EINA_TRUE);
evas_object_propagate_events_set(check, EINA_FALSE);
evas_object_smart_callback_add(check, "changed", __msg_ui_setting_mm_read_rep_gl_check_clicked_cb, settingData);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
-
return check;
} else if (index == MSG_UI_SETTING_MM_READ_REP_MENU_SEND) {
check = elm_check_add(obj);
settingData->list.mm_msg.mm_read_rep_send_check = check;
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_READ_REPORT_BOOL, &bReadValue);
+ msg_get_bool_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_READ_REPORT_BOOL, &bReadValue);
if (bReadValue == true)
elm_check_state_set(check, EINA_TRUE);
else
evas_object_propagate_events_set(check, EINA_FALSE);
evas_object_smart_callback_add(check, "changed", __msg_ui_setting_mm_read_rep_gl_check_clicked_cb, settingData);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
-
return check;
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid index = %d", index);
Evas_Object *mm_read_rep_genlist;
Elm_Object_Item *navi_it;
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
-
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
-
read_rep_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
mm_read_rep_genlist = __msg_ui_setting_mm_read_rep_create_view(settingData->navi_frame, settingData);
return strdup(dgettext(MESSAGE_PKGNAME, mm_menu_its[index].name));
}
} else if (!strcmp(part, "elm.text.sub") || !strcmp(part, "elm.text.2")) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_CREATION_MODE_INT, &creationMode);
+
if (creationMode == MSG_CREATION_MODE_FREE)
return strdup(dgettext(MESSAGE_PKGNAME, mm_creation_mode_menu_its[0].name));
else if (creationMode == MSG_CREATION_MODE_WARNING)
return strdup(dgettext(MESSAGE_PKGNAME, mm_creation_mode_menu_its[2].name));
else
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid mode = %d", creationMode);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
}
/* Set requesting delivery report in sending option. */
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_set_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, set_val);
msg_ui_setting_msg_set_config(settingData);
/* Set sending delivery report in receiving option. */
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_set_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_DELIVERY_REPORT_BOOL, set_val);
+ msg_set_bool_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_DELIVERY_REPORT_BOOL, set_val);
msg_ui_setting_msg_set_config(settingData);
}
int index = (int)data;
Evas_Object *check;
PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
- bool bReadReply = false;
+ bool bDeliveryReport = false;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
settingData->list.mm_msg.mm_delivery_report_check = check;
/* We decide delivery report setting based on sending option setting. */
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_READ_REPLY_BOOL, &bReadReply);
- if (bReadReply == true)
+ msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, &bDeliveryReport);
+
+ if (bDeliveryReport == true)
elm_check_state_set(check, EINA_TRUE);
else
elm_check_state_set(check, EINA_FALSE);
evas_object_propagate_events_set(check, EINA_FALSE);
evas_object_smart_callback_add(check, "changed", __msg_ui_setting_mm_gl_check_clicked_cb, settingData);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
-
return check;
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid index = %d", index);
settingData->list.mm_msg.mm_creation_mode_itc.func.state_get = NULL;
settingData->list.mm_msg.mm_creation_mode_itc.func.del = NULL;
+ settingData->list.mm_msg.creation_radio_group = elm_radio_add(obj);
+
for (index = 0; mm_creation_mode_menu_its[index].name; index++) {
elm_genlist_item_append(settingData->list.mm_msg.mm_genlist,
&settingData->list.mm_msg.mm_creation_mode_itc,
if (settingData->list.mm_msg.creation_radio_group) {
/* Set creation mode current value */
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_SENDOPT_CREATION_MODE_INT, &creationMode);
if (creationMode == MSG_CREATION_MODE_WARNING)
elm_radio_value_set(settingData->list.mm_msg.creation_radio_group, 1);
elm_radio_value_set(settingData->list.mm_msg.creation_radio_group, 2);
else
elm_radio_value_set(settingData->list.mm_msg.creation_radio_group, 0);
-
- msg_release_struct(&(settingData->msg_setting.setting_opt));
}
}
}
elm_genlist_item_subitems_clear(item);
}
+static void __msg_ui_setting_mm_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ msg_release_struct(&(settingData->msg_setting.setting_opt));
+ msg_release_struct(&(settingData->msg_setting.mms_recv_opt));
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+ return;
+}
+
static Evas_Object *__msg_ui_setting_mm_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
Evas_Object *mm_genlist;
Elm_Object_Item *navi_it;
+ msg_release_struct(&(settingData->msg_setting.setting_opt));
+
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
msg_ui_setting_msg_get_config(settingData);
+ settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
+ msg_ui_setting_msg_get_config(settingData);
+
/* Initialize global variable. */
memset(&settingData->list.mm_msg, 0x0, sizeof(settingData->list.mm_msg));
navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_SETTINGS_MULTIMEDIAMESSAGE"), NULL, NULL, mm_layout, NULL);
+ msg_ui_setting_common_create_back_btn(settingData->navi_frame, \
+ __msg_ui_setting_mm_back_btn_cb, settingData);
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
}
/* Save selected value. */
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_set_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, set_val);
+ msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, set_val);
err = msg_ui_setting_msg_set_config(settingData);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_ui_setting_msg_set_config(home network) is %d", err);
elm_radio_state_value_set(radio, index);
evas_object_propagate_events_set(radio, EINA_FALSE);
evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_mm_recv_home_network_radio_cb, (void *)settingData);
-
- if (index == 0)
- settingData->list.mm_msg.mm_recv_home_network_radio_group = radio;
- else
- elm_radio_group_add(radio, settingData->list.mm_msg.mm_recv_home_network_radio_group);
+ elm_radio_group_add(radio, settingData->list.mm_msg.mm_recv_home_network_radio_group);
/* When user contract expanded genlist item, genlist is updated.
* In this case, radio button is set to first item.
* Therefore, we should check and set radio value when last item is redrawn.
*/
if (index == 2) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &retrieveType);
+ msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &retrieveType);
if (retrieveType == MSG_HOME_MANUAL)
elm_radio_value_set(settingData->list.mm_msg.mm_recv_home_network_radio_group, 1);
else if (retrieveType == MSG_HOME_REJECT)
elm_radio_value_set(settingData->list.mm_msg.mm_recv_home_network_radio_group, 2);
else
elm_radio_value_set(settingData->list.mm_msg.mm_recv_home_network_radio_group, 0);
-
- msg_release_struct(&(settingData->msg_setting.setting_opt));
}
return radio;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "selected value is %d", selection);
/* Save selected value. */
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_set_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, selection);
+ msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, selection);
err = msg_ui_setting_msg_set_config(settingData);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_ui_setting_msg_set_config(Foreign network) is %d", err);
elm_radio_state_value_set(radio, index);
evas_object_propagate_events_set(radio, EINA_FALSE);
evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_mm_recv_foreign_network_radio_cb, (void *)settingData);
-
- if (index == 0)
- settingData->list.mm_msg.mm_recv_foreign_network_radio_group = radio;
- else
- elm_radio_group_add(radio, settingData->list.mm_msg.mm_recv_foreign_network_radio_group);
+ elm_radio_group_add(radio, settingData->list.mm_msg.mm_recv_foreign_network_radio_group);
/* When user contract expanded genlist item, genlist is updated.
* In this case, radio button is set to first item.
* Therefore, we should check and set radio value when last item is redrawn.
*/
if (index == 3) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &retrieveType);
+ msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &retrieveType);
if (retrieveType == MSG_ABROAD_MANUAL)
elm_radio_value_set(settingData->list.mm_msg.mm_recv_foreign_network_radio_group, 1);
else if (retrieveType == MSG_ABROAD_RESTRICTED)
elm_radio_value_set(settingData->list.mm_msg.mm_recv_foreign_network_radio_group, 3);
else
elm_radio_value_set(settingData->list.mm_msg.mm_recv_foreign_network_radio_group, 0);
-
- msg_release_struct(&(settingData->msg_setting.setting_opt));
}
return radio;
}
} else if (!strcmp(part, "elm.text.sub") || !strcmp(part, "elm.text.2")) {
if (index == MSG_UI_SETTING_MM_RECV_OPT_MENU_HOME) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &set_val);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
+ msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &set_val);
switch (set_val) {
case MSG_HOME_AUTO_DOWNLOAD:
break;
}
} else if (index == MSG_UI_SETTING_MM_RECV_OPT_MENU_FOREIGN) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &set_val);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
+ msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &set_val);
switch (set_val) {
case MSG_ABROAD_AUTO_DOWNLOAD:
settingData->list.mm_msg.mm_recv_home_network_itc.func.state_get = NULL;
settingData->list.mm_msg.mm_recv_home_network_itc.func.del = NULL;
+ settingData->list.mm_msg.mm_recv_home_network_radio_group = elm_radio_add(obj);
+
for (index = 0; mm_recv_home_network_menu_its[index].name; index++) {
elm_genlist_item_append(settingData->list.mm_msg.mm_recv_genlist,
&settingData->list.mm_msg.mm_recv_home_network_itc,
}
if (settingData->list.mm_msg.mm_recv_home_network_radio_group) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &retrieveType);
+ msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &retrieveType);
if (retrieveType == MSG_HOME_MANUAL)
elm_radio_value_set(settingData->list.mm_msg.mm_recv_home_network_radio_group, 1);
elm_radio_value_set(settingData->list.mm_msg.mm_recv_home_network_radio_group, 2);
else
elm_radio_value_set(settingData->list.mm_msg.mm_recv_home_network_radio_group, 0);
-
- msg_release_struct(&(settingData->msg_setting.setting_opt));
}
} else if (it == settingData->list.mm_msg.mm_recv_foreign_network_item) {
settingData->list.mm_msg.mm_recv_foreign_network_itc.item_style = "dialogue/1text.1icon.2/expandable2";
settingData->list.mm_msg.mm_recv_foreign_network_itc.func.state_get = NULL;
settingData->list.mm_msg.mm_recv_foreign_network_itc.func.del = NULL;
+ settingData->list.mm_msg.mm_recv_foreign_network_radio_group = elm_radio_add(obj);
+
for (index = 0; mm_recv_foreign_network_menu_its[index].name; index++) {
elm_genlist_item_append(settingData->list.mm_msg.mm_recv_genlist,
&settingData->list.mm_msg.mm_recv_foreign_network_itc,
}
if (settingData->list.mm_msg.mm_recv_foreign_network_radio_group) {
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &retrieveType);
+ msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &retrieveType);
if (retrieveType == MSG_ABROAD_MANUAL)
elm_radio_value_set(settingData->list.mm_msg.mm_recv_foreign_network_radio_group, 1);
elm_radio_value_set(settingData->list.mm_msg.mm_recv_foreign_network_radio_group, 3);
else
elm_radio_value_set(settingData->list.mm_msg.mm_recv_foreign_network_radio_group, 0);
-
- msg_release_struct(&(settingData->msg_setting.setting_opt));
}
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid it = 0x%x", it);
Elm_Object_Item *navi_it;
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
- msg_ui_setting_msg_get_config(settingData);
recv_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
--- /dev/null
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * 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://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,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "msg-ui-setting-spam-setting.h"
+
+#include <contacts-svc.h>
+#include <contacts-ug.h>
+
+static struct _msg_ui_setting_mixed_list_item title_menu_its[] = {
+ { 1, "Add number", NULL, ELM_GENLIST_ITEM_NONE },
+ { 1, "Edit number", NULL, ELM_GENLIST_ITEM_NONE },
+ /* do not delete below */
+ { 1, NULL, NULL, ELM_GENLIST_ITEM_NONE }
+};
+
+static struct _msg_ui_setting_mixed_list_item detail_menu_its[] = {
+ { 1, " ", NULL, ELM_GENLIST_ITEM_NONE },
+ { 1, "Match Criteria", NULL, ELM_GENLIST_ITEM_TREE },
+ /* do not delete below */
+ { 1, NULL, NULL, ELM_GENLIST_ITEM_NONE }
+};
+
+static struct _msg_ui_setting_mixed_list_item match_criteria_mode_menu_its[] = {
+ { 2, "Exactly the same as", NULL, ELM_GENLIST_ITEM_NONE },
+ { 2, "Start with", NULL, ELM_GENLIST_ITEM_NONE },
+ { 2, "Include", NULL, ELM_GENLIST_ITEM_NONE },
+ /* do not delete below */
+ { 2, NULL, NULL, ELM_GENLIST_ITEM_NONE }
+};
+
+/*============================================================================
+ STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_block_number_match_criteria_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static char *__msg_ui_setting_block_number_match_criteria_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_number_match_criteria_mode_radio_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_block_number_match_criteria_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_number_match_criteria_select_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_match_criteria_gl_exp(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_match_criteria_gl_con(void *data, Evas_Object *obj, void *event_info);
+
+static char *__msg_ui_setting_block_number_detail_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_number_detail_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_detail_entry_focus_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_detail_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_detail_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void __msg_ui_setting_block_number_detail_phonui_ug_result_cb(ui_gadget_h ug, service_h result, void *priv);
+static void __msg_ui_setting_block_number_detail_ct_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_block_number_detail_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_setting_block_number_create_detail_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_block_number_detail_trans_finished(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_detail_save(void *data);
+static void __msg_ui_setting_block_number_detail_done_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_detail_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_detail_view(void *data, int index);
+
+static char *__msg_ui_setting_block_number_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_number_gl_dialogue_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_block_number_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_number_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_create_block_number_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_block_number_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
+
+static char *__msg_ui_setting_block_number_delete_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_number_delete_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_number_delete_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_number_delete_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_create_number_delete_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_block_number_check_select_all(void *data);
+static void __msg_ui_setting_block_number_sel_all_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_sel_all_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_delete_mode_exit(void *data);
+static void __msg_ui_setting_block_number_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_delete_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_number_delete_view_controlbar(void *data);
+static void __msg_ui_setting_block_number_delete_view(void *data);
+
+static void __msg_ui_setting_block_number_update_view(void *data);
+static void __msg_ui_setting_destroy_block_number_main(void *data);
+static void __msg_ui_setting_init_block_number_main(void *data);
+static void __msg_ui_setting_show_block_number_main(void *data);
+static void __msg_ui_setting_block_number_update_controlbar(void *data);
+
+/*============================================================================
+ FUNCTION IMPLEMENT
+=============================================================================*/
+
+/**********************************
+ *** Match Criteria detail view ***
+ **********************************/
+
+static void __msg_ui_setting_block_number_match_criteria_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+ Eina_Bool expand_state = EINA_FALSE;
+
+ if (index > MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_MAX)
+ return;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ if (index == MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_NAME) {
+ expand_state = elm_genlist_item_expanded_get(settingData->block_msg.block_filter_detail_match_criteria_item);
+ if (expand_state == EINA_FALSE) {
+ elm_genlist_item_expanded_set(settingData->block_msg.block_filter_detail_match_criteria_item, EINA_TRUE);
+ elm_object_focus_set(settingData->block_msg.block_filter_detail_entry, EINA_FALSE);
+ } else {
+ elm_genlist_item_expanded_set(settingData->block_msg.block_filter_detail_match_criteria_item, EINA_FALSE);
+ }
+ } else {
+ if (match_criteria_mode_menu_its[index].func != NULL) {
+ match_criteria_mode_menu_its[index].func(settingData, obj, event_info);
+
+ /* If expandable genlist item is expanded, it should be contracted.
+ * Because, wrong radio button is selected when it is back from other sub menu.
+ */
+ expand_state = elm_genlist_item_expanded_get(settingData->block_msg.block_filter_detail_match_criteria_item);
+ if (expand_state == EINA_TRUE)
+ elm_genlist_item_expanded_set(settingData->block_msg.block_filter_detail_match_criteria_item, EINA_FALSE);
+ }
+ }
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "expand_state = %d", expand_state);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static char *__msg_ui_setting_block_number_match_criteria_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if(index >= sizeof(match_criteria_mode_menu_its) / sizeof(match_criteria_mode_menu_its[0])) {
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ if (match_criteria_mode_menu_its[index].name) {
+ if (strstr(match_criteria_mode_menu_its[index].name, "IDS_COM") != NULL)
+ return strdup(dgettext("sys_string", match_criteria_mode_menu_its[index].name));
+ else
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[index].name));
+ }
+ }
+ else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_block_number_match_criteria_mode_radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Save selected Criteria value. */
+ settingData->block_msg.match_criteria = elm_radio_value_get(settingData->block_msg.block_filter_detail_match_criteria_radio_group) + 1;
+
+ elm_genlist_item_update(settingData->block_msg.block_filter_detail_match_criteria_item);
+}
+
+static Evas_Object *__msg_ui_setting_block_number_match_criteria_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *radio;
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
+ radio = elm_radio_add(obj);
+ elm_radio_state_value_set(radio, index);
+ evas_object_propagate_events_set(radio, EINA_FALSE);
+ evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_block_number_match_criteria_mode_radio_cb, (void *)settingData);
+
+ if (index == 0)
+ settingData->block_msg.block_filter_detail_match_criteria_radio_group = radio;
+ else
+ elm_radio_group_add(radio, settingData->block_msg.block_filter_detail_match_criteria_radio_group);
+
+ return radio;
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_block_number_match_criteria_select_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = NULL;
+ int index = (int)data;
+
+ settingData = msg_ui_setting_get_data();
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ /* Change radio selection. */
+ elm_radio_value_set(settingData->block_msg.block_filter_detail_match_criteria_radio_group, index);
+
+ /* Save selected Criteria value. */
+ settingData->block_msg.match_criteria = elm_radio_value_get(settingData->block_msg.block_filter_detail_match_criteria_radio_group) + 1;
+
+ elm_genlist_item_update(settingData->block_msg.block_filter_detail_match_criteria_item);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+ return;
+}
+
+static void __msg_ui_setting_block_number_match_criteria_gl_exp(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Elm_Object_Item *it = event_info;
+ int index = 0;
+ int depth = 0;
+ int matchCriteria = -1;
+
+ depth = elm_genlist_item_expanded_depth_get(it);
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "depth = %d", depth);
+
+ if (depth == 0) {
+ settingData->block_msg.block_filter_detail_match_criteria_itc.item_style="dialogue/1text.1icon.2/expandable2";
+ settingData->block_msg.block_filter_detail_match_criteria_itc.func.text_get = __msg_ui_setting_block_number_match_criteria_gl_text_get;
+ settingData->block_msg.block_filter_detail_match_criteria_itc.func.content_get = __msg_ui_setting_block_number_match_criteria_gl_content_get;
+ settingData->block_msg.block_filter_detail_match_criteria_itc.func.state_get = NULL;
+ settingData->block_msg.block_filter_detail_match_criteria_itc.func.del = NULL;
+
+ for (index = 0; match_criteria_mode_menu_its[index].name; index++) {
+ elm_genlist_item_append(settingData->block_msg.block_filter_detail_genlist,
+ &settingData->block_msg.block_filter_detail_match_criteria_itc,
+ (void *)index, it, match_criteria_mode_menu_its[index].type,
+ __msg_ui_setting_block_number_match_criteria_select_gl_sel, (void *)index);
+ }
+ matchCriteria = settingData->block_msg.match_criteria;
+
+ /* Set Match Criteria current value */
+ if (matchCriteria == MSG_FILTER_BY_ADDRESS_SAME)
+ elm_radio_value_set(settingData->block_msg.block_filter_detail_match_criteria_radio_group, 0);
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_START)
+ elm_radio_value_set(settingData->block_msg.block_filter_detail_match_criteria_radio_group, 1);
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_INCLUDE)
+ elm_radio_value_set(settingData->block_msg.block_filter_detail_match_criteria_radio_group, 2);
+ }
+}
+
+static void __msg_ui_setting_block_number_match_criteria_gl_con(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Elm_Object_Item *item = event_info;
+ elm_genlist_item_subitems_clear(item);
+}
+
+/**********************************
+ *** Block filter detail view ***
+ **********************************/
+
+static char *__msg_ui_setting_block_number_detail_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ int matchCriteria = -1;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (index > MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_MAX)
+ return NULL;
+
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ if (index == MSG_UI_SETTING_BLOCK_NUMBER_DETAIL_MENU_NAME) {
+ return strdup(dgettext(MESSAGE_PKGNAME, detail_menu_its[1].name));
+ }
+ else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid index = %d", index);
+ }
+ } else if (!strcmp(part, "elm.text.sub") || !strcmp(part, "elm.text.2")) {
+ matchCriteria = settingData->block_msg.match_criteria;
+
+ if (matchCriteria == MSG_FILTER_BY_ADDRESS_SAME)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[0].name));
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_START)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[1].name));
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_INCLUDE)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[2].name));
+ else
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Match Criteria mode fail = %d", matchCriteria);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_block_number_detail_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ char *buf = NULL;
+
+ if (elm_object_focus_get(settingData->block_msg.block_filter_detail_entry_ly)) {
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(settingData->block_msg.block_filter_detail_entry_ly, "elm,state,eraser,hide", "elm");
+ else
+ elm_object_signal_emit(settingData->block_msg.block_filter_detail_entry_ly, "elm,state,eraser,show", "elm");
+ }
+
+ buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->block_msg.block_filter_detail_entry));
+
+ /* If input strings are composed of only space or empty, Done button should be disabled. */
+ if (!buf || strlen(g_strstrip(buf)) == 0) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "No value");
+ if (elm_object_disabled_get(settingData->block_msg.block_filter_detail_done_btn) == EINA_FALSE)
+ elm_object_disabled_set(settingData->block_msg.block_filter_detail_done_btn, EINA_TRUE);
+ } else {
+ if (elm_object_disabled_get(settingData->block_msg.block_filter_detail_done_btn) == EINA_TRUE)
+ elm_object_disabled_set(settingData->block_msg.block_filter_detail_done_btn, EINA_FALSE);
+ }
+
+ if (buf != NULL)
+ free(buf);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_block_number_detail_entry_focus_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *layout = (Evas_Object *)data;
+
+ if (!elm_entry_is_empty(obj))
+ elm_object_signal_emit(layout, "elm,state,eraser,show", "elm");
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_block_number_detail_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *layout = (Evas_Object *)data;
+
+ elm_object_signal_emit(layout, "elm,state,eraser,hide", "elm");
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_block_number_detail_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *entry = (Evas_Object *)data;
+
+ elm_entry_entry_set(entry, "");
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_block_number_detail_phonui_ug_result_cb(ui_gadget_h ug, service_h result, void *priv)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !result);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !priv);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)priv;
+
+ int contact_index = 0;
+ int person_index = 0;
+ int num_id = 0;
+ int ct_ret = CTS_SUCCESS;
+ char *number_str = NULL;
+ char *service_val = NULL;
+ MSG_BOOL bInvalidNum = FALSE;
+ MSG_BOOL isContactId = FALSE;
+
+ service_get_extra_data(result, CT_UG_BUNDLE_RESULT_NUMBER_ID, &service_val);
+
+ if (service_val) {
+ num_id = atoi(service_val);
+ isContactId = TRUE;
+ } else {
+ /* phonelog id list*/
+ service_get_extra_data(result, "plog_id", &service_val);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !service_val);
+
+ num_id = atoi(service_val);
+ }
+
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, num_id <= 0);
+
+ if (isContactId) {
+ /* contact id list */
+ CTSvalue *value = NULL;
+ CTSstruct *contact = NULL;
+
+ contact_index = contacts_svc_get_contact_value(CTS_GET_NUMBER_VALUE, num_id, &value);
+ if (contact_index <= 0) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Fail to get contact value contact_index = %d", contact_index);
+ goto ERROR_EXIT;
+ }
+
+ /* get number str */
+ number_str = strdup(contacts_svc_value_get_str(value, CTS_NUM_VAL_NUMBER_STR));
+
+ contacts_svc_value_free(value);
+ value = NULL;
+
+ /* get person id */
+ ct_ret = contacts_svc_get_contact(contact_index, &contact);
+ if (ct_ret != CTS_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "contacts_svc_get_contact is failed ct_ret = %d", ct_ret);
+ if (number_str) {
+ free(number_str);
+ number_str = NULL;
+ }
+ goto ERROR_EXIT;
+ }
+
+ ct_ret = contacts_svc_struct_get_value(contact, CTS_CF_BASE_INFO_VALUE, &value);
+ if (ct_ret != CTS_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "contacts_svc_struct_get_value is failed ct_ret = %d", ct_ret);
+ contacts_svc_struct_free(contact);
+ if (number_str) {
+ free(number_str);
+ number_str = NULL;
+ }
+ goto ERROR_EXIT;
+ }
+
+ person_index = contacts_svc_value_get_int(value, CTS_BASE_VAL_PERSON_ID_INT);
+
+ contacts_svc_value_free(value);
+ contacts_svc_struct_free(contact);
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "selected number_id = %d, contact_id = %d, person_id = %d, number = %s", num_id, contact_index, person_index, number_str);
+
+ if (number_str) {
+ if (strlen(number_str) == 0) {
+ bInvalidNum = TRUE;
+ } else {
+ elm_entry_entry_set(settingData->block_msg.block_filter_detail_entry, number_str);
+ }
+
+ free(number_str);
+ number_str = NULL;
+ } else {
+ D_EMSG("contact id %d, person id %d is unuseable !!", contact_index, person_index);
+ }
+ } else {
+ /* phonelog id list */
+ CTSvalue *plog = NULL;
+ int ret = contacts_svc_get_phonelog(num_id, &plog);
+ if (ret != CTS_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Fail to get phonlog value ret = %d", ret);
+ goto ERROR_EXIT;
+ }
+
+ number_str = strdup(contacts_svc_value_get_str(plog, CTS_PLOG_VAL_NUMBER_STR));
+ contact_index = contacts_svc_value_get_int(plog, CTS_PLOG_VAL_RELATED_ID_INT);
+
+ contacts_svc_value_free(plog);
+
+ if (number_str) {
+ if (strlen(number_str) == 0) {
+ bInvalidNum = TRUE;
+ } else {
+ elm_entry_entry_set(settingData->block_msg.block_filter_detail_entry, number_str);
+ }
+
+ free(number_str);
+ number_str = NULL;
+ }
+ }
+
+ERROR_EXIT:
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "bInvalidNum = %d", bInvalidNum);
+ if (bInvalidNum) {
+ msg_ui_setting_common_show_notify(settingData, "Invalid address!!");
+ }
+ D_LEAVE;
+}
+
+static void __msg_ui_setting_block_number_detail_ct_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ settingData->loaded_ug = msg_ui_setting_common_call_phoneui_ug(settingData, __msg_ui_setting_block_number_detail_phonui_ug_result_cb);
+}
+
+static Evas_Object *__msg_ui_setting_block_number_detail_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+
+ int sel_index = settingData->block_msg.block_filter_sel_index;
+ char filter_val[MAX_FILTER_VALUE_LEN+1] = {0,};
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "sel_index = %d", sel_index);
+
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
+ if (index == MSG_UI_SETTING_BLOCK_DETAIL_MENU_DATA) {
+ char *buf = NULL;
+ static Elm_Entry_Filter_Limit_Size block_number_limit_filter_data;
+ static Elm_Entry_Filter_Accept_Set block_number_accept_filter_data;
+
+ Evas_Object *block_filter_ly = NULL;
+ Evas_Object *block_filter_entry = NULL;
+ Evas_Object *ct_ly;
+ Evas_Object *ct_button;
+ Evas_Object *icon;
+
+ ct_ly = elm_layout_add(obj);
+ elm_layout_file_set(ct_ly, MSG_SETTING_THEME, "editfield_layout_with_contact_button");
+
+ block_filter_ly = elm_layout_add(obj);
+ if (block_filter_ly == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "block_filter_ly failed");
+ return NULL;
+ }
+ elm_layout_theme_set(block_filter_ly, "layout", "editfield", "title");
+ elm_object_part_content_set(ct_ly, "elm.swallow.content", block_filter_ly);
+ settingData->block_msg.block_filter_detail_entry_ly = block_filter_ly;
+
+ block_filter_entry = elm_entry_add(block_filter_ly);
+ if (block_filter_entry == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "block_filter_entry failed");
+ return NULL;
+ }
+ elm_entry_single_line_set(block_filter_entry, EINA_TRUE);
+ elm_entry_scrollable_set(block_filter_entry, EINA_TRUE);
+ elm_entry_autocapital_type_set(block_filter_entry, ELM_AUTOCAPITAL_TYPE_NONE);
+ elm_entry_input_panel_layout_set(block_filter_entry, ELM_INPUT_PANEL_LAYOUT_PHONENUMBER);
+ settingData->block_msg.block_filter_detail_entry = block_filter_entry;
+
+ evas_object_smart_callback_add(block_filter_entry, "changed", __msg_ui_setting_block_number_detail_entry_changed_cb, (void *)settingData);
+ evas_object_smart_callback_add(block_filter_entry, "preedit,changed", __msg_ui_setting_block_number_detail_entry_changed_cb, (void *)settingData);
+ evas_object_smart_callback_add(block_filter_entry, "focused", __msg_ui_setting_block_number_detail_entry_focus_cb, (void *)block_filter_ly);
+ evas_object_smart_callback_add(block_filter_entry, "unfocused", __msg_ui_setting_block_number_detail_entry_unfocus_cb, (void *)block_filter_ly);
+ elm_object_signal_callback_add(block_filter_ly, "elm,eraser,clicked", "elm", __msg_ui_setting_block_number_detail_eraser_clicked_cb, (void *)block_filter_entry);
+
+ /* Before giving focus to the entry object, the entry object should be shown. */
+ evas_object_show(block_filter_entry);
+ elm_object_part_content_set(block_filter_ly, "elm.swallow.content", block_filter_entry);
+ elm_object_part_text_set(block_filter_ly, "elm.text", "Enter number");
+
+ block_number_limit_filter_data.max_char_count = 0;
+ block_number_limit_filter_data.max_byte_count = MAX_FILTER_VALUE_LEN;
+ elm_entry_markup_filter_append(block_filter_entry, elm_entry_filter_limit_size, &block_number_limit_filter_data);
+
+ /* If '*', '#', 'P' are inputed, it will be ignored. */
+ block_number_accept_filter_data.accepted = "*+#0123456789";
+ block_number_accept_filter_data.rejected = NULL;
+ elm_entry_markup_filter_append(block_filter_entry, elm_entry_filter_accept_set, &block_number_accept_filter_data);
+ elm_entry_cnp_mode_set(block_filter_entry, ELM_CNP_MODE_PLAINTEXT);
+
+ /* Set data only in edit case. */
+ if (sel_index != MSG_UI_SETTING_BLOCKED_DETAIL_CREATE) {
+ msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[sel_index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+ if (strlen(filter_val) > 0) {
+ buf = elm_entry_utf8_to_markup(filter_val);
+ elm_entry_entry_set(block_filter_entry, buf);
+ if (buf != NULL) {
+ free(buf);
+ buf = NULL;
+ }
+ }
+ }
+
+ elm_object_focus_set(settingData->block_msg.block_filter_detail_entry, EINA_TRUE);
+ elm_entry_cursor_end_set(block_filter_entry);
+
+ ct_button = elm_button_add(ct_ly);
+ elm_object_theme_set(ct_button, settingData->th);
+ elm_object_style_set(ct_button, "circle/contact_button");
+
+ icon = elm_icon_add(ct_button);
+ elm_icon_file_set(icon, MSGC_IMG_CONTACT_BUTTON_ICON, NULL);
+ elm_object_part_content_set(ct_button, "icon", icon);
+
+ elm_object_part_content_set(ct_ly, "ct_button", ct_button);
+ evas_object_smart_callback_add(ct_button, "clicked", __msg_ui_setting_block_number_detail_ct_btn_clicked_cb, settingData);
+
+ return ct_ly;
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Nothing to do.");
+ }
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *__msg_ui_setting_block_number_create_detail_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *detail_genlist;
+
+ Elm_Object_Item *it = NULL;
+
+ int index = 0;
+
+ detail_genlist = msg_ui_setting_common_create_genlist(parent);
+ settingData->block_msg.block_filter_detail_genlist = detail_genlist;
+
+ msg_ui_setting_common_append_genlist_separator(detail_genlist, settingData);
+
+ settingData->block_msg.block_filter_detail_1icon_itc.item_style = "dialogue/1icon";
+ settingData->block_msg.block_filter_detail_1icon_itc.func.text_get = NULL;
+ settingData->block_msg.block_filter_detail_1icon_itc.func.content_get = __msg_ui_setting_block_number_detail_gl_content_get;
+ settingData->block_msg.block_filter_detail_1icon_itc.func.state_get = NULL;
+ settingData->block_msg.block_filter_detail_1icon_itc.func.del = NULL;
+
+ settingData->block_msg.block_filter_detail_2line_1icon_itc.item_style = "dialogue/2text.3/expandable";
+ settingData->block_msg.block_filter_detail_2line_1icon_itc.func.text_get = __msg_ui_setting_block_number_detail_gl_text_get;
+ settingData->block_msg.block_filter_detail_2line_1icon_itc.func.content_get = NULL;
+ settingData->block_msg.block_filter_detail_2line_1icon_itc.func.state_get = NULL;
+ settingData->block_msg.block_filter_detail_2line_1icon_itc.func.del = NULL;
+
+ elm_genlist_item_append(detail_genlist, &settingData->block_msg.block_filter_detail_1icon_itc,
+ (void *)index, NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, (void *)index);
+ index++;
+
+ it = elm_genlist_item_append(detail_genlist, &settingData->block_msg.block_filter_detail_2line_1icon_itc,
+ (void *)index, NULL, ELM_GENLIST_ITEM_TREE,
+ __msg_ui_setting_block_number_match_criteria_gl_sel, (void *)index);
+
+ settingData->block_msg.block_filter_detail_match_criteria_item = it;
+
+ evas_object_smart_callback_add(detail_genlist, "expanded", __msg_ui_setting_block_number_match_criteria_gl_exp, settingData);
+ evas_object_smart_callback_add(detail_genlist, "contracted", __msg_ui_setting_block_number_match_criteria_gl_con, settingData);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return detail_genlist;
+}
+
+static void __msg_ui_setting_block_number_detail_trans_finished(void *data, Evas_Object *obj, void *event_info)
+{
+ /* Enable pushing the prev button. */
+ elm_naviframe_prev_btn_auto_pushed_set(obj, EINA_TRUE);
+
+ evas_object_smart_callback_del(obj, "transition,finished", \
+ __msg_ui_setting_block_number_detail_trans_finished);
+}
+
+static void __msg_ui_setting_block_number_detail_save(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ char *buf = NULL;
+ int index;
+ msg_error_t err = MSG_SUCCESS;
+ int filter_id = 0;
+ char filter_val[MAX_FILTER_VALUE_LEN+1] = {0, };
+ int db_criteria = -1;
+ char db_str[MAX_FILTER_VALUE_LEN+1] = {0, };
+ int total_cnt = 0;
+ int filter_type = -1;
+ int i = 0;
+
+ msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+ index = settingData->block_msg.block_filter_sel_index;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->block_msg.block_filter_detail_entry));
+
+ /* If input strings are composed of only space, it isn't saved. */
+ if (!buf || strlen(g_strstrip(buf)) == 0) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "No value");
+ goto block_filter_detail_exist;
+ }
+
+ /* Check whether value is existed or not. */
+ total_cnt = settingData->block_msg.filterList.nCount;
+ for (i = 0; i < total_cnt; i++) {
+ if (index == i)
+ continue;
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+ if (filter_type != MSG_FILTER_BY_WORD) {
+ msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_VALUE_STR, db_str, sizeof(db_str));
+ if (strcmp(db_str, buf) == 0) {
+ status_message_post(dgettext(MESSAGE_PKGNAME, "Same Number Exist !"));
+ goto block_filter_detail_exist;
+ }
+ }
+ }
+
+ /* Check whether value is changed or not. */
+ if (index != MSG_UI_SETTING_BLOCKED_DETAIL_CREATE) {
+ err = msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+ if (filter_val[0] != '\0') {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &db_criteria);
+ if (strcmp(filter_val, buf) == 0 && settingData->block_msg.match_criteria == db_criteria) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Value is not changed.");
+ goto block_filter_detail_exit;
+ }
+ }
+ }
+
+ memset(filter_val, 0x0, sizeof(filter_val));
+ strncpy(filter_val, buf, MAX_FILTER_VALUE_LEN);
+
+ /* Save Match Criteria selected value. */
+ err = msg_set_int_value(filter, MSG_FILTER_TYPE_INT, settingData->block_msg.match_criteria);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_int_value(MSG_FILTER_TYPE_INT) is failed : err = %d", err);
+ goto block_filter_detail_exist;
+ }
+
+ err = msg_set_str_value(filter, MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_str_value(MSG_FILTER_VALUE_STR) is failed : err = %d", err);
+ goto block_filter_detail_exist;
+ }
+
+ if (index == MSG_UI_SETTING_BLOCKED_DETAIL_CREATE) {
+ err = msg_add_filter(settingData->msgHandle, filter);
+ if (err != MSG_SUCCESS)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_add_filter() is failed : err = %d", err);
+ } else {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_ID_INT, &filter_id);
+ if (err != MSG_SUCCESS)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_get_int_value() (filter_id) is failed : err = %d", err);
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "filterID = %d", filter_id);
+ msg_set_int_value(filter, MSG_FILTER_ID_INT, filter_id);
+
+ err = msg_update_filter(settingData->msgHandle, filter);
+ if (err != MSG_SUCCESS)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_update_filter() is failed : err = %d", err);
+ }
+
+ if (err == MSG_ERR_FILTER_DUPLICATED) {
+ msg_ui_setting_common_show_popup(settingData, dgettext(MESSAGE_PKGNAME, "Number is duplicated."));
+ }
+
+ __msg_ui_setting_block_number_update_view(settingData);
+
+
+block_filter_detail_exit:
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+block_filter_detail_exist:
+ if (buf)
+ free(buf);
+
+ if (filter)
+ msg_release_struct(&filter);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_block_number_detail_done_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ __msg_ui_setting_block_number_detail_save(settingData);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_setting_block_number_detail_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+}
+
+static void __msg_ui_setting_block_number_detail_view(void *data, int index)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Evas_Object *detail_layout;
+ Evas_Object *detail_genlist;
+
+ Elm_Object_Item *navi_it;
+
+ char title[DEF_BUF_LEN_S] = {0, };
+
+ Evas_Object *title_left_btn;
+ Evas_Object *title_right_btn;
+
+ if (index == MSG_UI_SETTING_BLOCKED_DETAIL_CREATE) {
+ settingData->block_msg.match_criteria = MSG_FILTER_BY_ADDRESS_SAME;
+ } else {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &((settingData->block_msg).match_criteria));
+ }
+
+ settingData->block_msg.block_filter_sel_index = index;
+
+ detail_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
+
+ detail_genlist = __msg_ui_setting_block_number_create_detail_genlist(settingData->navi_frame, settingData);
+ elm_object_part_content_set(detail_layout, "elm.swallow.content", detail_genlist);
+
+ if (index == MSG_UI_SETTING_BLOCKED_DETAIL_CREATE)
+ strncpy(title, dgettext(MESSAGE_PKGNAME, title_menu_its[0].name), sizeof(title)-1);
+ else
+ strncpy(title, dgettext(MESSAGE_PKGNAME, title_menu_its[1].name), sizeof(title)-1);
+
+ /* Disable pushing the prev button automatically. */
+ elm_naviframe_prev_btn_auto_pushed_set(settingData->navi_frame, EINA_FALSE);
+ evas_object_smart_callback_add(settingData->navi_frame, "transition,finished", \
+ __msg_ui_setting_block_number_detail_trans_finished, NULL);
+
+ navi_it = elm_naviframe_item_push(settingData->navi_frame, title, NULL, NULL, detail_layout, NULL);
+
+ title_left_btn = msg_ui_setting_common_create_title_btn(settingData->navi_frame, \
+ dgettext("sys_string", "IDS_COM_SK_DONE"), \
+ __msg_ui_setting_block_number_detail_done_btn_cb, (void *)settingData);
+ elm_object_item_part_content_set(navi_it, "title_left_btn", title_left_btn);
+ settingData->block_msg.block_filter_detail_done_btn = title_left_btn;
+
+ title_right_btn = msg_ui_setting_common_create_title_btn(settingData->navi_frame, \
+ dgettext("sys_string", "IDS_COM_SK_CANCEL"), \
+ __msg_ui_setting_block_number_detail_cancel_btn_cb, (void *)settingData);
+ elm_object_item_part_content_set(navi_it, "title_right_btn", title_right_btn);
+
+ if (index == MSG_UI_SETTING_BLOCKED_DETAIL_CREATE)
+ elm_object_disabled_set(title_left_btn, EINA_TRUE);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+
+/********************************
+ *** Block filter main view ***
+ ********************************/
+
+static char *__msg_ui_setting_block_number_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ msg_error_t err = MSG_SUCCESS;
+ char filter_val[MAX_FILTER_VALUE_LEN] = {0,};
+ int matchCriteria = -1;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ err = msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+ if (filter_val[0] != '\0')
+ return strdup(filter_val);
+ } else if (!strcmp(part, "elm.text.sub") || !strcmp(part, "elm.text.2")) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &matchCriteria);
+
+ if (matchCriteria == MSG_FILTER_BY_ADDRESS_SAME)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[0].name));
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_START)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[1].name));
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_INCLUDE)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[2].name));
+ else
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Match Criteria get fail = %d", matchCriteria);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_block_number_gl_dialogue_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ msg_error_t err = MSG_SUCCESS;
+ Eina_Bool filter_active = EINA_FALSE;
+ int filter_id = 0;
+ void *cur_index = NULL;
+ int index = -1;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ cur_index = evas_object_data_get(obj, "cur_index_on/off");
+ index = (int)cur_index;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "cur_index_on/off = %d", index);
+
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, index);
+ filter_active = list_data->number_reject_chk_state;
+
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_ID_INT, &filter_id);
+
+ /* Set the filter_active on/off database*/
+ msg_set_filter_active(settingData->msgHandle, (msg_filter_id_t)filter_id, (bool)filter_active);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "filter_active = %d", filter_active);
+
+ /* Set the bool value for sync with database */
+ err = msg_set_bool_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_ACTIVE_BOOL, (bool)filter_active);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_filter_active(MSG_FILTER_ACTIVE_BOOL) is failed : err = %d", err);
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *__msg_ui_setting_block_number_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ Evas_Object *check;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ bool filter_active = false;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ check = elm_check_add(obj);
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, index);
+ elm_check_state_pointer_set(check, &list_data->number_reject_chk_state);
+ evas_object_data_set(check, "cur_index_on/off", data);
+
+ msg_get_bool_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_ACTIVE_BOOL, &filter_active);
+
+ if (filter_active == true)
+ elm_check_state_set(check, EINA_TRUE);
+ else
+ elm_check_state_set(check, EINA_FALSE);
+
+ elm_object_style_set(check, "on&off");
+
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_smart_callback_add(check, "changed", __msg_ui_setting_block_number_gl_dialogue_clicked_cb, settingData);
+
+ return check;
+}
+
+static void __msg_ui_setting_block_number_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ __msg_ui_setting_block_number_detail_view(settingData, index);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *__msg_ui_setting_create_block_number_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *block_filter_genlist;
+
+ int index = 0;
+ int filter_type = 0;
+ int total_cnt = 0;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ block_filter_genlist = msg_ui_setting_common_create_genlist(parent);
+ settingData->block_msg.block_filter_genlist = block_filter_genlist;
+
+ msg_ui_setting_common_append_genlist_separator(block_filter_genlist, settingData);
+
+ settingData->block_msg.block_filter_itc.item_style = "dialogue/2text.1icon.6";
+ settingData->block_msg.block_filter_itc.func.text_get = __msg_ui_setting_block_number_gl_text_get;
+ settingData->block_msg.block_filter_itc.func.content_get = __msg_ui_setting_block_number_gl_content_get;
+ settingData->block_msg.block_filter_itc.func.state_get = NULL;
+ settingData->block_msg.block_filter_itc.func.del = NULL;
+ settingData->block_msg.block_filter_itc.decorate_all_item_style = "dialogue/edit";
+
+ for (index = 0; index < total_cnt; index++) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &filter_type);
+
+ if (filter_type != MSG_FILTER_BY_WORD) {
+ elm_genlist_item_append(block_filter_genlist, &settingData->block_msg.block_filter_itc, (void *)index,
+ NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_block_number_gl_sel, (void *)index);
+ }
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return block_filter_genlist;
+}
+
+static void __msg_ui_setting_block_number_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Go to detail view. */
+ __msg_ui_setting_block_number_detail_view(settingData, MSG_UI_SETTING_BLOCKED_DETAIL_CREATE);
+
+}
+
+static void __msg_ui_setting_block_number_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Go to block filter delete view. */
+ __msg_ui_setting_block_number_delete_view(settingData);
+
+}
+
+static void __msg_ui_setting_block_number_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ EINA_LIST_FREE(settingData->block_msg.block_filter_chk_state_list, list_data) {
+ if (list_data)
+ free(list_data);
+ }
+
+ msg_release_list_struct(&settingData->block_msg.filterList);
+ memset(&settingData->block_msg, 0x0, sizeof(MSG_UI_SETTING_FILTER_S));
+}
+
+
+/********************************
+ *** Block filter main delete view ***
+ ********************************/
+
+static char *__msg_ui_setting_block_number_delete_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ msg_error_t err = MSG_SUCCESS;
+ char filter_val[MAX_FILTER_VALUE_LEN] = {0,};
+ int matchCriteria = -1;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ err = msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+ if (filter_val[0] != '\0')
+ return strdup(filter_val);
+ } else if (!strcmp(part, "elm.text.sub") || !strcmp(part, "elm.text.2")) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &matchCriteria);
+
+ if (matchCriteria == MSG_FILTER_BY_ADDRESS_SAME)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[0].name));
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_START)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[1].name));
+ else if (matchCriteria == MSG_FILTER_BY_ADDRESS_INCLUDE)
+ return strdup(dgettext(MESSAGE_PKGNAME, match_criteria_mode_menu_its[2].name));
+ else
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Match Criteria get fail = %d", matchCriteria);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_block_number_delete_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ int count = 0;
+ int total_cnt = 0;
+ int addr_cnt = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+ Eina_List *l = NULL;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+ addr_cnt = settingData->block_msg.addr_cnt;
+
+ if (total_cnt != 0) {
+ EINA_LIST_FOREACH(settingData->block_msg.block_filter_chk_state_list, l, list_data) {
+ if (list_data) {
+ if (list_data->block_filter_chk_state == TRUE) {
+ count++;
+ }
+ }
+ }
+ }
+
+ if (count == addr_cnt) {
+ if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_TRUE) {
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_TRUE;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ }
+ } else {
+ if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_FALSE) {
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ }
+ }
+
+ if (count == 0) {
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, NULL, settingData);
+ } else {
+ char str[DEF_BUF_LEN_S] = {0, };
+
+ snprintf(str, sizeof(str), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_SPACE_SELECTED"), count);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, str, settingData);
+ }
+
+ if (count == 0)
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
+ else
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_FALSE);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *__msg_ui_setting_number_delete_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ Evas_Object *check;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ check = elm_check_add(obj);
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, index);
+ elm_check_state_pointer_set(check, &list_data->block_filter_chk_state);
+ evas_object_data_set(check, "cur_index_delete_chk", data);
+
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_smart_callback_add(check, "changed", __msg_ui_setting_block_number_delete_gl_check_clicked_cb, settingData);
+
+ return check;
+}
+
+static void __msg_ui_setting_number_delete_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ int count = 0;
+ int total_cnt = 0;
+ int addr_cnt = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+ Eina_List *l = NULL;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+ addr_cnt = settingData->block_msg.addr_cnt;
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, index);
+ list_data->block_filter_chk_state = !list_data->block_filter_chk_state;
+
+ if (total_cnt != 0) {
+ EINA_LIST_FOREACH(settingData->block_msg.block_filter_chk_state_list, l, list_data) {
+ if (list_data) {
+ if (list_data->block_filter_chk_state == TRUE) {
+ count++;
+ }
+ }
+ }
+ }
+
+ if (count == addr_cnt) {
+ if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_TRUE) {
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_TRUE;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ }
+ } else {
+ if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_FALSE) {
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ }
+ }
+
+ elm_genlist_item_fields_update((Elm_Object_Item *)event_info, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+ elm_genlist_realized_items_update(settingData->block_msg.delete_genlist);
+
+ if (count == 0) {
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, NULL, settingData);
+ } else {
+ char str[DEF_BUF_LEN_S] = {0, };
+
+ snprintf(str, sizeof(str), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_SPACE_SELECTED"), count);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, str, settingData);
+ }
+
+ if (count == 0)
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
+ else
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_FALSE);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *__msg_ui_setting_create_number_delete_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = 0;
+ int total_cnt = 0;
+ int filter_type;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ Evas_Object *delete_genlist;
+
+ delete_genlist = elm_genlist_add(parent);
+ evas_object_size_hint_weight_set(delete_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(delete_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ settingData->block_msg.delete_genlist = delete_genlist;
+
+ settingData->block_msg.block_filter_itc.item_style = "2text.1icon.8";
+ settingData->block_msg.block_filter_itc.func.text_get = __msg_ui_setting_block_number_delete_gl_text_get;
+ settingData->block_msg.block_filter_itc.func.content_get = __msg_ui_setting_number_delete_gl_content_get;
+ settingData->block_msg.block_filter_itc.func.state_get = NULL;
+ settingData->block_msg.block_filter_itc.func.del = NULL;
+ settingData->block_msg.block_filter_itc.decorate_all_item_style = "edit";
+
+ for (index = 0; index < total_cnt; index++) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &filter_type);
+
+ if (filter_type != MSG_FILTER_BY_WORD) {
+ elm_genlist_item_append(delete_genlist, &settingData->block_msg.block_filter_itc, (void *)index,
+ NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_number_delete_gl_sel, (void *)index);
+ }
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return delete_genlist;
+}
+
+static void __msg_ui_setting_block_number_check_select_all(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Eina_Bool sel_all_state = EINA_FALSE;
+ int i = 0;
+ int total_cnt = 0;
+ int filter_type;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ sel_all_state = settingData->block_msg.block_filter_chk_sel_all_state;
+
+ for (i = 0; i < total_cnt; i++) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+
+ if (filter_type != MSG_FILTER_BY_WORD) {
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, i);
+ list_data->block_filter_chk_state = sel_all_state;
+ }
+ }
+
+ elm_genlist_realized_items_update(settingData->block_msg.delete_genlist);
+
+ if (sel_all_state == EINA_TRUE) {
+ char str[DEF_BUF_LEN_S] = {0, };
+
+ snprintf(str, sizeof(str), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_SPACE_SELECTED"), settingData->block_msg.addr_cnt);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, str, settingData);
+ } else {
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, NULL, settingData);
+ }
+
+ if (sel_all_state == EINA_TRUE)
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_FALSE);
+ else
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
+}
+
+static void __msg_ui_setting_block_number_sel_all_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ settingData->block_msg.block_filter_chk_sel_all_state = !settingData->block_msg.block_filter_chk_sel_all_state;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+
+ __msg_ui_setting_block_number_check_select_all(settingData);
+}
+
+static void __msg_ui_setting_block_number_sel_all_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "sel_all_chk_state = [%d]", settingData->block_msg.block_filter_chk_sel_all_state);
+
+ __msg_ui_setting_block_number_check_select_all(data);
+}
+
+static void __msg_ui_setting_block_number_delete_mode_exit(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ __msg_ui_setting_block_number_update_view(settingData);
+
+ if (settingData->block_msg.delete_genlist) {
+ evas_object_del(settingData->block_msg.delete_genlist);
+ settingData->block_msg.delete_genlist = NULL;
+ }
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ return;
+}
+
+static void __msg_ui_setting_block_number_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ int index = 0;
+ int total_cnt = 0;
+ int filter_id = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+ Eina_List *l = NULL;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ /* Delete selected filter item. */
+ if (total_cnt != 0) {
+ EINA_LIST_FOREACH(settingData->block_msg.block_filter_chk_state_list, l, list_data) {
+ if (list_data) {
+ if (list_data->block_filter_chk_state == EINA_TRUE) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_ID_INT, &filter_id);
+ if (list_data->filter_id == filter_id) {
+ msg_delete_filter(settingData->msgHandle, (msg_filter_id_t)filter_id);
+ settingData->block_msg.block_filter_chk_state_list = eina_list_remove(settingData->block_msg.block_filter_chk_state_list, (const void *)list_data);
+ free(list_data);
+ }
+ }
+ }
+ index++;
+ }
+ }
+
+ __msg_ui_setting_block_number_delete_mode_exit(settingData);
+
+}
+
+static void __msg_ui_setting_block_number_delete_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Cancel block filter deletion. */
+ __msg_ui_setting_block_number_delete_mode_exit(settingData);
+}
+
+static void __msg_ui_setting_block_number_delete_view_controlbar(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ Elm_Object_Item *ctrl_btn[MAX_SETTING_CTRLBAR_BUTTON];
+ int i = 0;
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ for (i = 0; i < MAX_SETTING_CTRLBAR_BUTTON; i++) {
+ if (settingData->block_msg.ctrl_btn[i] != NULL) {
+ elm_object_item_del(settingData->block_msg.ctrl_btn[i]);
+ settingData->block_msg.ctrl_btn[i] = NULL;
+ }
+ }
+
+ ctrl_btn[0] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, \
+ MSG_CONTROLBAR_ICON_DELETE, NULL, \
+ __msg_ui_setting_block_number_delete_btn_clicked_cb, \
+ (void *)settingData);
+ settingData->block_msg.ctrl_btn[0] = ctrl_btn[0];
+
+ ctrl_btn[1] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, NULL, NULL, NULL, NULL);
+ settingData->block_msg.ctrl_btn[1] = ctrl_btn[1];
+ elm_object_item_disabled_set(ctrl_btn[1], EINA_TRUE);
+
+ ctrl_btn[2] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, NULL, NULL, NULL, NULL);
+ settingData->block_msg.ctrl_btn[2] = ctrl_btn[2];
+ elm_object_item_disabled_set(ctrl_btn[2], EINA_TRUE);
+
+ ctrl_btn[3] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, \
+ MSG_CONTROLBAR_ICON_CANCEL, NULL, \
+ __msg_ui_setting_block_number_delete_cancel_btn_clicked_cb, \
+ (void *)settingData);
+ settingData->block_msg.ctrl_btn[3] = ctrl_btn[3];
+
+}
+
+static void __msg_ui_setting_block_number_delete_view(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Evas_Object *filter_layout_sel_all;
+ Evas_Object *filter_check_sel_all;
+
+ Evas_Object *delete_filter_box;
+ Evas_Object *delete_filter_list;
+ Elm_Object_Item *navi_it;
+ Evas_Object *ctrl_bar;
+
+ Evas_Object *delete_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
+ settingData->block_msg.delete_layout = delete_layout;
+
+ delete_filter_box = elm_box_add(settingData->navi_frame);
+ settingData->block_msg.delete_filter_box = delete_filter_box;
+ evas_object_size_hint_weight_set(delete_filter_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(delete_filter_box);
+ elm_object_part_content_set(settingData->block_msg.delete_layout, "elm.swallow.content", delete_filter_box);
+
+ delete_filter_list = __msg_ui_setting_create_number_delete_genlist(settingData->navi_frame, settingData);
+ elm_box_pack_end(delete_filter_box, delete_filter_list);
+ evas_object_show(delete_filter_list);
+
+ navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "Delete number"), NULL, NULL, delete_layout, NULL);
+
+ /* Disable back_button */
+ elm_object_item_part_content_set(navi_it, "prev_btn", NULL);
+
+ ctrl_bar = msg_ui_setting_common_create_controlbar(settingData->navi_frame);
+ settingData->block_msg.delete_ctrl_bar = ctrl_bar;
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, ctrl_bar == NULL, "ctrl_bar is NULL !!");
+
+ elm_object_item_part_content_set(navi_it, "controlbar", ctrl_bar);
+
+ __msg_ui_setting_block_number_delete_view_controlbar(settingData);
+
+ /* Append 'Select All' layout. */
+ filter_layout_sel_all = elm_layout_add(settingData->block_msg.delete_filter_box);
+ settingData->block_msg.block_filter_sel_all_layout = filter_layout_sel_all;
+ elm_layout_theme_set(filter_layout_sel_all, "genlist", "item", "select_all/default");
+ evas_object_size_hint_weight_set(filter_layout_sel_all, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+ evas_object_size_hint_align_set(filter_layout_sel_all, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_event_callback_add(filter_layout_sel_all, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_setting_block_number_sel_all_mouse_down_cb, settingData);
+
+ filter_check_sel_all = elm_check_add(filter_layout_sel_all);
+ settingData->block_msg.block_filter_chk_sel_all = filter_check_sel_all;
+ elm_check_state_pointer_set(filter_check_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ evas_object_smart_callback_add(filter_check_sel_all, "changed", __msg_ui_setting_block_number_sel_all_check_clicked_cb, settingData);
+ evas_object_propagate_events_set(filter_check_sel_all, EINA_FALSE);
+ elm_object_part_content_set(filter_layout_sel_all, "elm.icon", filter_check_sel_all);
+
+ elm_object_part_text_set(filter_layout_sel_all, "elm.text", dgettext("sys_string", "IDS_COM_BODY_SELECT_ALL"));
+ elm_box_pack_start(settingData->block_msg.delete_filter_box, filter_layout_sel_all);
+ evas_object_show(filter_layout_sel_all);
+
+ elm_genlist_decorate_mode_set(settingData->block_msg.delete_genlist, EINA_FALSE);
+ elm_genlist_select_mode_set(settingData->block_msg.delete_genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+ /* Default state of "Delete" button is disable. */
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
+}
+
+/**********************************
+ *** Block filter main ***
+ **********************************/
+
+void __msg_ui_setting_block_number_update_view(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ __msg_ui_setting_destroy_block_number_main(settingData);
+ __msg_ui_setting_init_block_number_main(settingData);
+ __msg_ui_setting_show_block_number_main(settingData);
+ __msg_ui_setting_block_number_update_controlbar(settingData);
+}
+
+void __msg_ui_setting_destroy_block_number_main(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ msg_ui_setting_common_destroy_selectioninfo(settingData);
+
+ /* Remove 'Select All' layout. */
+ if (settingData->block_msg.block_filter_sel_all_layout) {
+ elm_box_unpack(settingData->block_msg.block_filter_box, settingData->block_msg.block_filter_sel_all_layout);
+ evas_object_del(settingData->block_msg.block_filter_sel_all_layout);
+ settingData->block_msg.block_filter_sel_all_layout = NULL;
+ }
+
+ if (settingData->block_msg.block_filter_genlist) {
+ evas_object_del(settingData->block_msg.block_filter_genlist);
+ settingData->block_msg.block_filter_genlist = NULL;
+ }
+
+ if (settingData->block_msg.block_filter_box) {
+ evas_object_del(settingData->block_msg.block_filter_box);
+ settingData->block_msg.block_filter_box = NULL;
+ }
+
+ if (settingData->block_msg.block_filter_nocontents) {
+ evas_object_del(settingData->block_msg.block_filter_nocontents);
+ settingData->block_msg.block_filter_nocontents = NULL;
+ }
+
+}
+
+static void __msg_ui_setting_init_block_number_main(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ msg_error_t err = MSG_SUCCESS;
+ int total_cnt = 0;
+ int i = 0;
+ int filter_type = 0;
+ int filter_id = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ msg_release_list_struct(&settingData->block_msg.filterList);
+ err = msg_get_filter_list(settingData->msgHandle, &(settingData->block_msg.filterList));
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_get_filter_list() fail - err [%d]", err);
+ return;
+ }
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
+ settingData->block_msg.addr_cnt = 0;
+
+ EINA_LIST_FREE(settingData->block_msg.block_filter_chk_state_list, list_data) {
+ if (list_data)
+ free(list_data);
+ }
+
+ for (i = 0; i < total_cnt; i++) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_ID_INT, &filter_id);
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+ settingData->block_msg.block_filter_chk_state_list = filter_chk_list_append(settingData->block_msg.block_filter_chk_state_list, filter_id, EINA_FALSE, EINA_TRUE);
+ if (filter_type != MSG_FILTER_BY_WORD) {
+ settingData->block_msg.addr_cnt++;
+ }
+ }
+}
+
+void __msg_ui_setting_show_block_number_main(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Evas_Object *block_filter_box;
+ Evas_Object *block_filter_nocontents;
+ Evas_Object *block_filter_list;
+
+ if (settingData->block_msg.addr_cnt == 0) {
+ block_filter_nocontents = msg_ui_setting_common_create_no_content_view(settingData->block_msg.block_layout, NULL);
+ settingData->block_msg.block_filter_nocontents = block_filter_nocontents;
+ elm_object_part_content_set(settingData->block_msg.block_layout, "elm.swallow.content", block_filter_nocontents);
+ } else {
+ block_filter_box = elm_box_add(settingData->navi_frame);
+ settingData->block_msg.block_filter_box = block_filter_box;
+ evas_object_size_hint_weight_set(block_filter_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(block_filter_box);
+ elm_object_part_content_set(settingData->block_msg.block_layout, "elm.swallow.content", block_filter_box);
+
+ block_filter_list = __msg_ui_setting_create_block_number_genlist(settingData->navi_frame, settingData);
+ elm_box_pack_end(block_filter_box, block_filter_list);
+ evas_object_show(block_filter_list);
+ }
+}
+
+static void __msg_ui_setting_block_number_update_controlbar(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ Elm_Object_Item *ctrl_btn[MAX_SETTING_CTRLBAR_BUTTON];
+ int i = 0;
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ for (i = 0; i < MAX_SETTING_CTRLBAR_BUTTON; i++) {
+ if (settingData->block_msg.ctrl_btn[i] != NULL) {
+ elm_object_item_del(settingData->block_msg.ctrl_btn[i]);
+ settingData->block_msg.ctrl_btn[i] = NULL;
+ }
+ }
+
+ ctrl_btn[0] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, \
+ MSG_CONTROLBAR_ICON_CREATE, NULL, \
+ __msg_ui_setting_block_number_add_btn_clicked_cb, \
+ (void *)settingData);
+ settingData->block_msg.ctrl_btn[0] = ctrl_btn[0];
+
+ /* Add NULL button */
+ ctrl_btn[1] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, NULL, NULL, NULL, NULL);
+ settingData->block_msg.ctrl_btn[1] = ctrl_btn[1];
+ elm_object_item_disabled_set(ctrl_btn[1], EINA_TRUE);
+
+ ctrl_btn[2] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, \
+ MSG_CONTROLBAR_ICON_DELETE, NULL, \
+ __msg_ui_setting_block_number_del_btn_clicked_cb, \
+ (void *)settingData);
+ settingData->block_msg.ctrl_btn[2] = ctrl_btn[2];
+
+ /* If no item exist in block filter, delete button should be disabled. */
+ if (settingData->block_msg.addr_cnt == 0)
+ elm_object_item_disabled_set(ctrl_btn[2], EINA_TRUE);
+ else
+ elm_object_item_disabled_set(ctrl_btn[2], EINA_FALSE);
+
+ /* Add NULL button */
+ ctrl_btn[3] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, NULL, NULL, NULL, NULL);
+ settingData->block_msg.ctrl_btn[3] = ctrl_btn[3];
+ elm_object_item_disabled_set(ctrl_btn[3], EINA_TRUE);
+
+}
+
+void msg_ui_setting_spam_block_number_main(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Evas_Object *block_layout;
+ Elm_Object_Item *navi_it;
+
+ Evas_Object *ctrl_bar;
+
+ /* Init block message data. */
+ __msg_ui_setting_init_block_number_main(settingData);
+
+ block_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
+ settingData->block_msg.block_layout = block_layout;
+
+ __msg_ui_setting_show_block_number_main(settingData);
+
+ navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "Numbers to reject"), NULL, NULL, block_layout, NULL);
+
+ msg_ui_setting_common_create_back_btn(settingData->navi_frame, \
+ __msg_ui_setting_block_number_back_btn_cb, settingData);
+
+ ctrl_bar = msg_ui_setting_common_create_controlbar(settingData->navi_frame);
+ settingData->block_msg.block_ctrl_bar = ctrl_bar;
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, ctrl_bar == NULL, "ctrl_bar is NULL !!");
+
+ __msg_ui_setting_block_number_update_controlbar(settingData);
+
+ elm_object_item_part_content_set(navi_it, "controlbar", ctrl_bar);
+
+}
*/
-#include "msg-ui-setting-general-setting.h"
-
+#include "msg-ui-setting-spam-setting.h"
/*============================================================================
STATIC FUNCTION DEFINE
=============================================================================*/
-static void __msg_ui_setting_block_filter_detail_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_entry_focus_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static char *__msg_ui_setting_block_filter_detail_gl_text_get(void *data, Evas_Object *obj, const char *part);
-static Evas_Object *__msg_ui_setting_block_filter_detail_gl_content_get(void *data, Evas_Object *obj, const char *part);
-static Evas_Object *__msg_ui_setting_block_filter_create_detail_view(Evas_Object *parent, PMSG_SETTING_DATA settingData);
-static void __msg_ui_setting_block_filter_detail_save(void *data);
-static void __msg_ui_setting_block_filter_detail_popup_yes_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_popup_no_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_done_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_general_block_filter_detail_trans_finished(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_detail_main(void *data, int index);
-
-static char *__msg_ui_setting_block_filter_gl_text_get(void *data, Evas_Object *obj, const char *part);
-static void __msg_ui_setting_block_filter_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static Evas_Object *__msg_ui_setting_block_filter_gl_content_get(void *data, Evas_Object *obj, const char *part);
-static void __msg_ui_setting_block_filter_gl_sel(void *data, Evas_Object *obj, void *event_info);
-static Evas_Object *__msg_ui_setting_create_block_filter_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
-static void __msg_ui_setting_block_filter_check_select_all(void *data);
-static void __msg_ui_setting_block_filter_sel_all_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_sel_all_chk_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_filter_delete_view_update_controlbar(void *data);
-static void __msg_ui_setting_block_filter_delete_view(void *data);
-static void __msg_ui_setting_init_block_message(void *data);
-static void __msg_ui_setting_block_message_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_message_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_setting_block_message_update_controlbar(void *data);
-
+static void __msg_ui_setting_block_word_detail_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_detail_entry_focus_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_detail_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_detail_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static Evas_Object *__msg_ui_setting_block_word_detail_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_setting_block_word_create_detail_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_general_block_word_detail_trans_finished(void *data, Evas_Object *obj, void *event_info);
+static bool __msg_ui_setting_block_word_detail_exist_check(void *data);
+static void __msg_ui_setting_block_word_detail_save(void *data);
+static void __msg_ui_setting_block_word_detail_popup_yes_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_detail_popup_no_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_detail_done_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_detail_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_word_filter_detail_view(void *data, int index);
+
+static char *__msg_ui_setting_block_word_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_word_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_create_block_word_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_block_word_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
+
+static char *__msg_ui_setting_block_word_delete_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_word_delete_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_block_word_delete_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_block_word_delete_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_create_block_word_delete_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_block_word_check_select_all(void *data);
+static void __msg_ui_setting_block_word_sel_all_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_sel_all_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_delete_mode_exit(void *data);
+static void __msg_ui_setting_block_word_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_delete_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_block_word_delete_view_controlbar(void *data);
+static void __msg_ui_setting_block_word_delete_view(void *data);
+
+static void __msg_ui_setting_block_word_update_view(void *data);
+static void __msg_ui_setting_destroy_block_word_main(void *data);
+static void __msg_ui_setting_init_block_word_main(void *data);
+static void __msg_ui_setting_show_block_word_main(void *data);
+static void __msg_ui_setting_block_word_update_controlbar(void *data);
/*============================================================================
FUNCTION IMPLEMENT
*** Block filter detail view ***
**********************************/
-static void __msg_ui_setting_block_filter_detail_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
if (elm_object_focus_get(settingData->block_msg.block_filter_detail_entry_ly)) {
if (elm_entry_is_empty(obj))
- elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+ elm_object_signal_emit(settingData->block_msg.block_filter_detail_entry_ly, "elm,state,eraser,hide", "elm");
else
- elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ elm_object_signal_emit(settingData->block_msg.block_filter_detail_entry_ly, "elm,state,eraser,show", "elm");
}
buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->block_msg.block_filter_detail_entry));
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static void __msg_ui_setting_block_filter_detail_entry_focus_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_entry_focus_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static void __msg_ui_setting_block_filter_detail_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static void __msg_ui_setting_block_filter_detail_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static void __msg_ui_setting_block_word_detail_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
Evas_Object *entry = (Evas_Object *)data;
elm_entry_entry_set(entry, "");
- elm_object_signal_emit(obj, "elm,state,eraser,hide", "elm");
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static char *__msg_ui_setting_block_filter_detail_gl_text_get(void *data, Evas_Object *obj, const char *part)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- int index = (int)data;
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
-
- if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
- if (index == MSG_UI_SETTING_BLOCK_DETAIL_MENU_TITLE) {
- return strdup(dgettext(MESSAGE_PKGNAME, "Word"));
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid index = %d", index);
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
- }
-
- return NULL;
-}
-
-static Evas_Object *__msg_ui_setting_block_filter_detail_gl_content_get(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *__msg_ui_setting_block_word_detail_gl_content_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
char filter_val[MAX_FILTER_VALUE_LEN+1] = {0,};
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "ch_index = %d", sel_index);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "sel_index = %d", sel_index);
if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
if (index == MSG_UI_SETTING_BLOCK_DETAIL_MENU_DATA) {
char *buf = NULL;
static Elm_Entry_Filter_Limit_Size block_filter_limit_filter_data;
- Evas_Object *block_filter_ly;
- Evas_Object *block_filter_entry;
+ Evas_Object *block_filter_ly = NULL;
+ Evas_Object *block_filter_entry = NULL;
block_filter_ly = elm_layout_add(obj);
- elm_layout_theme_set(block_filter_ly, "layout", "editfield", "default");
- elm_object_part_text_set(block_filter_ly, "elm.guidetext", dgettext("sys_string", "IDS_COM_BODY_TAP_TO_ADD_TEXT"));
+ if (block_filter_ly == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "block_filter_ly failed");
+ return NULL;
+ }
+ elm_layout_theme_set(block_filter_ly, "layout", "editfield", "title");
settingData->block_msg.block_filter_detail_entry_ly = block_filter_ly;
block_filter_entry = elm_entry_add(block_filter_ly);
+ if (block_filter_entry == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "block_filter_entry failed");
+ return NULL;
+ }
elm_entry_single_line_set(block_filter_entry, EINA_TRUE);
elm_entry_scrollable_set(block_filter_entry, EINA_TRUE);
elm_entry_autocapital_type_set(block_filter_entry, ELM_AUTOCAPITAL_TYPE_NONE);
elm_entry_input_panel_layout_set(block_filter_entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
settingData->block_msg.block_filter_detail_entry = block_filter_entry;
- evas_object_smart_callback_add(block_filter_entry, "changed", __msg_ui_setting_block_filter_detail_entry_changed_cb, (void *)settingData);
- evas_object_smart_callback_add(block_filter_entry, "focused", __msg_ui_setting_block_filter_detail_entry_focus_cb, (void *)block_filter_ly);
- evas_object_smart_callback_add(block_filter_entry, "unfocused", __msg_ui_setting_block_filter_detail_entry_unfocus_cb, (void *)block_filter_ly);
- elm_object_signal_callback_add(block_filter_ly, "elm,eraser,clicked", "elm", __msg_ui_setting_block_filter_detail_eraser_clicked_cb, (void *)block_filter_entry);
+ evas_object_smart_callback_add(block_filter_entry, "changed", __msg_ui_setting_block_word_detail_entry_changed_cb, (void *)settingData);
+ evas_object_smart_callback_add(block_filter_entry, "preedit,changed", __msg_ui_setting_block_word_detail_entry_changed_cb, (void *)settingData);
+ evas_object_smart_callback_add(block_filter_entry, "focused", __msg_ui_setting_block_word_detail_entry_focus_cb, (void *)block_filter_ly);
+ evas_object_smart_callback_add(block_filter_entry, "unfocused", __msg_ui_setting_block_word_detail_entry_unfocus_cb, (void *)block_filter_ly);
+ elm_object_signal_callback_add(block_filter_ly, "elm,eraser,clicked", "elm", __msg_ui_setting_block_word_detail_eraser_clicked_cb, (void *)block_filter_entry);
/* Before giving focus to the entry object, the entry object should be shown. */
evas_object_show(block_filter_entry);
elm_object_part_content_set(block_filter_ly, "elm.swallow.content", block_filter_entry);
+ elm_object_part_text_set(block_filter_ly, "elm.text", "Enter word");
block_filter_limit_filter_data.max_char_count = 0;
block_filter_limit_filter_data.max_byte_count = MAX_FILTER_VALUE_LEN;
}
}
- if (settingData->block_msg.block_filter_detail_entry != NULL)
- elm_object_focus_set(settingData->block_msg.block_filter_detail_entry, EINA_TRUE);
+ elm_object_focus_set(settingData->block_msg.block_filter_detail_entry, EINA_TRUE);
+ elm_entry_cursor_end_set(block_filter_entry);
return block_filter_ly;
} else {
return NULL;
}
-static Evas_Object *__msg_ui_setting_block_filter_create_detail_view(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+static Evas_Object *__msg_ui_setting_block_word_create_detail_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
block_filter_detail_genlist = msg_ui_setting_common_create_genlist(parent);
settingData->block_msg.block_filter_detail_genlist = block_filter_detail_genlist;
- settingData->block_msg.block_filter_detail_title_itc.item_style = "dialogue/title";
- settingData->block_msg.block_filter_detail_title_itc.func.text_get = __msg_ui_setting_block_filter_detail_gl_text_get;
- settingData->block_msg.block_filter_detail_title_itc.func.content_get = NULL;
- settingData->block_msg.block_filter_detail_title_itc.func.state_get = NULL;
- settingData->block_msg.block_filter_detail_title_itc.func.del = NULL;
+ msg_ui_setting_common_append_genlist_separator(block_filter_detail_genlist, settingData);
settingData->block_msg.block_filter_detail_1icon_itc.item_style = "dialogue/1icon";
settingData->block_msg.block_filter_detail_1icon_itc.func.text_get = NULL;
- settingData->block_msg.block_filter_detail_1icon_itc.func.content_get = __msg_ui_setting_block_filter_detail_gl_content_get;
+ settingData->block_msg.block_filter_detail_1icon_itc.func.content_get = __msg_ui_setting_block_word_detail_gl_content_get;
settingData->block_msg.block_filter_detail_1icon_itc.func.state_get = NULL;
settingData->block_msg.block_filter_detail_1icon_itc.func.del = NULL;
- elm_genlist_item_append(block_filter_detail_genlist, &settingData->block_msg.block_filter_detail_title_itc,
- (void *)index, NULL, ELM_GENLIST_ITEM_NONE,
- NULL, (void *)index);
- index++;
-
elm_genlist_item_append(block_filter_detail_genlist, &settingData->block_msg.block_filter_detail_1icon_itc,
(void *)index, NULL, ELM_GENLIST_ITEM_NONE,
NULL, (void *)index);
return block_filter_detail_genlist;
}
-static void __msg_ui_setting_block_filter_detail_save(void *data)
+static void __msg_ui_setting_general_block_word_detail_trans_finished(void *data, Evas_Object *obj, void *event_info)
+{
+ /* Enable pushing the prev button. */
+ elm_naviframe_prev_btn_auto_pushed_set(obj, EINA_TRUE);
+
+ evas_object_smart_callback_del(obj, "transition,finished", \
+ __msg_ui_setting_general_block_word_detail_trans_finished);
+}
+
+static bool __msg_ui_setting_block_word_detail_exist_check(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
char *buf = NULL;
int index;
msg_error_t err = MSG_SUCCESS;
- int filter_id = 0;
char filter_val[MAX_FILTER_VALUE_LEN+1] = {0,};
+ char db_str[MAX_FILTER_VALUE_LEN+1] = {0, };
+ int total_cnt = 0;
+ int filter_type = -1;
+ int i = 0;
+ bool is_exist = FALSE;
msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
index = settingData->block_msg.block_filter_sel_index;
goto block_filter_detail_exit;
}
+ /* Check whether value is existed or not. */
+ total_cnt = settingData->block_msg.filterList.nCount;
+ for (i = 0; i < total_cnt; i++) {
+ if (index == i)
+ continue;
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+ if (filter_type == MSG_FILTER_BY_WORD) {
+ msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_VALUE_STR, db_str, sizeof(db_str));
+ if (strcmp(db_str, buf) == 0) {
+ status_message_post(dgettext(MESSAGE_PKGNAME, "Same word Exist !"));
+ is_exist = TRUE;
+ goto block_filter_detail_exit;
+ }
+ }
+ }
+
/* Check whether value is changed or not. */
if (index != MSG_UI_SETTING_BLOCKED_DETAIL_CREATE) {
err = msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
- if (strlen(filter_val) > 0) {
+ if (filter_val[0] != '\0') {
if (strcmp(filter_val, buf) == 0) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Value is not changed.");
- goto block_filter_detail_exit;
}
}
}
- memset(filter_val, 0x0, sizeof(filter_val));
+block_filter_detail_exit:
+ if (buf)
+ free(buf);
+
+ if (filter)
+ msg_release_struct(&filter);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return is_exist;
+
+}
+
+static void __msg_ui_setting_block_word_detail_save(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ int index;
+ msg_error_t err = MSG_SUCCESS;
+ int filter_id = 0;
+ char *buf = NULL;
+ char filter_val[MAX_FILTER_VALUE_LEN+1] = {0,};
+
+ msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+ index = settingData->block_msg.block_filter_sel_index;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->block_msg.block_filter_detail_entry));
strncpy(filter_val, buf, MAX_FILTER_VALUE_LEN);
+ /* Save value. */
err = msg_set_int_value(filter, MSG_FILTER_TYPE_INT, MSG_FILTER_BY_WORD);
if (err != MSG_SUCCESS) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_int_value(MSG_FILTER_TYPE_INT) is failed : err = %d", err);
msg_ui_setting_common_show_popup(settingData, dgettext(MESSAGE_PKGNAME, "Word is duplicated."));
}
- msg_ui_setting_block_filter_update_view(settingData);
+ __msg_ui_setting_block_word_update_view(settingData);
block_filter_detail_exit:
if (buf)
if (filter)
msg_release_struct(&filter);
- elm_naviframe_item_pop(settingData->navi_frame);
-
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static void __msg_ui_setting_block_filter_detail_popup_yes_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_popup_yes_btn_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
evas_object_del(settingData->popup);
settingData->popup = NULL;
}
+ __msg_ui_setting_block_word_detail_save(settingData);
- __msg_ui_setting_block_filter_detail_save(settingData);
+ elm_naviframe_item_pop(settingData->navi_frame);
}
-static void __msg_ui_setting_block_filter_detail_popup_no_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_popup_no_btn_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
evas_object_del(settingData->popup);
settingData->popup = NULL;
}
-
- elm_naviframe_item_pop(settingData->navi_frame);
}
-
-static void __msg_ui_setting_block_filter_detail_done_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_done_btn_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
- Evas_Object *btn1;
- Evas_Object *btn2;
- /* Create a popup. */
- settingData->popup = elm_popup_add(settingData->layout_main);
- evas_object_size_hint_weight_set(settingData->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_text_set(settingData->popup, dgettext(MESSAGE_PKGNAME, "If added words are contained to received message from a person in my phonebook, the message will not be blocked. \n Continue?"));
+ if (__msg_ui_setting_block_word_detail_exist_check(settingData) == FALSE) {
+ Evas_Object *btn1;
+ Evas_Object *btn2;
+
+ /* Create a popup. */
+ settingData->popup = elm_popup_add(settingData->layout_main);
+ evas_object_size_hint_weight_set(settingData->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_text_set(settingData->popup, dgettext(MESSAGE_PKGNAME, "If added words are contained to received message from a person in my phonebook, the message will not be blocked. \n Continue?"));
- btn1 = elm_button_add(settingData->popup);
- elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_YES"));
- elm_object_part_content_set(settingData->popup, "button1", btn1);
- evas_object_smart_callback_add(btn1, "clicked", __msg_ui_setting_block_filter_detail_popup_yes_btn_cb, settingData);
+ btn1 = elm_button_add(settingData->popup);
+ elm_object_style_set(btn1, "popup_button/default");
+ elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_YES"));
+ elm_object_part_content_set(settingData->popup, "button1", btn1);
+ evas_object_smart_callback_add(btn1, "clicked", __msg_ui_setting_block_word_detail_popup_yes_btn_cb, settingData);
- btn2 = elm_button_add(settingData->popup);
- elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_NO"));
- elm_object_part_content_set(settingData->popup, "button2", btn2);
- evas_object_smart_callback_add(btn2, "clicked", __msg_ui_setting_block_filter_detail_popup_no_btn_cb, settingData);
+ btn2 = elm_button_add(settingData->popup);
+ elm_object_style_set(btn2, "popup_button/default");
+ elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_NO"));
+ elm_object_part_content_set(settingData->popup, "button2", btn2);
+ evas_object_smart_callback_add(btn2, "clicked", __msg_ui_setting_block_word_detail_popup_no_btn_cb, settingData);
- evas_object_show(settingData->popup);
+ evas_object_show(settingData->popup);
+ }
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static void __msg_ui_setting_block_filter_detail_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_detail_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
elm_naviframe_item_pop(settingData->navi_frame);
}
-static void __msg_ui_setting_general_block_filter_detail_trans_finished(void *data, Evas_Object *obj, void *event_info)
-{
- /* Enable pushing the prev button. */
- elm_naviframe_prev_btn_auto_pushed_set(obj, EINA_TRUE);
-
- evas_object_smart_callback_del(obj, "transition,finished", \
- __msg_ui_setting_general_block_filter_detail_trans_finished);
-}
-
-static void __msg_ui_setting_block_filter_detail_main(void *data, int index)
+static void __msg_ui_setting_word_filter_detail_view(void *data, int index)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
block_filter_detail_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
- block_filter_detail_genlist = __msg_ui_setting_block_filter_create_detail_view(settingData->navi_frame, settingData);
+ block_filter_detail_genlist = __msg_ui_setting_block_word_create_detail_genlist(settingData->navi_frame, settingData);
elm_object_part_content_set(block_filter_detail_layout, "elm.swallow.content", block_filter_detail_genlist);
if (index == MSG_UI_SETTING_BLOCKED_DETAIL_CREATE)
/* Disable pushing the prev button automatically. */
elm_naviframe_prev_btn_auto_pushed_set(settingData->navi_frame, EINA_FALSE);
evas_object_smart_callback_add(settingData->navi_frame, "transition,finished", \
- __msg_ui_setting_general_block_filter_detail_trans_finished, NULL);
+ __msg_ui_setting_general_block_word_detail_trans_finished, NULL);
navi_it = elm_naviframe_item_push(settingData->navi_frame, title, NULL, NULL, block_filter_detail_layout, NULL);
title_left_btn = msg_ui_setting_common_create_title_btn(settingData->navi_frame, \
dgettext("sys_string", "IDS_COM_SK_DONE"), \
- __msg_ui_setting_block_filter_detail_done_btn_cb, (void *)settingData);
+ __msg_ui_setting_block_word_detail_done_btn_cb, (void *)settingData);
elm_object_item_part_content_set(navi_it, "title_left_btn", title_left_btn);
settingData->block_msg.block_filter_detail_done_btn = title_left_btn;
title_right_btn = msg_ui_setting_common_create_title_btn(settingData->navi_frame, \
dgettext("sys_string", "IDS_COM_SK_CANCEL"), \
- __msg_ui_setting_block_filter_detail_cancel_btn_cb, (void *)settingData);
+ __msg_ui_setting_block_word_detail_cancel_btn_cb, (void *)settingData);
elm_object_item_part_content_set(navi_it, "title_right_btn", title_right_btn);
if (index == MSG_UI_SETTING_BLOCKED_DETAIL_CREATE)
*** Block filter main view ***
********************************/
-static char *__msg_ui_setting_block_filter_gl_text_get(void *data, Evas_Object *obj, const char *part)
+static char *__msg_ui_setting_block_word_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ msg_error_t err = MSG_SUCCESS;
+ char filter_val[MAX_FILTER_VALUE_LEN] = {0,};
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ err = msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+ if (filter_val[0] != '\0')
+ return strdup(filter_val);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_block_word_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ __msg_ui_setting_word_filter_detail_view(settingData, index);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *__msg_ui_setting_create_block_word_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *block_filter_genlist;
+
+ int index = 0;
+ int filter_type;
+ int total_cnt = 0;
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ block_filter_genlist = msg_ui_setting_common_create_genlist(parent);
+ settingData->block_msg.block_filter_genlist = block_filter_genlist;
+
+ msg_ui_setting_common_append_genlist_separator(block_filter_genlist, settingData);
+
+ settingData->block_msg.block_filter_itc.item_style = "dialogue/1text";
+ settingData->block_msg.block_filter_itc.func.text_get = __msg_ui_setting_block_word_gl_text_get;
+ settingData->block_msg.block_filter_itc.func.content_get = NULL;
+ settingData->block_msg.block_filter_itc.func.state_get = NULL;
+ settingData->block_msg.block_filter_itc.func.del = NULL;
+ settingData->block_msg.block_filter_itc.decorate_all_item_style = "dialogue/edit";
+
+ for (index = 0; index < total_cnt; index++) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &filter_type);
+
+ if (filter_type == MSG_FILTER_BY_WORD) {
+ elm_genlist_item_append(block_filter_genlist, &settingData->block_msg.block_filter_itc, (void *)index,
+ NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_block_word_gl_sel, (void *)index);
+ }
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return block_filter_genlist;
+}
+
+static void __msg_ui_setting_block_word_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Go to detail view. */
+ __msg_ui_setting_word_filter_detail_view(settingData, MSG_UI_SETTING_BLOCKED_DETAIL_CREATE);
+
+}
+
+static void __msg_ui_setting_block_word_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Go to block filter delete view. */
+ __msg_ui_setting_block_word_delete_view(settingData);
+
+}
+
+static void __msg_ui_setting_block_word_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ EINA_LIST_FREE(settingData->block_msg.block_filter_chk_state_list, list_data) {
+ if (list_data)
+ free(list_data);
+ }
+
+ msg_release_list_struct(&settingData->block_msg.filterList);
+ memset(&settingData->block_msg, 0x0, sizeof(MSG_UI_SETTING_FILTER_S));
+}
+
+/********************************
+ *** Block filter main delete view ***
+ ********************************/
+
+ static char *__msg_ui_setting_block_word_delete_gl_text_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
err = msg_get_str_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
- if (strlen(filter_val) > 0)
+ if (filter_val[0] != '\0')
return strdup(filter_val);
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
return NULL;
}
-static void __msg_ui_setting_block_filter_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_delete_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
- int i = 0;
int count = 0;
int total_cnt = 0;
+ int word_cnt = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+ Eina_List *l = NULL;
total_cnt = settingData->block_msg.filterList.nCount;
+ word_cnt = settingData->block_msg.word_cnt;
- for (i = 0; i < total_cnt; i++) {
- if (settingData->block_msg.block_filter_chk_state[i] == EINA_TRUE)
- count++;
+ if (total_cnt != 0) {
+ EINA_LIST_FOREACH(settingData->block_msg.block_filter_chk_state_list, l, list_data) {
+ if (list_data) {
+ if (list_data->block_filter_chk_state == TRUE) {
+ count++;
+ }
+ }
+ }
}
- if (count == total_cnt) {
+ if (count == word_cnt) {
if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_TRUE) {
settingData->block_msg.block_filter_chk_sel_all_state = EINA_TRUE;
elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
}
if (count == 0) {
- msg_ui_setting_common_show_selectioninfo(settingData->block_msg.block_layout, NULL, settingData);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, NULL, settingData);
} else {
char str[DEF_BUF_LEN_S] = {0, };
- snprintf(str, sizeof(str), dgettext("sys_string", "IDS_COM_BODY_PD_SELECTED"), count);
- msg_ui_setting_common_show_selectioninfo(settingData->block_msg.block_layout, str, settingData);
+ snprintf(str, sizeof(str), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_SPACE_SELECTED"), count);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, str, settingData);
}
if (count == 0)
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static Evas_Object *__msg_ui_setting_block_filter_gl_content_get(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *__msg_ui_setting_block_word_delete_gl_content_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
int index = (int)data;
Evas_Object *check;
PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
- if (elm_genlist_decorate_mode_get(obj)) {
- if (!strcmp(part, "elm.edit.icon.1")) {
- check = elm_check_add(obj);
- elm_check_state_pointer_set(check, &settingData->block_msg.block_filter_chk_state[index]);
-
- evas_object_propagate_events_set(check, EINA_FALSE);
- evas_object_smart_callback_add(check, "changed", __msg_ui_setting_block_filter_gl_check_clicked_cb, settingData);
+ check = elm_check_add(obj);
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, index);
+ elm_check_state_pointer_set(check, &list_data->block_filter_chk_state);
- return check;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
- }
- }
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_smart_callback_add(check, "changed", __msg_ui_setting_block_word_delete_gl_check_clicked_cb, settingData);
- return NULL;
+ return check;
}
-static void __msg_ui_setting_block_filter_gl_sel(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_delete_gl_sel(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
- int i = 0;
int count = 0;
int total_cnt = 0;
+ int word_cnt = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
+ Eina_List *l = NULL;
total_cnt = settingData->block_msg.filterList.nCount;
+ word_cnt = settingData->block_msg.word_cnt;
elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- if (elm_genlist_decorate_mode_get(obj)) {
- settingData->block_msg.block_filter_chk_state[index] = !settingData->block_msg.block_filter_chk_state[index];
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, index);
+ list_data->block_filter_chk_state = !list_data->block_filter_chk_state;
- for (i = 0; i < total_cnt; i++) {
- if (settingData->block_msg.block_filter_chk_state[i] == EINA_TRUE)
- count++;
- }
-
- if (count == total_cnt) {
- if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_TRUE) {
- settingData->block_msg.block_filter_chk_sel_all_state = EINA_TRUE;
- elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
- }
- } else {
- if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_FALSE) {
- settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
- elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ if (total_cnt != 0) {
+ EINA_LIST_FOREACH(settingData->block_msg.block_filter_chk_state_list, l, list_data) {
+ if (list_data) {
+ if (list_data->block_filter_chk_state == TRUE) {
+ count++;
+ }
}
}
+ }
- elm_genlist_item_fields_update((Elm_Object_Item *)event_info, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
-
- if (count == 0) {
- msg_ui_setting_common_show_selectioninfo(settingData->block_msg.block_layout, NULL, settingData);
- } else {
- char str[DEF_BUF_LEN_S] = {0, };
-
- snprintf(str, sizeof(str), dgettext("sys_string", "IDS_COM_BODY_PD_SELECTED"), count);
- msg_ui_setting_common_show_selectioninfo(settingData->block_msg.block_layout, str, settingData);
+ if (count == word_cnt) {
+ if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_TRUE) {
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_TRUE;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
}
+ } else {
+ if (settingData->block_msg.block_filter_chk_sel_all_state != EINA_FALSE) {
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
+ elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
+ }
+ }
- if (count == 0)
- elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
- else
- elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_FALSE);
+ elm_genlist_item_fields_update((Elm_Object_Item *)event_info, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+ elm_genlist_realized_items_update(settingData->block_msg.delete_genlist);
+ if (count == 0) {
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, NULL, settingData);
} else {
- __msg_ui_setting_block_filter_detail_main(settingData, index);
+ char str[DEF_BUF_LEN_S] = {0, };
+
+ snprintf(str, sizeof(str), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_SPACE_SELECTED"), count);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, str, settingData);
}
+ if (count == 0)
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
+ else
+ elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_FALSE);
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static Evas_Object *__msg_ui_setting_create_block_filter_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+static Evas_Object *__msg_ui_setting_create_block_word_delete_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- Evas_Object *block_filter_genlist;
-
int index = 0;
int total_cnt = 0;
+ int filter_type;
total_cnt = settingData->block_msg.filterList.nCount;
- block_filter_genlist = msg_ui_setting_common_create_genlist(parent);
- settingData->block_msg.block_filter_genlist = block_filter_genlist;
+ Evas_Object *delete_genlist;
- msg_ui_setting_common_append_genlist_separator(block_filter_genlist, settingData);
+ delete_genlist = elm_genlist_add(parent);
+ evas_object_size_hint_weight_set(delete_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(delete_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ settingData->block_msg.delete_genlist = delete_genlist;
- settingData->block_msg.block_filter_itc.item_style = "dialogue/1text";
- settingData->block_msg.block_filter_itc.func.text_get = __msg_ui_setting_block_filter_gl_text_get;
- settingData->block_msg.block_filter_itc.func.content_get = __msg_ui_setting_block_filter_gl_content_get;
+ settingData->block_msg.block_filter_itc.item_style = "1text.1icon.2";
+ settingData->block_msg.block_filter_itc.func.text_get = __msg_ui_setting_block_word_delete_gl_text_get;
+ settingData->block_msg.block_filter_itc.func.content_get = __msg_ui_setting_block_word_delete_gl_content_get;
settingData->block_msg.block_filter_itc.func.state_get = NULL;
settingData->block_msg.block_filter_itc.func.del = NULL;
- settingData->block_msg.block_filter_itc.decorate_all_item_style = "dialogue/edit";
+ settingData->block_msg.block_filter_itc.decorate_all_item_style = "edit";
for (index = 0; index < total_cnt; index++) {
- elm_genlist_item_append(block_filter_genlist, &settingData->block_msg.block_filter_itc, (void *)index,
- NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_block_filter_gl_sel, (void *)index);
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_TYPE_INT, &filter_type);
+
+ if (filter_type == MSG_FILTER_BY_WORD) {
+ elm_genlist_item_append(delete_genlist, &settingData->block_msg.block_filter_itc, (void *)index,
+ NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_block_word_delete_gl_sel, (void *)index);
+ }
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
- return block_filter_genlist;
+ return delete_genlist;
}
-static void __msg_ui_setting_block_filter_check_select_all(void *data)
+static void __msg_ui_setting_block_word_check_select_all(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
Eina_Bool sel_all_state = EINA_FALSE;
int i = 0;
int total_cnt = 0;
-
- Elm_Object_Item *it;
+ int filter_type;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data = NULL;
total_cnt = settingData->block_msg.filterList.nCount;
sel_all_state = settingData->block_msg.block_filter_chk_sel_all_state;
for (i = 0; i < total_cnt; i++) {
- settingData->block_msg.block_filter_chk_state[i] = sel_all_state;
- }
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
- /* Update all realized items. */
- it = elm_genlist_first_item_get(settingData->block_msg.block_filter_genlist);
- for (i = 0; i < total_cnt; i++) {
- elm_genlist_item_fields_update(it, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
- it = elm_genlist_item_next_get(it);
+ if (filter_type == MSG_FILTER_BY_WORD) {
+ list_data = (MSG_UI_SETTING_FILTER_LIST_S *) eina_list_nth(settingData->block_msg.block_filter_chk_state_list, i);
+ list_data->block_filter_chk_state = sel_all_state;
+ }
}
+ elm_genlist_realized_items_update(settingData->block_msg.delete_genlist);
+
if (sel_all_state == EINA_TRUE) {
char str[DEF_BUF_LEN_S] = {0, };
- snprintf(str, sizeof(str), dgettext("sys_string", "IDS_COM_BODY_PD_SELECTED"), total_cnt);
- msg_ui_setting_common_show_selectioninfo(settingData->block_msg.block_layout, str, settingData);
+ snprintf(str, sizeof(str), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_SPACE_SELECTED"), settingData->block_msg.word_cnt);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, str, settingData);
} else {
- msg_ui_setting_common_show_selectioninfo(settingData->block_msg.block_layout, NULL, settingData);
+ msg_ui_setting_common_show_selectioninfo(settingData->block_msg.delete_layout, NULL, settingData);
}
if (sel_all_state == EINA_TRUE)
elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
}
-static void __msg_ui_setting_block_filter_sel_all_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_sel_all_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
settingData->block_msg.block_filter_chk_sel_all_state = !settingData->block_msg.block_filter_chk_sel_all_state;
elm_check_state_pointer_set(settingData->block_msg.block_filter_chk_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
- __msg_ui_setting_block_filter_check_select_all(settingData);
+ __msg_ui_setting_block_word_check_select_all(settingData);
}
-static void __msg_ui_setting_block_filter_sel_all_chk_changed_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_sel_all_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "sel_all_chk_state = [%d]", settingData->block_msg.block_filter_chk_sel_all_state);
- __msg_ui_setting_block_filter_check_select_all(data);
+ __msg_ui_setting_block_word_check_select_all(data);
}
-static void __msg_ui_setting_block_filter_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_delete_mode_exit(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
- /* Cancel block filter deletion. */
- msg_ui_setting_block_message_exit_edit_mode(settingData);
+ __msg_ui_setting_block_word_update_view(settingData);
+ if (settingData->block_msg.delete_genlist) {
+ evas_object_del(settingData->block_msg.delete_genlist);
+ settingData->block_msg.delete_genlist = NULL;
+ }
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ return;
}
-static void __msg_ui_setting_block_filter_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_block_word_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
- int i = 0;
+ int index = 0;
int total_cnt = 0;
int filter_id = 0;
- msg_error_t err = MSG_SUCCESS;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data;
+ Eina_List *l = NULL;
total_cnt = settingData->block_msg.filterList.nCount;
/* Delete selected filter item. */
- for (i = 0; i < total_cnt; i++) {
- if (settingData->block_msg.block_filter_chk_state[i] == EINA_TRUE) {
- err = msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_ID_INT, &filter_id);
- msg_delete_filter(settingData->msgHandle, (msg_filter_id_t)filter_id);
+ if (total_cnt != 0) {
+ EINA_LIST_FOREACH(settingData->block_msg.block_filter_chk_state_list, l, list_data) {
+ if (list_data) {
+ if (list_data->block_filter_chk_state == EINA_TRUE) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[index], MSG_FILTER_ID_INT, &filter_id);
+ if (list_data->filter_id == filter_id) {
+ msg_delete_filter(settingData->msgHandle, (msg_filter_id_t)filter_id);
+ settingData->block_msg.block_filter_chk_state_list = eina_list_remove(settingData->block_msg.block_filter_chk_state_list, (const void *)list_data);
+ free(list_data);
+ }
+ }
+ }
+ index++;
}
}
- msg_ui_setting_block_message_exit_edit_mode(settingData);
+ __msg_ui_setting_block_word_delete_mode_exit(settingData);
+
+}
+static void __msg_ui_setting_block_word_delete_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ /* Cancel block filter deletion. */
+ __msg_ui_setting_block_word_delete_mode_exit(settingData);
}
-static void __msg_ui_setting_block_filter_delete_view_update_controlbar(void *data)
+static void __msg_ui_setting_block_word_delete_view_controlbar(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
}
}
- ctrl_btn[0] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, \
+ ctrl_btn[0] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, \
MSG_CONTROLBAR_ICON_DELETE, NULL, \
- __msg_ui_setting_block_filter_delete_btn_clicked_cb, \
+ __msg_ui_setting_block_word_delete_btn_clicked_cb, \
(void *)settingData);
settingData->block_msg.ctrl_btn[0] = ctrl_btn[0];
- ctrl_btn[1] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, NULL, NULL, NULL, NULL);
+ ctrl_btn[1] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, NULL, NULL, NULL, NULL);
settingData->block_msg.ctrl_btn[1] = ctrl_btn[1];
elm_object_item_disabled_set(ctrl_btn[1], EINA_TRUE);
- ctrl_btn[2] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, NULL, NULL, NULL, NULL);
+ ctrl_btn[2] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, NULL, NULL, NULL, NULL);
settingData->block_msg.ctrl_btn[2] = ctrl_btn[2];
elm_object_item_disabled_set(ctrl_btn[2], EINA_TRUE);
- ctrl_btn[3] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, \
+ ctrl_btn[3] = elm_toolbar_item_append(settingData->block_msg.delete_ctrl_bar, \
MSG_CONTROLBAR_ICON_CANCEL, NULL, \
- __msg_ui_setting_block_filter_cancel_btn_clicked_cb, \
+ __msg_ui_setting_block_word_delete_cancel_btn_clicked_cb, \
(void *)settingData);
settingData->block_msg.ctrl_btn[3] = ctrl_btn[3];
}
-static void __msg_ui_setting_block_filter_delete_view(void *data)
+static void __msg_ui_setting_block_word_delete_view(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
Evas_Object *filter_layout_sel_all;
Evas_Object *filter_check_sel_all;
- Elm_Object_Item *it = NULL;
+ Evas_Object *delete_filter_box;
+ Evas_Object *delete_filter_list;
+ Elm_Object_Item *navi_it;
+ Evas_Object *ctrl_bar;
- if (elm_genlist_decorate_mode_get(settingData->block_msg.block_filter_genlist)) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid state : block_filter_genlist is in edit mode!!");
- return;
- }
+ Evas_Object *delete_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
+ settingData->block_msg.delete_layout = delete_layout;
+
+ delete_filter_box = elm_box_add(settingData->navi_frame);
+ settingData->block_msg.delete_filter_box = delete_filter_box;
+ evas_object_size_hint_weight_set(delete_filter_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(delete_filter_box);
+ elm_object_part_content_set(settingData->block_msg.delete_layout, "elm.swallow.content", delete_filter_box);
+
+ delete_filter_list = __msg_ui_setting_create_block_word_delete_genlist(settingData->navi_frame, settingData);
+ elm_box_pack_end(delete_filter_box, delete_filter_list);
+ evas_object_show(delete_filter_list);
+
+ navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "Delete word"), NULL, NULL, delete_layout, NULL);
/* Disable back_button */
- Elm_Object_Item *navi_it = elm_naviframe_top_item_get(settingData->navi_frame);
elm_object_item_part_content_set(navi_it, "prev_btn", NULL);
- __msg_ui_setting_block_filter_delete_view_update_controlbar(settingData);
+ ctrl_bar = msg_ui_setting_common_create_controlbar(settingData->navi_frame);
+ settingData->block_msg.delete_ctrl_bar = ctrl_bar;
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, ctrl_bar == NULL, "ctrl_bar is NULL !!");
- /* Remove dialogue separator. */
- it = elm_genlist_first_item_get(settingData->block_msg.block_filter_genlist);
- if (it)
- elm_object_item_del(it);
+ elm_object_item_part_content_set(navi_it, "controlbar", ctrl_bar);
+
+ __msg_ui_setting_block_word_delete_view_controlbar(settingData);
/* Append 'Select All' layout. */
- filter_layout_sel_all = elm_layout_add(settingData->block_msg.block_filter_box);
+ filter_layout_sel_all = elm_layout_add(settingData->block_msg.delete_filter_box);
settingData->block_msg.block_filter_sel_all_layout = filter_layout_sel_all;
elm_layout_theme_set(filter_layout_sel_all, "genlist", "item", "select_all/default");
evas_object_size_hint_weight_set(filter_layout_sel_all, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
evas_object_size_hint_align_set(filter_layout_sel_all, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_event_callback_add(filter_layout_sel_all, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_setting_block_filter_sel_all_mouse_down_cb, settingData);
+ evas_object_event_callback_add(filter_layout_sel_all, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_setting_block_word_sel_all_mouse_down_cb, settingData);
filter_check_sel_all = elm_check_add(filter_layout_sel_all);
settingData->block_msg.block_filter_chk_sel_all = filter_check_sel_all;
elm_check_state_pointer_set(filter_check_sel_all, &settingData->block_msg.block_filter_chk_sel_all_state);
- evas_object_smart_callback_add(filter_check_sel_all, "changed", __msg_ui_setting_block_filter_sel_all_chk_changed_cb, settingData);
+ evas_object_smart_callback_add(filter_check_sel_all, "changed", __msg_ui_setting_block_word_sel_all_check_clicked_cb, settingData);
evas_object_propagate_events_set(filter_check_sel_all, EINA_FALSE);
elm_object_part_content_set(filter_layout_sel_all, "elm.icon", filter_check_sel_all);
elm_object_part_text_set(filter_layout_sel_all, "elm.text", dgettext("sys_string", "IDS_COM_BODY_SELECT_ALL"));
- elm_box_pack_start(settingData->block_msg.block_filter_box, filter_layout_sel_all);
+ elm_box_pack_start(settingData->block_msg.delete_filter_box, filter_layout_sel_all);
evas_object_show(filter_layout_sel_all);
- elm_genlist_decorate_mode_set(settingData->block_msg.block_filter_genlist, EINA_TRUE);
- elm_genlist_select_mode_set(settingData->block_msg.block_filter_genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_genlist_decorate_mode_set(settingData->block_msg.delete_genlist, EINA_FALSE);
+ elm_genlist_select_mode_set(settingData->block_msg.delete_genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
/* Default state of "Delete" button is disable. */
elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
}
-static void __msg_ui_setting_init_block_message(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
- int i = 0;
- int total_cnt = 0;
- msg_error_t err = MSG_SUCCESS;
-
- msg_release_list_struct(&settingData->block_msg.filterList);
- err = msg_get_filter_list(settingData->msgHandle, &(settingData->block_msg.filterList));
- if (err != MSG_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_get_filter_list() fail - err [%d]", err);
- return;
- }
-
- total_cnt = settingData->block_msg.filterList.nCount;
-
- settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
-
- for (i = 0; i < total_cnt; i++)
- settingData->block_msg.block_filter_chk_state[i] = EINA_FALSE;
-}
-
-void msg_ui_setting_block_message_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
-
- elm_naviframe_item_pop(settingData->navi_frame);
-
- msg_release_list_struct(&settingData->block_msg.filterList);
- memset(&settingData->block_msg, 0x0, sizeof(MSG_UI_SETTING_FILTER_S));
-}
+/**********************************
+ *** Block filter main ***
+ **********************************/
-void msg_ui_setting_block_message_exit_edit_mode(void *data)
+static void __msg_ui_setting_block_word_update_view(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
- if (!elm_genlist_decorate_mode_get(settingData->block_msg.block_filter_genlist)) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Block filter list isn't in edit mode!!");
- return;
- }
-
- /* Create back button. */
- msg_ui_setting_common_create_back_btn(settingData->navi_frame, \
- msg_ui_setting_block_message_back_btn_cb, settingData);
-
- /*************************/
- /* Update option header. */
- /*************************/
- __msg_ui_setting_block_message_update_controlbar(settingData);
-
- /* Unset edit mode */
- elm_genlist_decorate_mode_set(settingData->block_msg.block_filter_genlist, EINA_FALSE);
- elm_genlist_select_mode_set(settingData->block_msg.block_filter_genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
-
- /* Update view. */
- msg_ui_setting_block_filter_update_view(settingData);
-
+ __msg_ui_setting_destroy_block_word_main(settingData);
+ __msg_ui_setting_init_block_word_main(settingData);
+ __msg_ui_setting_show_block_word_main(settingData);
+ __msg_ui_setting_block_word_update_controlbar(settingData);
}
-static void __msg_ui_setting_block_message_delete_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
-
- /* Go to block filter delete view. */
- __msg_ui_setting_block_filter_delete_view(settingData);
-
-}
-
-static void __msg_ui_setting_block_message_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
-
- /* Go to detail view. */
- __msg_ui_setting_block_filter_detail_main(settingData, MSG_UI_SETTING_BLOCKED_DETAIL_CREATE);
-
-}
-
-void msg_ui_setting_destroy_block_message(void *data)
+static void __msg_ui_setting_destroy_block_word_main(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
evas_object_del(settingData->block_msg.block_filter_nocontents);
settingData->block_msg.block_filter_nocontents = NULL;
}
+}
+
+static void __msg_ui_setting_init_block_word_main(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ msg_error_t err = MSG_SUCCESS;
+ int total_cnt = 0;
+ int i = 0;
+ int filter_type = 0;
+ int filter_id = 0;
+ MSG_UI_SETTING_FILTER_LIST_S *list_data;
+ msg_release_list_struct(&settingData->block_msg.filterList);
+ err = msg_get_filter_list(settingData->msgHandle, &(settingData->block_msg.filterList));
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_get_filter_list() fail - err [%d]", err);
+ return;
+ }
+
+ total_cnt = settingData->block_msg.filterList.nCount;
+
+ settingData->block_msg.block_filter_chk_sel_all_state = EINA_FALSE;
+ settingData->block_msg.word_cnt = 0;
+
+ EINA_LIST_FREE(settingData->block_msg.block_filter_chk_state_list, list_data) {
+ if (list_data)
+ free(list_data);
+ }
+
+ for (i = 0; i < total_cnt; i++) {
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_ID_INT, &filter_id);
+ msg_get_int_value(settingData->block_msg.filterList.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+ settingData->block_msg.block_filter_chk_state_list = filter_chk_list_append(settingData->block_msg.block_filter_chk_state_list, filter_id, EINA_FALSE, EINA_TRUE);
+ if (filter_type == MSG_FILTER_BY_WORD) {
+ settingData->block_msg.word_cnt++;
+ }
+ }
}
-void msg_ui_setting_show_block_message(void *data)
+static void __msg_ui_setting_show_block_word_main(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
Evas_Object *block_filter_nocontents;
Evas_Object *block_filter_list;
- if (settingData->block_msg.filterList.nCount == 0) {
+ if (settingData->block_msg.word_cnt == 0) {
block_filter_nocontents = msg_ui_setting_common_create_no_content_view(settingData->block_msg.block_layout, NULL);
settingData->block_msg.block_filter_nocontents = block_filter_nocontents;
elm_object_part_content_set(settingData->block_msg.block_layout, "elm.swallow.content", block_filter_nocontents);
evas_object_show(block_filter_box);
elm_object_part_content_set(settingData->block_msg.block_layout, "elm.swallow.content", block_filter_box);
- block_filter_list = __msg_ui_setting_create_block_filter_genlist(settingData->navi_frame, settingData);
+ block_filter_list = __msg_ui_setting_create_block_word_genlist(settingData->navi_frame, settingData);
elm_box_pack_end(block_filter_box, block_filter_list);
evas_object_show(block_filter_list);
}
}
-static void __msg_ui_setting_block_message_update_controlbar(void *data)
+static void __msg_ui_setting_block_word_update_controlbar(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
}
ctrl_btn[0] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, \
- MSG_CONTROLBAR_ICON_DELETE, NULL, \
- __msg_ui_setting_block_message_delete_btn_clicked_cb, \
- (void *)settingData);
+ MSG_CONTROLBAR_ICON_CREATE, NULL, \
+ __msg_ui_setting_block_word_add_btn_clicked_cb, \
+ (void *)settingData);
settingData->block_msg.ctrl_btn[0] = ctrl_btn[0];
/* Add NULL button */
elm_object_item_disabled_set(ctrl_btn[1], EINA_TRUE);
ctrl_btn[2] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, \
- MSG_CONTROLBAR_ICON_CREATE, NULL, \
- __msg_ui_setting_block_message_add_btn_clicked_cb, \
- (void *)settingData);
+ MSG_CONTROLBAR_ICON_DELETE, NULL, \
+ __msg_ui_setting_block_word_del_btn_clicked_cb, \
+ (void *)settingData);
settingData->block_msg.ctrl_btn[2] = ctrl_btn[2];
+ /* If no item exist in block filter, delete button should be disabled. */
+ if (settingData->block_msg.word_cnt == 0)
+ elm_object_item_disabled_set(ctrl_btn[2], EINA_TRUE);
+ else
+ elm_object_item_disabled_set(ctrl_btn[2], EINA_FALSE);
+
/* Add NULL button */
ctrl_btn[3] = elm_toolbar_item_append(settingData->block_msg.block_ctrl_bar, NULL, NULL, NULL, NULL);
settingData->block_msg.ctrl_btn[3] = ctrl_btn[3];
}
-void msg_ui_setting_block_filter_update_view(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
-
- PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
-
- msg_ui_setting_destroy_block_message(settingData);
-
- __msg_ui_setting_init_block_message(settingData);
-
- msg_ui_setting_show_block_message(settingData);
-
- __msg_ui_setting_block_message_update_controlbar(settingData);
-
- if (settingData->block_msg.filterList.nCount == 0) {
- /* If no item exist in block filter, delete button should be disabled. */
- elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
- } else {
- elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_FALSE);
- }
-}
-
-void msg_ui_setting_general_block_message_main(void *data, Evas_Object *obj, void *event_info)
+void msg_ui_setting_spam_block_word_main(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
Evas_Object *block_layout;
Elm_Object_Item *navi_it;
- bool filter_set = EINA_FALSE;
-
Evas_Object *ctrl_bar;
/* Init block message data. */
- __msg_ui_setting_init_block_message(settingData);
+ __msg_ui_setting_init_block_word_main(settingData);
block_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
settingData->block_msg.block_layout = block_layout;
- /* Block should be always enabled. */
- msg_get_filter_operation(settingData->msgHandle, (bool *)&filter_set);
- if (filter_set == EINA_FALSE) {
- if (msg_set_filter_operation(settingData->msgHandle, EINA_TRUE) == MSG_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Block is enabled !!");
- }
- else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_filter_operation() is failed !!");
- }
- }
-
- msg_ui_setting_show_block_message(settingData);
+ __msg_ui_setting_show_block_word_main(settingData);
navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "Blocked word"), NULL, NULL, block_layout, NULL);
msg_ui_setting_common_create_back_btn(settingData->navi_frame, \
- msg_ui_setting_block_message_back_btn_cb, settingData);
+ __msg_ui_setting_block_word_back_btn_cb, settingData);
ctrl_bar = msg_ui_setting_common_create_controlbar(settingData->navi_frame);
settingData->block_msg.block_ctrl_bar = ctrl_bar;
MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, ctrl_bar == NULL, "ctrl_bar is NULL !!");
- __msg_ui_setting_block_message_update_controlbar(settingData);
+ __msg_ui_setting_block_word_update_controlbar(settingData);
elm_object_item_part_content_set(navi_it, "controlbar", ctrl_bar);
- /* If no item exist in block filter, delete button should be disabled. */
- if (settingData->block_msg.filterList.nCount == 0)
- elm_object_item_disabled_set(settingData->block_msg.ctrl_btn[0], EINA_TRUE);
}
--- /dev/null
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * 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://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,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "msg-ui-setting-main.h"
+#include "msg-ui-setting-spam-setting.h"
+
+
+static struct _msg_ui_setting_mixed_list_item spam_menu_its[] = {
+ { 1, "Numbers to reject", msg_ui_setting_spam_block_number_main, ELM_GENLIST_ITEM_NONE },
+ { 1, "Blocked word", msg_ui_setting_spam_block_word_main, ELM_GENLIST_ITEM_NONE },
+ /* do not delete below */
+ { 1, NULL, NULL, ELM_GENLIST_ITEM_NONE }
+};
+
+
+/*============================================================================
+ STATIC FUNCTION DEFINE
+=============================================================================*/
+static char *__msg_ui_setting_spam_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_spam_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_spam_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_spam_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+/*============================================================================
+ FUNCTION IMPLEMENT
+=============================================================================*/
+Eina_List *filter_chk_list_append(Eina_List* list, int filter_id, Eina_Bool block_filter_chk_state, Eina_Bool number_reject_chk_state)
+{
+ MSG_UI_SETTING_FILTER_LIST_S *data = NULL;
+
+ data = (MSG_UI_SETTING_FILTER_LIST_S *) malloc(sizeof(MSG_UI_SETTING_FILTER_LIST_S));
+ data->filter_id = filter_id;
+ data->block_filter_chk_state = block_filter_chk_state;
+ data->number_reject_chk_state = number_reject_chk_state;
+
+ return eina_list_append(list, (const void *)data);
+}
+
+static char *
+__msg_ui_setting_spam_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ if (spam_menu_its[index].name) {
+ if (strstr(spam_menu_its[index].name, "IDS_COM") != NULL)
+ return strdup(dgettext("sys_string", spam_menu_its[index].name));
+ else
+ return strdup(dgettext(MESSAGE_PKGNAME, spam_menu_its[index].name));
+ }
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void
+__msg_ui_setting_spam_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ if (spam_menu_its[index].func != NULL)
+ spam_menu_its[index].func(settingData, obj, event_info);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static Evas_Object *
+__msg_ui_setting_spam_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *spam_genlist;
+ int index = 0;
+
+ spam_genlist = msg_ui_setting_common_create_genlist(parent);
+ settingData->list.spam_setting.spam_genlist = spam_genlist;
+
+ msg_ui_setting_common_append_genlist_separator(spam_genlist, settingData);
+
+ settingData->list.spam_setting.spam_itc.item_style = "dialogue/1text";
+ settingData->list.spam_setting.spam_itc.func.text_get = __msg_ui_setting_spam_gl_text_get;
+ settingData->list.spam_setting.spam_itc.func.content_get = NULL;
+ settingData->list.spam_setting.spam_itc.func.state_get = NULL;
+ settingData->list.spam_setting.spam_itc.func.del = NULL;
+
+ for (index = 0; spam_menu_its[index].name; index++) {
+ elm_genlist_item_append(spam_genlist, &settingData->list.spam_setting.spam_itc, (void *)index,
+ NULL, spam_menu_its[index].type, __msg_ui_setting_spam_gl_sel, (void *)index);
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return spam_genlist;
+}
+
+static void __msg_ui_setting_spam_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+void msg_ui_setting_spam_create_view(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Evas_Object *spam_layout;
+ Evas_Object *spam_genlist;
+ Evas_Object *l_button;
+ Elm_Object_Item *navi_it;
+
+ bool filter_set = EINA_FALSE;
+
+ msg_release_struct(&(settingData->msg_setting.setting_opt));
+
+ settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+ msg_ui_setting_msg_get_config(settingData);
+
+ /* Block should be always enabled. */
+ msg_get_filter_operation(settingData->msgHandle, (bool *)&filter_set);
+ if (filter_set == EINA_FALSE) {
+ if (msg_set_filter_operation(settingData->msgHandle, EINA_TRUE) == MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Block is enabled !!");
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_filter_operation() is failed !!");
+ }
+ }
+
+ /* Initialize global variable. */
+ memset(&settingData->list.spam_setting, 0x0, sizeof(settingData->list.spam_setting));
+
+ if (obj == NULL) {
+ /* Change background color from transparent to group_list. */
+ elm_object_style_set(settingData->bg, "group_list");
+ }
+
+ spam_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
+
+ spam_genlist = __msg_ui_setting_spam_create_menu(settingData->navi_frame, settingData);
+ elm_object_part_content_set(spam_layout, "elm.swallow.content", spam_genlist);
+
+ /* Create Left Button */
+ l_button = elm_button_add(settingData->navi_frame);
+
+ navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_SPAM_MESSAGES"), l_button, NULL, spam_layout, NULL);
+
+ /* Style set should be called after elm_naviframe_item_push(). */
+ elm_object_style_set(l_button, "naviframe/back_btn/default");
+ if (obj == NULL)
+ evas_object_smart_callback_add(l_button, "clicked", msg_ui_setting_quit_cb, (void *)settingData);
+ else
+ evas_object_smart_callback_add(l_button, "clicked", __msg_ui_setting_spam_back_btn_cb, (void *)settingData);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+}
#include "msg-ui-setting-main.h"
#include "msg-ui-setting-text-message.h"
-
static struct _msg_ui_setting_mixed_list_item text_menu_its[] = {
{ 1, "IDS_MSGF_BODY_REQUEST_DELIVERY_REPORT", NULL, ELM_GENLIST_ITEM_NONE },
+ { 1, "Input mode", NULL, ELM_GENLIST_ITEM_TREE },
{ 1, "IDS_MSGF_BODY_SERVICECENTRE", msg_ui_setting_create_service_center_list, ELM_GENLIST_ITEM_NONE },
/* do not delete below */
{ 1, NULL, NULL, ELM_GENLIST_ITEM_NONE }
};
+static struct _msg_ui_setting_mixed_list_item input_mode_menu_its[] = {
+ { 2, "GSM alphabet", NULL, ELM_GENLIST_ITEM_NONE },
+ { 2, "Unicode", NULL, ELM_GENLIST_ITEM_NONE },
+ { 2, "Automatic", NULL, ELM_GENLIST_ITEM_NONE },
+ /* do not delete below */
+ { 2, NULL, NULL, ELM_GENLIST_ITEM_NONE }
+};
/*============================================================================
STATIC FUNCTION DEFINE
=============================================================================*/
+static char *__msg_ui_setting_text_input_mode_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_setting_text_input_mode_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_text_input_mode_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_input_mode_radio_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_input_mode_save(void *data);
+
+static void __msg_ui_setting_text_gl_exp(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_gl_con(void *data, Evas_Object *obj, void *event_info);
static char *__msg_ui_setting_text_gl_text_get(void *data, Evas_Object *obj, const char *part);
static void __msg_ui_setting_text_save_req_delivery_report(void *data);
static void __msg_ui_setting_text_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static Evas_Object *__msg_ui_setting_text_gl_content_get(void *data, Evas_Object *obj, const char *part);
static void __msg_ui_setting_text_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
static Evas_Object *__msg_ui_setting_text_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData);
-
/*============================================================================
FUNCTION IMPLEMENT
=============================================================================*/
+/**********************************
+ *** input mode view ***
+ **********************************/
+static char *__msg_ui_setting_text_input_mode_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ int index = (int)data;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if(index >= sizeof(input_mode_menu_its) / sizeof(input_mode_menu_its[0])) {
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+ if (input_mode_menu_its[index].name) {
+ if (strstr(input_mode_menu_its[index].name, "IDS_COM") != NULL)
+ return strdup(dgettext("sys_string", input_mode_menu_its[index].name));
+ else
+ return strdup(dgettext(MESSAGE_PKGNAME, input_mode_menu_its[index].name));
+ }
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *__msg_ui_setting_text_input_mode_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Evas_Object *radio;
+
+ PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int index = (int)data;
+ int inputMode = -1;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
+ radio = elm_radio_add(obj);
+ elm_radio_state_value_set(radio, index);
+ evas_object_propagate_events_set(radio, EINA_FALSE);
+ evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_text_input_mode_radio_cb, (void *)settingData);
+
+ elm_radio_group_add(radio, settingData->list.text_msg.text_input_mode_radio_group);
+
+ msg_get_int_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &inputMode);
+ if (inputMode == MSG_ENCODE_GSM7BIT)
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, 0);
+ else if (inputMode == MSG_ENCODE_UCS2)
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, 1);
+ else
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, 2);
+
+ return radio;
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
+ }
+
+ return NULL;
+}
+
+static void __msg_ui_setting_text_input_mode_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = NULL;
+ int index = (int)data;
+
+ settingData = msg_ui_setting_get_data();
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ /* Change radio selection. */
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, index);
+
+ __msg_ui_setting_text_input_mode_save((void *)settingData);
+
+ elm_genlist_item_update(settingData->list.text_msg.text_input_mode_item);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+ return;
+}
+
+static void __msg_ui_setting_text_input_mode_radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ __msg_ui_setting_text_input_mode_save((void *)settingData);
+
+ elm_genlist_item_update(settingData->list.text_msg.text_input_mode_item);
+}
+
+static void __msg_ui_setting_text_input_mode_save(void *data)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+ int inputMode = -1;
+ msg_error_t err = MSG_SUCCESS;
+
+ /* Save selected input mode value. */
+ inputMode = elm_radio_value_get(settingData->list.text_msg.text_input_mode_radio_group);
+
+ settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+ if (inputMode == MSG_ENCODE_GSM7BIT)
+ msg_set_int_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, MSG_ENCODE_GSM7BIT);
+ else if (inputMode == MSG_ENCODE_UCS2 - 1)
+ msg_set_int_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, MSG_ENCODE_UCS2);
+ else
+ msg_set_int_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, MSG_ENCODE_AUTO);
+
+ err = msg_ui_setting_msg_set_config(settingData);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_ui_setting_msg_set_config(input_mode) is %d", err);
+}
+
+
/************************
*** Text message menu ***
*************************/
+ static void __msg_ui_setting_text_gl_exp(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ Elm_Object_Item *it = event_info;
+ int index = 0;
+ int depth = 0;
+ int inputMode = -1;
+
+ depth = elm_genlist_item_expanded_depth_get(it);
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "depth = %d", depth);
+
+ if (depth == 0) {
+ settingData->list.text_msg.text_input_mode_itc.item_style = "dialogue/1text.1icon.2/expandable2";
+ settingData->list.text_msg.text_input_mode_itc.func.text_get = __msg_ui_setting_text_input_mode_gl_text_get;
+ settingData->list.text_msg.text_input_mode_itc.func.content_get = __msg_ui_setting_text_input_mode_gl_content_get;
+ settingData->list.text_msg.text_input_mode_itc.func.state_get = NULL;
+ settingData->list.text_msg.text_input_mode_itc.func.del = NULL;
+
+ settingData->list.text_msg.text_input_mode_radio_group = elm_radio_add(obj);
+
+ for (index = 0; input_mode_menu_its[index].name; index++) {
+ elm_genlist_item_append(settingData->list.text_msg.text_genlist,
+ &settingData->list.text_msg.text_input_mode_itc,
+ (void *)index, it, input_mode_menu_its[index].type,
+ __msg_ui_setting_text_input_mode_gl_sel, (void *)index);
+ }
-static char *
-__msg_ui_setting_text_gl_text_get(void *data, Evas_Object *obj, const char *part)
+ msg_get_int_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &inputMode);
+
+ /* Input mode current radio value set */
+ if (inputMode == MSG_ENCODE_GSM7BIT)
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, 0);
+ else if (inputMode == MSG_ENCODE_UCS2)
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, 1);
+ else
+ elm_radio_value_set(settingData->list.text_msg.text_input_mode_radio_group, 2);
+ }
+}
+
+static void __msg_ui_setting_text_gl_con(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ Elm_Object_Item *item = event_info;
+ elm_genlist_item_subitems_clear(item);
+}
+
+static char *__msg_ui_setting_text_gl_text_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
int index = (int)data;
PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+ int inputMode = -1;
msg_error_t err = MSG_SUCCESS;
int cur_index = 0;
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- err = msg_get_int_value(settingData->msg_setting.setting_opt, MSG_SMSC_SELECTED_ID_INT, &cur_index);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
+ err = msg_get_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, &cur_index);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "__msg_ui_setting_text_gl_text_get is %d", err);
- snprintf(smsc_name, sizeof(smsc_name), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CENTRE_PD"), cur_index+1);
+ char *dgetbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CENTRE_PD");
+ char *g_buf = g_strdup_printf(dgetbuf, cur_index+1);
+ strncpy(smsc_name, g_buf, sizeof(smsc_name) - 1);
+ free(g_buf);
return strdup(smsc_name);
+ } else if (index == MSG_UI_SETTING_TEXT_MENU_INPUT_MODE) {
+ msg_get_int_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &inputMode);
+ if (inputMode == MSG_ENCODE_GSM7BIT)
+ return strdup(dgettext(MESSAGE_PKGNAME, input_mode_menu_its[0].name));
+ else if (inputMode == MSG_ENCODE_UCS2)
+ return strdup(dgettext(MESSAGE_PKGNAME, input_mode_menu_its[1].name));
+ else if (inputMode == MSG_ENCODE_AUTO)
+ return strdup(dgettext(MESSAGE_PKGNAME, input_mode_menu_its[2].name));
+ else
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "input Mode fail = %d", inputMode);
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid index = %s", index);
}
return NULL;
}
-static void
-__msg_ui_setting_text_save_req_delivery_report(void *data)
+static void __msg_ui_setting_text_save_req_delivery_report(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "set_val = %d", (int)set_val);
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_set_bool_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_DELIVERY_REPORT_BOOL, set_val);
msg_ui_setting_msg_set_config(settingData);
}
-static void
-__msg_ui_setting_text_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_text_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static Evas_Object *
-__msg_ui_setting_text_gl_content_get(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *__msg_ui_setting_text_gl_content_get(void *data, Evas_Object *obj, const char *part)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
check = elm_check_add(obj);
settingData->list.text_msg.req_delivery_rep_check = check;
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
- msg_ui_setting_msg_get_config(settingData);
msg_get_bool_value(settingData->msg_setting.setting_opt, MSG_SMS_SENDOPT_DELIVERY_REPORT_BOOL, &bReport);
if (bReport == true)
return NULL;
}
-static void
-__msg_ui_setting_text_gl_sel(void *data, Evas_Object *obj, void *event_info)
+static void __msg_ui_setting_text_gl_sel(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
int index = (int)data;
+ Eina_Bool expand_state = EINA_FALSE;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, settingData == NULL, "PMSG_THREAD_DATA is NULL");
elm_check_state_set(settingData->list.text_msg.req_delivery_rep_check, !set_val);
__msg_ui_setting_text_save_req_delivery_report((void *)settingData);
+ } else if (index == MSG_UI_SETTING_TEXT_MENU_INPUT_MODE) {
+ expand_state = elm_genlist_item_expanded_get(settingData->list.text_msg.text_input_mode_item);
+ if (expand_state == EINA_FALSE)
+ elm_genlist_item_expanded_set(settingData->list.text_msg.text_input_mode_item, EINA_TRUE);
+ else
+ elm_genlist_item_expanded_set(settingData->list.text_msg.text_input_mode_item, EINA_FALSE);
} else if (index == MSG_UI_SETTING_TEXT_MENU_SMSC) {
if (text_menu_its[index].func != NULL)
text_menu_its[index].func(settingData, obj, event_info);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-static Evas_Object *
-__msg_ui_setting_text_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
+static void __msg_ui_setting_text_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, data == NULL, "PMSG_SETTING_DATA is NULL");
+
+ PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+ msg_release_struct(&(settingData->msg_setting.setting_opt));
+ msg_release_struct(&(settingData->msg_setting.smsc_opt));
+
+ elm_naviframe_item_pop(settingData->navi_frame);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+ return;
+}
+
+static Evas_Object *__msg_ui_setting_text_create_menu(Evas_Object *parent, PMSG_SETTING_DATA settingData)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
settingData->list.text_msg.text_2line_itc.func.state_get = NULL;
settingData->list.text_msg.text_2line_itc.func.del = NULL;
+ settingData->list.text_msg.text_2line_1icon_itc.item_style = "dialogue/2text.3/expandable";
+ settingData->list.text_msg.text_2line_1icon_itc.func.text_get = __msg_ui_setting_text_gl_text_get;
+ settingData->list.text_msg.text_2line_1icon_itc.func.content_get = NULL;
+ settingData->list.text_msg.text_2line_1icon_itc.func.state_get = NULL;
+ settingData->list.text_msg.text_2line_1icon_itc.func.del = NULL;
+
settingData->list.text_msg.text_1line_1icon_itc.item_style = "dialogue/1text.1icon";
settingData->list.text_msg.text_1line_1icon_itc.func.text_get = __msg_ui_setting_text_gl_text_get;
settingData->list.text_msg.text_1line_1icon_itc.func.content_get = __msg_ui_setting_text_gl_content_get;
(void *)index, NULL, text_menu_its[index].type,
__msg_ui_setting_text_gl_sel, (void *)index);
settingData->list.text_msg.service_centre_item = it;
+ } else if (index == MSG_UI_SETTING_TEXT_MENU_INPUT_MODE) {
+ it = elm_genlist_item_append(text_genlist, &settingData->list.text_msg.text_2line_1icon_itc,
+ (void *)index, NULL, ELM_GENLIST_ITEM_TREE,
+ __msg_ui_setting_text_gl_sel, (void *)index);
+ settingData->list.text_msg.text_input_mode_item = it;
} else {
elm_genlist_item_append(text_genlist, &settingData->list.text_msg.text_1line_1icon_itc, (void *)index,
NULL, text_menu_its[index].type, __msg_ui_setting_text_gl_sel, (void *)index);
}
}
+ evas_object_smart_callback_add(text_genlist, "expanded", __msg_ui_setting_text_gl_exp, settingData);
+ evas_object_smart_callback_add(text_genlist, "contracted", __msg_ui_setting_text_gl_con, settingData);
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
return text_genlist;
/* Initialize global variable. */
memset(&settingData->list.text_msg, 0x0, sizeof(settingData->list.text_msg));
+ msg_release_struct(&(settingData->msg_setting.setting_opt));
+
+ settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+ msg_ui_setting_msg_get_config(settingData);
+ settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
+ msg_ui_setting_msg_get_config(settingData);
+ msg_get_list_handle(settingData->msg_setting.smsc_opt, MSG_SMSC_LIST_STRUCT, (void **)&(settingData->msg_setting.smsc_list));
text_layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_TEXT_MESSAGES"), NULL, NULL, text_layout, NULL);
+ msg_ui_setting_common_create_back_btn(settingData->navi_frame, \
+ __msg_ui_setting_text_back_btn_cb, settingData);
+
}
Evas_Object *entry = (Evas_Object *)data;
elm_entry_entry_set(entry, "");
- elm_object_signal_emit(obj, "elm,state,eraser,hide", "elm");
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
if (index == MSG_UI_SETTING_SMSC_MENU_ADDRESS) {
- Evas_Object *smsc_addr_ly;
- Evas_Object *smsc_addr_entry;
+ Evas_Object *smsc_addr_ly = NULL;
+ Evas_Object *smsc_addr_entry = NULL;
char *buf = NULL;
char address[SMSC_NAME_MAX+1] = {0,};
static Elm_Entry_Filter_Accept_Set smsc_addr_accept_filter_data;
smsc_addr_ly = elm_layout_add(obj);
+ if (smsc_addr_ly == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "smsc_addr_ly failed");
+ return NULL;
+ }
elm_layout_theme_set(smsc_addr_ly, "layout", "editfield", "default");
smsc_addr_entry = elm_entry_add(smsc_addr_ly);
+ if (smsc_addr_entry == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "smsc_addr_entry failed");
+ return NULL;
+ }
+ elm_entry_scrollable_set(smsc_addr_entry, EINA_TRUE);
elm_entry_single_line_set(smsc_addr_entry, EINA_TRUE);
elm_entry_autocapital_type_set(smsc_addr_entry, ELM_AUTOCAPITAL_TYPE_NONE);
elm_entry_input_panel_layout_set(smsc_addr_entry, ELM_INPUT_PANEL_LAYOUT_PHONENUMBER);
elm_entry_markup_filter_append(smsc_addr_entry, elm_entry_filter_accept_set, &smsc_addr_accept_filter_data);
elm_entry_cnp_mode_set(smsc_addr_entry, ELM_CNP_MODE_PLAINTEXT);
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_list_handle(settingData->msg_setting.setting_opt, MSG_SMSC_LIST_STRUCT, (void **)&(settingData->msg_setting.smsc_list));
msg_get_str_value(settingData->msg_setting.smsc_list->msg_struct_info[center_index], MSG_SMSC_ADDR_STR, address, SMSC_ADDR_MAX);
if (strlen(address) > 0) {
buf = elm_entry_utf8_to_markup(address);
free(buf);
}
- if (settingData->list.text_msg.smsc_addr_entry != NULL)
- elm_object_focus_set(settingData->list.text_msg.smsc_addr_entry, EINA_TRUE);
-
- msg_release_struct(&(settingData->msg_setting.setting_opt));
+ elm_object_focus_set(settingData->list.text_msg.smsc_addr_entry, EINA_TRUE);
+ elm_entry_cursor_end_set(smsc_addr_entry);
return smsc_addr_ly;
} else {
addr_buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->list.text_msg.smsc_addr_entry));
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_list_handle(settingData->msg_setting.setting_opt, MSG_SMSC_LIST_STRUCT, (void **)&(settingData->msg_setting.smsc_list));
msg_get_str_value(settingData->msg_setting.smsc_list->msg_struct_info[index], MSG_SMSC_ADDR_STR, address, SMSC_ADDR_MAX);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
/* It will check whether value is changed or not. */
if (addr_buf != NULL) {
goto smsc_exit;
}
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_list_handle(settingData->msg_setting.setting_opt, MSG_SMSC_LIST_STRUCT, (void **)&(settingData->msg_setting.smsc_list));
-
strncpy(address, addr_buf, SMSC_ADDR_MAX);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "SMSC Addr = %s", address);
msg_set_str_value(settingData->msg_setting.smsc_list->msg_struct_info[index], MSG_SMSC_ADDR_STR, address, strlen(address));
smsc_genlist = __msg_ui_setting_text_create_smsc_menu(settingData->navi_frame, settingData);
elm_object_part_content_set(center_layout, "elm.swallow.content", smsc_genlist);
- snprintf(title, sizeof(title), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CENTRE_PD"), index+1);
+ char *dgetbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CENTRE_PD");
+ char *g_buf = g_strdup_printf(dgetbuf, index+1);
+ strncpy(title, g_buf, sizeof(title) - 1);
+ free(g_buf);
navi_it = elm_naviframe_item_push(settingData->navi_frame, title, NULL, NULL, center_layout, NULL);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "selected value is %d", selection);
/* Save selected value. */
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- msg_set_int_value(settingData->msg_setting.setting_opt, MSG_SMSC_SELECTED_ID_INT, selection);
+ msg_set_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, selection);
err = msg_ui_setting_msg_set_config(settingData);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_ui_setting_msg_set_config(service centre) is %d", err);
char smsc_name[MAX_SMSC_NAME_LEN + 1] = {0, };
if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
- snprintf(smsc_name, sizeof(smsc_name), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CENTRE_PD"), index+1);
+ char *dgetbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CENTRE_PD");
+ char *g_buf = g_strdup_printf(dgetbuf, index+1);
+ strncpy(smsc_name, g_buf, sizeof(smsc_name) - 1);
+ free(g_buf);
return strdup(smsc_name);
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part = %s", part);
/* Radio value should be updated when user back from service centre setting.
* If it is omitted, radio will be set to first item.
*/
- settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_SMSC_SELECTED_ID_INT, &selected);
+ msg_get_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, &selected);
if (index == selected)
elm_radio_value_set(settingData->list.text_msg.service_centre_radio_group, index);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
-
return radio;
} else if (!strcmp(part, "elm.icon.2")) {
button = elm_button_add(obj);
return;
}
-
void msg_ui_setting_create_service_center_list(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
msg_ui_setting_common_append_genlist_separator(smsc_all_genlist, settingData);
settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
- msg_ui_setting_msg_get_config(settingData);
- msg_get_list_handle(settingData->msg_setting.setting_opt, MSG_SMSC_LIST_STRUCT, (void **)&(settingData->msg_setting.smsc_list));
- msg_get_int_value(settingData->msg_setting.setting_opt, MSG_SMSC_SELECTED_ID_INT, &selected_smsc);
+
+ msg_get_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, &selected_smsc);
smsc_cnt = settingData->msg_setting.smsc_list->nCount;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "smsc_cnt = %d, selected_smsc = %d", smsc_cnt, selected_smsc);
navi_it = elm_naviframe_item_push(settingData->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_SERVICECENTRE"), NULL, NULL, smsc_layout, NULL);
- msg_release_struct(&(settingData->msg_setting.setting_opt));
-
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
--- /dev/null
+
+collections{
+
+ group
+ {
+ name: "editfield_layout_with_contact_button";
+ parts
+ {
+ part {
+ name: "base";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ fixed: 1 0;
+ max: 578 128;
+ rel1 { to: "base"; relative: 0.0 0.0; }
+ rel2 { to: "base"; relative: 1.0 1.0; }
+ }
+ }
+ part {
+ name: "ct_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ fixed: 1 1;
+ max: 64 64;
+ rel1 { to_x: "elm.swallow.content"; to_y: "base"; relative: 1.0 0.0; }
+ rel2 { to: "base"; relative: 1.0 1.0; }
+ }
+ }
+ }
+ }
+}
+