/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * 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.
+ *
*/
/**
*@defgroup setting-app
#ifndef __SETTING_H__
#define __SETTING_H__
-#include <setting-cfg.h>
-
-#include <setting-common-draw-widget.h>
#include <setting-common-view.h>
+#include <setting-common-search.h>
+
+#define EXPORT_PUBLIC __attribute__ ((visibility ("default")))
/* TAPI*/
#include <tapi_common.h>
#include <ITapiModem.h>
-#include <sensors.h>
+#include <sensor.h>
+#include <notification.h>
+#include <account.h>
+#include <app_manager.h>
+#include <efl_assist.h>
+#include <dd-display.h>
+//#include <tethering.h>
+
+#define NETCONFIG_SERVICE "net.netconfig"
+#define NETCONFIG_WIFI_INTERFACE NETCONFIG_SERVICE ".wifi"
+#define NETCONFIG_WIFI_PATH "/net/netconfig/wifi"
-#define EDIT_PREFERRED_STR "IDS_ST_BUTTON2_EDIT_PREFERRED"
-//#define PREFERRED_STR "IDS_ST_TAB_PREFERRED"
-#define PREFERRED_STR "IDS_ST_BODY_FREQUENTLY_USED"
-#define ALL_STR "IDS_ST_OPT_ALL"
-#define SETTING_MAX_PID_LEN 128
+#define FEATURE_UNAVALIABLE_WHILE_TTS_ON "IDS_SCR_POP_SCREEN_READER_IS_NOT_SUPPORTED_BY_PS_PRESS_THE_BACK_KEY_TO_RETURN_TO_THE_PREVIOUS_SCREEN"
-#define NO_UG_FOUND_MSG _("Unsupported menu")
+#define NO_UG_FOUND_MSG "IDS_MSGF_POP_UNSUPPORTED"
#define USB_NEED_OFF "Please turn USB tethering off first in Mobile hotspot"
-#define SETTING_NFC_DESC "IDS_ST_BODY_ALLOW_DATA_EXCHANGE_WHEN_DEVICE_TOUCHES_ANOTHER_DEVICE"
-#define SETTING_WIFI_DIRECT_DESC "IDS_ST_BODY_SET_UP_PEER_TO_PEER_CONNECTIVITY_ABB"
+#define Kies_Caring_Str "IDS_KW_POP_BE_CAREFUL_WHEN_TRANSMITTING_INFORMATION_ON_AN_UNSECURED_WI_FI_NETWORK_MSG"
+#define Kies_Warrning_Str "IDS_USB_POP_UNABLE_TO_CONNECT_TO_KIES_VIA_WI_FI_WHEN_CONNECTED_TO_KIES_VIA_USB"
+
+#define _2_TAB_STR Keystr_Connection
+#define _3_TAB_STR KeyStr_Device
+#define _4_TAB_STR KeyStr_MotionControl /**/
+#define _5_TAB_STR "IDS_ST_BODY_GENERAL"
+#define _6_TAB_STR KeyStr_DownloadedAPPs
+
+#define LIST_VIEW "IDS_CLD_BUTTON_LIST_VIEW"
+#define GRID_VIEW "IDS_ST_BODY_GRID_VIEW"
+#define TAB_VIEW "IDS_ST_OPT_TAB_VIEW"
+#define EDIT_VIEW "IDS_ST_OPT_EDIT_QUICK_SETTINGS"
+
+
+#define Keystr_Apps "IDS_ST_BODY_APPLICATION_SETTINGS"
+#define Keystr_All "IDS_ST_OPT_ALL"
+#define Keystr_MostUsed "IDS_ST_TZTAB4_MOST_USED_M_APP"
+#define Keystr_Connection "IDS_ST_BODY_CONNECTION"
+#define Keystr_Device "IDS_ST_BODY_DEVICE"
+#define Keystr_General "IDS_ST_BODY_GENERAL"
+
+
+#define USER_DEFINED_SETTING_STR "IDS_ST_HEADER_USER_SETTINGS_ABB"
+#define FREQUENTLY_SETTING_STR "IDS_ST_BODY_FREQUENTLY_USED"
+#define EMPTY_STR "IDS_ST_BODY_EMPTY"
+
+#define ENABLE_FLIGHT_MODE_MSG "IDS_ST_BODY_FLIGHT_MODE_MSG"
/**
-* @brief
-*/
+ * @brief
+ */
+typedef enum _Setting_Tab_View_Type {
+ SETTING_TAB_VIEW_INVALID = -1,
+ SETTING_TAB_VIEW_QUICK_SETTINGS = 0,
+ SETTING_TAB_VIEW_CONNECTION = 1,
+ SETTING_TAB_VIEW_DEVICE = 2,
+ SETTING_TAB_VIEW_CONTROL = 3,
+ SETTING_TAB_VIEW_GENERAL = 4,
+ SETTING_TAB_VIEW_APPS = 5,
+ SETTING_TAB_VIEW_MAX,
+} Setting_Tab_View_Type;
+
typedef enum _setting_view_type {
- SETTING_VIEW_MAIN = 0,
- SETTING_VIEW_CONNECTIVE_MORE,
- SETTING_VIEW_SYSTEM_MORE,
- SETTING_VIEW_ALL_CHECK = 9,
-} Setting_View_Type;
+ SETTING_INVALID_VIEW = -1,
+ SETTING_LIST_VIEW = 0,
+ SETTING_GRID_VIEW = 1,
+ SETTING_TAB_VIEW = 2,
+ SETTING_EDIT_VIEW = 3,
+ SETTING_MAX,
+} setting_view_type;
+
typedef void (*menu_list_load_fn) (void *data);
typedef void (*menu_list_load_fn2) (void *, Cfg_Item_Position, Evas_Object *);
-typedef enum _List_Load_Func_Type {
+#define MAX_GROUP_NUM_IN_VIEW 10
+
+#if 1
+/* 2 - order of Connection Tab list */
+typedef enum _List_Load_Connection_Func_Type {
Func_Type_Connectivity = 0,
- Func_Type_System = 1,
- Func_Type_Apps = 2,
- Func_Type_DownApp = 3,
- Func_Type_MAX
-} List_Load_Func_Type;
-
-typedef enum _MAIN_PROFILE_Type {
- MAIN_PROFILE_PREFERRED = 0,
- MAIN_PROFILE_ALL = 1,
- MAIN_PROFILE_MAX
-} MAIN_PROFILE_Type;
+ Func_Type_ShareAndTransfer,
+ Func_Type_Connection_MAX
+} List_Load_Connection_Func_Type;
+
+typedef enum _List_Load_Display_Func_Type {
+ Func_Type_Screen,
+ Func_Type_Others,
+ Func_Type_Display_MAX
+} List_Load_Display_Func_Type;
+
+typedef enum _List_Load_Device_Func_Type {
+ Func_Type_SoundDisplay,
+ Func_Type_Personal,
+ Func_Type_MotionControl,
+ Func_Type_Device_MAX
+} List_Load_Device_Func_Type;
+
+typedef enum _List_Load_General_Func_Type {
+ Func_Type_BackupOption,
+ Func_Type_System,
+ Func_Type_DownloadedApp,
+ Func_Type_General_MAX
+} List_Load_General_Func_Type;
+
+typedef enum _Top_Grid_Item_Type {
+ GRID_ITEM_WIFI = 0,
+ GRID_ITEM_DATAUSAGE,
+ GRID_ITEM_STORAGE,
+ GRID_ITEM_DISPLAY,
+ GRID_ITEM_SOUND,
+ GRID_ITEM_POWERSAVING,
+ GRID_ITEM_MAX
+} Top_Grid_Item_Type;
+#endif
/**
* enum for genlist item to be updated
GL_ITEM_WIFI = 0,
GL_ITEM_BT,
GL_ITEM_NFC,
+ GL_ITEM_SBEAM,
GL_ITEM_MAP,
GL_ITEM_USB,
GL_ITEM_ROTATION,
GL_ITEM_FLIGHT,
-
+ GL_ITEM_NETRESTRICTIONMODE,
+ GL_ITEM_DRIVING,
+ GL_ITEM_PWRSAVING,
+#if SUPPORT_BLOCKINGMODE
+ GL_ITEM_BLOCKING,
+#endif
+#if SUPPORT_GUESTMODE
+ GL_ITEM_GUEST,
+#endif
GL_ITEM_MAX
} Update_GL_Item_Type;
typedef enum _FLIGHT_MODE_OPEARTION{
- FM_INVALID = 0,//There is no request waiting for processing
- FM_ENTER = 1,//Some "flightmode enter" request is waiting for processing
- FM_LEAVE,//Some "flightmode leave" request is waiting for processing
+ FM_INVALID = 0, /*< There is no request waiting for processing */
+ FM_ENTER = 1, /*< Some "flightmode enter" request is waiting for processing */
+ FM_LEAVE, /*< Some "flightmode leave" request is waiting for processing */
} FLIGHT_MODE_OPEARTION;
+#define IMG_CTRL_ICON_TOP SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_popular.png"
+#define IMG_CTRL_ICON_CONNECTION SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_connection.png"
+#define IMG_CTRL_ICON_DISPLAY SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_device.png"
+#define IMG_CTRL_ICON_GENERAL SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_general.png"
+
+
+struct _GridItem
+{
+ const char* name; /**< name below the icon image */
+ const char* icon_path; /**< icon path (full path) */
+ const char* ug_name; /**< UG name */
+ void* data; /* app context pointer */
+ Elm_Object_Item *item; /**< gengrid object item */
+};
+typedef struct _GridItem GridItem;
+
+#define MAX_GENGRID_TEXT_LEN 13
+#define MAX_GRID_NUM 12
+
+#define GRID_W_P 240
+#define GRID_H_P 208
+#define GRID_W_L 214
+#define GRID_H_L 195
+
+#define GRID_GROUP_H_P 81
+#define GRID_GROUP_H_L 56
#define MAX_MORE_MENU_NUM 6
+extern const char *fixed_grid_pref_key[];
+#define WIFI_LAST_ON_OFF_STATE "PREFKEY_WIFI_ON_OFF"
+#define PREFKEY_VIEW_TYPE "PREFKEY_VIEW_TYPE"
+#define PREFKEY_TAB_VIEW_TAB "PREFKEY_TAB_VIEW_TAB"
+
+enum {
+ OP_WIFI_TURNING_INVALID = 0x00,
+ OP_WIFI_TURNING_OFF,
+ OP_WIFI_TURNING_ON,
+};
+
+//driving mode
+#define PREFKEY_SETTING_MAIN_DRIVING_MODE_ON_POPUP_REMINDER "setting/main/driving_mode/on/popup_reminder"
+
+enum
+{
+ SC_All_List,
+ SC_All_Grid,
+ SC_Edit_List,
+ SC_Edit_Grid,
+
+ //to delete
+ SC_All,
+ SC_Top,
+ SC_Max
+}; //genlist or gengrid
+
+enum
+{
+ VIEW_All_List,
+ VIEW_All_List_Quick,
+ VIEW_All_Grid,//not used to access menus,just for groups(from GL_Group_QuickSettings to GL_Group_Apps)
+ VIEW_Common,
+ VIEW_Common_Quick,
+ VIEW_Max
+};
+
+
+enum
+{
+ GL_Joyn = 0,
+ GL_WiFi,
+ GL_BT,
+ GL_FlightMode,
+ GL_NetRestriction,
+ GL_MobileApp,
+ GL_Network,
+ GL_NearByDev,
+ GL_NFC,
+ GL_SBeam,
+ GL_Motion,
+ GL_PalmMotion,
+ GL_GuestMode,
+ GL_Bright,
+ GL_Backlight,
+ GL_Battery,
+ GL_MultiWin,
+ GL_BM,
+ GL_DM,
+ GL_PM,
+ GL_PersonalPage,
+ GL_TouchSens,
+ GL_TouchkeyLight,
+ GL_Landscape,
+ GL_BlockingMode,
+ GL_Screentone,
+ GL_Screenmode,
+
+ GL_Group_QuickSettings,
+ GL_Group_Connection,
+ //GL_Group_Share,
+ GL_Group_SoundDisplay,
+ GL_Group_Personal,
+ //GL_Group_MotionControl,
+ GL_Group_UserBackup,
+ GL_Group_System,
+ GL_Group_Apps,
+ GL_Max
+};
+
/**
-* @brief main view context
-*/
+ * @brief main view context
+ */
typedef struct _setting_main_appdata {
- ui_gadget_h ug;
+ ui_gadget_h ug; /**< ug */
+
TapiHandle *handle;
Evas_Object *popup;
- Evas_Object *app_icon;
- Eina_Bool bAppPause;
- Eina_Bool updateItems[GL_ITEM_MAX];
+ Evas_Object* ly_editview; /**< Edit mode */
- Ecore_Idler *refresh_idler;
+ Evas_Object *popup_kies_via_wifi;
+ Evas_Object *popup_wifi_mode;
+ Evas_Object *popup_flight_mode;
+ Evas_Object *popup_blocking_mode;
+ Evas_Object *popup_net_restriction_mode;
+ Evas_Object *popup_palmmotion_tts;
+ Evas_Object *popup_palmmotion_enable;
Evas *evas;
Evas_Object *win_main;
- Evas_Object *controlbar;
-
- //Evas_Object *controllbar_all_check;
- Evas_Object *gl_sel_all;
- menu_list_load_fn load_fns[Func_Type_MAX];
- MAIN_PROFILE_Type profile_type;
+ menu_list_load_fn load_fns[SETTING_TAB_VIEW_MAX][MAX_GROUP_NUM_IN_VIEW]; /**< */
Evas_Object *navibar_main;
+ Elm_Object_Item *main_navi_it;
Evas_Object *ly_main; /**< seting view main */
- Setting_View_Type view_load;
- Evas_Object *genlist_load;
+ Evas_Object *gengrid;
+ Evas_Object *sc_gl[SC_Max]; /**< genlist array */
+ Evas_Object *sc_gg[SC_Max]; /**< gengrid array */
- Elm_Object_Item *edit_item;
- Elm_Object_Item *segment_all;
- Elm_Object_Item *segment_preferred;
+ Setting_GenGroupItem_Data *gl_data_item[VIEW_Max][GL_Max];
+ Setting_GenGroupItem_Data *edit_group_item[GL_Max-GL_Group_QuickSettings];
- bool isInUGMode;
+ bool isInUGMode; /**< set TRUE when UG is running */
- /* vars for flightmode */
- bool b_fm_requesting;//whether some request is processing. 1:yes, 0:no
+ /**
+ * vars for flightmode
+ */
+ bool b_fm_requesting; /**< whether some request is processing. 1:yes, 0:no */
FLIGHT_MODE_OPEARTION fm_waiting_op;
-
/* special layout */
+ Setting_GenGroupItem_Data *data_joyn;
Setting_GenGroupItem_Data *data_flight;
+ Setting_GenGroupItem_Data *data_multi_window;
+ Setting_GenGroupItem_Data *data_netrestrictionmode;
Setting_GenGroupItem_Data *data_wifi;
Setting_GenGroupItem_Data *data_bt;
- Setting_GenGroupItem_Data *data_rotationMode;
+ Setting_GenGroupItem_Data *data_mobileApp;
Setting_GenGroupItem_Data *data_bright;
+ Setting_GenGroupItem_Data *data_backlight;
+ Setting_GenGroupItem_Data *data_battery;
+ Setting_GenGroupItem_Data *data_landscape;
+ Setting_GenGroupItem_Data *data_screentone;
+ Setting_GenGroupItem_Data *data_screenmode;
+ Setting_GenGroupItem_Data *data_touchkey_light_duration;
+ Setting_GenGroupItem_Data *data_powersaving;
+ Setting_GenGroupItem_Data *data_driving;
+ Setting_GenGroupItem_Data *data_blocking;
+ Setting_GenGroupItem_Data *data_personalpage;
+ Setting_GenGroupItem_Data *data_guest;
+ Setting_GenGroupItem_Data *data_high_touch_sensitivity;
Setting_GenGroupItem_Data *data_moreSystem;
Setting_GenGroupItem_Data *data_moreConnect;
Setting_GenGroupItem_Data *data_nfc;
-
+ Setting_GenGroupItem_Data *data_sbeam;
+ Setting_GenGroupItem_Data *data_motion;
+ Setting_GenGroupItem_Data *data_palmmotion;
+ Setting_GenGroupItem_Data *data_nearby_devices;
//following are not for update..
Setting_GenGroupItem_Data *data_network;
- Setting_View_Type view_type;
+ //top
+ Setting_GenGroupItem_Data *data_fixed_gengrid_portrait;
+
+ Setting_GenGroupItem_Data *data_fixed_gengrid_landscape;
+
+ Setting_GenGroupItem_Data *data_frequently_portrait; // genlist item
+ Setting_GenGroupItem_Data *data_frequently_landscape; // genlist item
+
+ Setting_GenGroupItem_Data *data_frequently_used_portrait; // title
+ Setting_GenGroupItem_Data *data_frequently_used_landscape; // title
+
+ Setting_GenGroupItem_Data *data_recently_portrait;
+ Setting_GenGroupItem_Data *data_recently_landscape;
+ Setting_GenGroupItem_Data *data_recently_used_portrait;
+ Setting_GenGroupItem_Data *data_recently_used_landscape;
+
+ ListItemObject *data_no_result;
+
+ //---------------------------------------------------------------
+
+ Setting_Tab_View_Type view_type;
+ Setting_Tab_View_Type select_tab_type;
+ setting_view_type list_type;
+ Evas_Object* ly_select_tab;
+ Evas_Object *select_sub_view[SETTING_TAB_VIEW_MAX];
+ GridItem* select_edit_mode_item;
+ Evas_Object* edit_genlist;
+ Evas_Object* edit_gengrid;
+ Eina_List *edit_sel_list;
+ Elm_Object_Item *edit_navi_it;
+ Elm_Object_Item *select_ctrl_item[3];
Evas_Object *main_genlist; /**< 'Setting main' in main page */
- Evas_Object *edit_preferred_genlist; /**< 'Edit preferred' page */
Elm_Genlist_Item_Class itc[GENDIAL_Type_MAX];
+ Elm_Genlist_Item_Class itc_no_reult;
- Eina_List *item_check_list; /**< in preferred view, store the selected items in the list. */
Setting_GenGroupItem_Data *check_all_item; /**< genlist node for "Select all" */
- Evas_Object *flight_popup;
Evas_Object *data_roaming_popup;
+ //driving mode
+ Evas_Object *driving_mode_popup;
+ Evas_Object *driving_mode_popup_chk;
+
+ // Personal page
+ char *personal_data;
+
// listen / unlisten code
Eina_List *listened_list;
sensor_h sf_handle;
const char *more_connective_menus[MAX_MORE_MENU_NUM];
const char *more_system_menus[MAX_MORE_MENU_NUM];
- char* plugin_path;
- void* plugin_node;
- char* view_to_jump;
- char cur_loaded_ug[MAX_DISPLAY_NAME_LEN_ON_UI];
-
+ Evas_Object *webkit;
Evas_Object *conform;
+ // NEW UX ---------------------------------------------------
+ Elm_Object_Item *ctrl_item[SETTING_TAB_VIEW_MAX]; // 0:Grid, 1:General 2:Applications
+ Evas_Object *sub_view[SETTING_TAB_VIEW_MAX]; // 0:Grid, 1:General 2:Applications
+ Evas_Object* view_layout; // view layout
+ Evas_Object *ctrl_bar;
+
+ Eina_Bool click_flag;
+ Elm_Gengrid_Item_Class *gic;
+ Elm_Gengrid_Item_Class groupic;
+ Elm_Gengrid_Item_Class editGic;
+ Ecore_Timer *save_idler;
+
+ Ecore_Timer *update_idler;
+
+ Ecore_Timer *bt_timer;
+ Ecore_Timer *nfc_timer;
+ Ecore_Timer *wifi_timer;
+ Ecore_Idler *update_font_idler;
+ Ecore_Timer *dashboard_timer;
int current_rotation;
+ int noti_id;
+ int driving_noti_id;
+ int flight_noti_id;
+ // ----------------------------------------------------------
+
+ Ecore_Timer *event_freeze_timer;
+
+ // FEATURE : setting search
+ // ly_topview
+ // search app
+ Evas_Object* ly_topview;
+ Evas_Object *search_genlist;
+ int search_count;
+ int cur_count;
+ ListItemObject *search_selected_item_data;
+
+ account_subscribe_h account_subscribe_handle;
+ Evas_Object *search_bar;
+ char search_text[512 + 1];
+ char current_search_text[512+1];
+ Ecore_Idler *search_idler;
+ Eina_Bool nfc_try_activate_running;
+
+ Elm_Object_Item *grid_item[6];
+
+ bundle* b;
+ int wifi_op;
+
+ Cfg_Item_Type is_searchmode;
+
+ Setting_GenGroupItem_Data *data_temp;
+
+ //cis-panel
+ Evas_Object *cis_left_panel;
+ Evas_Object *cis_left_panel_list;
+
+ bool cis_style_gengrid;
+ Evas_Object *current_gengrid;
+
+ Elm_Genlist_Item_Class itc_expand_grid;
+ int scrl_type;
+
+ Ea_Theme_Color_Table *theme_table;
+
+ Eina_Hash *main_list_hash;
+
} setting_main_appdata;
+extern setting_main_appdata *g_main_ad;
+extern const char *menu_group[];
/* launch view */
extern setting_view setting_view_main;
-extern setting_view setting_view_more_menu;
-extern void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
-extern void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
+extern setting_view setting_view_edit_mode;
+
extern void __gl_realized(void *data, Evas_Object *obj, void *event_info);
+extern void setting_main_refresh_topview_list(void *data);
+
+extern Evas_Object *__get_top_list(void *data);
+extern void setting_main_click_list_ex_ug_cb(void *data, Evas_Object *obj, void *event_info);
+extern GridItem *__main_grid_item_append(Evas_Object *gengrid, const Elm_Genlist_Item_Class *itc,
+ setting_call_back_func gl_sel, const char *key_name,
+ const char *icon_path, const char *ug_name,
+ void *data);
+extern Eina_Bool __save_timer(void *data);
+
+typedef Setting_GenGroupItem_Data* (*UI_HANDLER)(void* data, char* title, char* iconpath, char* ugname, Evas_Object *genlist, Elm_Object_Item *parent);
+
+
+typedef enum
+{
+ ERROR_STATE =-1,
+ DEFAULT_UI=0,
+ UI_PROC,
+ UG_HANDLE,
+} mainlist_entry_action_type;
+
+typedef struct _mainlist_entry {
+ char* title;
+ UI_HANDLER ui_handler;
+ mainlist_entry_action_type type;
+ //--------------------------------------------------
+ void* item_data;
+} mainlist_entry;
#endif /* __SETTING_H__ */