Tizen 2.0 Release
[apps/home/settings.git] / setting-network / include / setting-network.h
1 /*
2  * setting
3  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
4  *
5  * Licensed under the Flora License, Version 1.0 (the License);
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://floralicense.org/license/
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an AS IS BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 #ifndef __SETTING_NETWORK_H__
18 #define __SETTING_NETWORK_H__
19
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include <glib.h>
23 #include <Elementary.h>
24 #include <Ecore_IMF.h>
25 #include <string.h>
26
27 #include <glib-object.h>
28 #include <net_connection.h>
29
30
31 #include <setting-common-draw-widget.h>
32 #include <setting-common-view.h>
33 #include <setting-debug.h>
34
35 #include <TapiUtility.h>
36 #include <ITapiNetwork.h>
37 #include <ITapiSim.h>
38
39 #include <TelErr.h>
40
41 #include <Ecore_IMF.h>
42
43 #define Keystr_NetBrand_Auto "GSM/WCDMA(auto connect)"
44 #define Keystr_NetBrand_Auto_WCDMA_GSM "WCDMA/GSM (auto connect)"
45 #define Keystr_NetBrand_WCDMA "WCDMA only"
46 #define Keystr_NetBrand_LTE_WCDMA "LTE/WCDMA"
47 #define Keystr_NetBrand_GSM "GSM only"
48
49 #define SUPPORT_CON_RESET
50 #define NET_CON_RESET_DBUS_PARA  "--system --print-reply --dest=com.tcore.ps / com.tcore.ps.master.ResetProfile"
51
52
53 #define Data_packet_Desc "Data packet through 3G network will be consumed, if you use data download or upload without Wi-Fi connection."
54 #define SETTING_NETWORK_DATA_ROMING_DESC "IDS_COM_BODY_CONNECT_TO_DATA_SERVICES_WHEN_ROAMING"
55 #define SETTING_NETWORK_DATA_ROMING_OFF_DESC "When data roaming is disabled, the application that uses the data connection may not work"
56
57 #define SETTING_NETWORK_USE_PACKET_DATA_OFF_DESC "Data packet through 3G network will be consumed, if you use data download or upload without Wi-Fi connection. Continue?"
58 #define SETTING_NETWORK_USE_PACKET_DATA_ON_DESC "Use data services when roaming. Roaming will charge extra data fee"
59
60 #define CONNECTION_DSC "IDS_ST_BODY_CONNECTIONS"
61 #define KeyStr_Reset_Def "IDS_ST_BODY_RESET_TO_DEFAULT"
62 #define KeyStr_Edit "IDS_ST_BODY_EDIT"
63 #define KeyStr_Saved "IDS_ST_BODY_SAVED"
64 #define keyStr_Searched "Searched"
65 #define keyStr_Failed_Searched "Searching network failed"
66 #define keyStr_Failed_Select_Network "Select network failed"
67 #define keyStr_Failed_Get_PreferNetwork "Get preferred network failed"
68
69 #define Insert_Access_Name_desc "Please input access name !"
70 #define Insert_User_Name_Desc "Please input User name !"
71 #define Invok_API_Failed_Desc "Failed to invoke API"
72
73 //in the feture
74 #define NotifyStr_PDP_OFF "PDP will be disabled to find network nearby"
75 #define Keystr_UNKNOWN_NETWORK "Untitled network"
76
77 #define SETTING_ADD_PROFILE_INDEX -1
78 #define Invoking_TAPI_Timeout  8
79 #define COUNTRY_CODE_LEN        3
80 #define NETWORK_CODE_LEN        3
81 #define PRE_NETWORK_NAME_MAX 256
82
83 #define SETTING_NETWORK_POP_RESPONSE_ACTION_CANCEL  10  /*  the popupresponse action ID */
84 #define SETTING_NETWORK_SUBS_ID_NET_LEN 7
85 typedef enum {
86         SETTING_NETWORK_PREFERRED_NETWORK_NONE,
87         SETTING_NETWORK_PREFERRED_NETWORK_NEW,
88         SETTING_NETWORK_PREFERRED_NETWORK_EDIT,
89         SETTING_NETWORK_PREFERRED_NETWORK_LIST,
90         SETTING_NETWORK_PREFERRED_NETWORK_DELETE,
91
92 } setting_network_preferred_network_operation_type_t;
93
94 typedef enum {
95         NET_RESTORE_NONE = 0, //do need restore
96         NET_RESTORE_PDP, //restore the vconf of pdp()
97         NET_RESTORE_PDP_ROAM,//restore the vconf of roaming()
98 } net_restore_t;//restore type
99
100
101 typedef struct _SettingNetworkUG SettingNetworkUG;
102
103 struct gl_network_data {
104         int index;
105         char name[PRE_NETWORK_NAME_MAX];
106 };
107
108 #define MAX_PROFILE_NUM 100
109 /**
110  * Setting Network UG context
111  * all UG function has void* as an agument. this is casted back to SettingNetworkUG
112  * and the functions access app context.
113  */
114 struct _SettingNetworkUG {
115         ui_gadget_h ug;
116         TapiHandle *handle;
117         connection_h connection;
118         connection_profile_h sel_profile_h;
119         net_restore_t net_restore;
120
121         /* add more variables here (move your appdata to here) */
122         Evas *evas;
123         Evas_Object *win_main_layout;
124         Evas_Object *win_get;
125         Evas_Object *popup;
126         Evas_Object *navi_bar;
127
128         //connection,
129         Elm_Object_Item *navi_it;
130         Evas_Object *bottom_btn;
131         //Evas_Object *conformant;
132         Evas_Object *back_btn;
133         Evas_Object *l_button;
134         Evas_Object *r_button;
135         //Evas_Object *m_button;
136
137         bool has_form_changed;
138         Evas_Object *genlist_sel_network;
139
140         Evas_Object *network_ug_pop;
141         Evas_Object *controllbar;
142
143         char *view_type_string;
144
145         Evas_Object *ly_main;
146         unsigned int subs_id_net[SETTING_NETWORK_SUBS_ID_NET_LEN];
147
148         Setting_GenGroupItem_Data* data_auto_network_item;
149         Setting_GenGroupItem_Data* data_search_network_item;
150         bool b_searching_network;
151         bool b_set_auto_network;
152         bool b_set_manul_network;
153
154         Setting_GenGroupItem_Data *data_sel_net;
155         Setting_GenGroupItem_Data *data_net_mode;
156         Setting_GenGroupItem_Data *data_use_packet;
157         Setting_GenGroupItem_Data *data_roaming;
158
159         Evas_Object *chk_sel;
160         Evas_Object *chk_mode;
161         Evas_Object *pop_gsm;
162         Evas_Object *chk_3gcon;
163
164         int sel_net;            /* like vconf key */
165         int sel_act;            /* like vconf key */
166         char *sel_network;
167         int net_mode;           /* like vconf key */
168
169         TelNetworkPlmnList_t plmn_info;
170
171         int is_show_user;
172         char *con_name;
173
174         Evas_Object *chk_type;
175
176         char *ed_acs_name_desc;
177         char *ed_auth_type_desc;
178         char *ed_user_name_desc;
179         char *ed_pwd_desc;
180         char *ed_pxy_addr_desc;
181         char *ed_pxy_port_desc;
182         char *ed_hm_url_desc;
183         int chkType;
184         Elm_Object_Item *item_above_user_name;
185         Elm_Object_Item *item_above_proxy_add;
186         Setting_GenGroupItem_Data *data_user_name;
187         Setting_GenGroupItem_Data *data_pwd;
188         Setting_GenGroupItem_Data *data_acs_name;
189         Setting_GenGroupItem_Data *data_pxy_addr;
190         Setting_GenGroupItem_Data *data_pxy_port;
191         Setting_GenGroupItem_Data *data_hm_url;
192         Setting_GenGroupItem_Data *data_auth_type;
193         Setting_GenGroupItem_Data *data_type_nor;
194         Setting_GenGroupItem_Data *data_type_sec;
195         Setting_GenGroupItem_Data *data_type_none;
196
197         Evas_Object *scl_edit;
198
199         /* Preferred network common */
200         TelNetworkPreferredPlmnList_t pref_list;
201         int sel_pref_idx;
202         setting_network_preferred_network_operation_type_t op_type;
203
204         Ecore_Idler *add_view_timer;
205         char search_text[MAX_SEARCH_STR_LEN + 1];
206         Evas_Object *nw_search_bar;
207
208         Evas_Object *scl_pref;
209         Evas_Object *chk_new_type;
210         Setting_GenGroupItem_Data *data_edit_mcc;
211         Setting_GenGroupItem_Data *data_edit_mnc;
212         Setting_GenGroupItem_Data *data_new_mcc;
213         Setting_GenGroupItem_Data *data_new_mnc;
214         Evas_Object *chk_edit_type;
215         Evas_Object *scl_pref_del;
216         Evas_Object *gl_sel_all;
217
218         Evas_Object *popup_label;
219         int deleted_number;
220         Eina_List *checked_data_list;
221         Eina_List *item_check_list;
222
223         /* Preferred network network list for genlist */
224         Evas_Object *gl_network;
225         Elm_Genlist_Item_Class itc;
226         struct gl_network_data *cur_sel_mem;
227         int cur_sel_index;
228
229         Setting_GenGroupItem_Data *data_cl_select_all;
230         Evas_Object *sub_clear_layout;
231         Evas_Object *selInfoPop;
232         Evas_Object *selInfoPop_layout;
233 };
234
235
236 extern setting_view setting_view_network_main;
237 extern setting_view setting_view_network_select_network;
238 extern setting_view setting_view_network_main_help;
239 extern setting_view setting_view_network_con;
240 extern setting_view setting_view_network_connection_create;
241 extern setting_view setting_view_network_3gcon;
242
243 extern setting_view setting_view_network_preferred_network;
244 extern setting_view setting_view_network_preferred_network_new;
245 extern setting_view setting_view_network_preferred_network_list;
246 extern setting_view setting_view_network_preferred_network_edit;
247 extern setting_view setting_view_network_preferred_network_delete;
248
249 const char *setting_network_get_act_str(TelNetworkSystemType_t type);
250 void setting_network_update_sel_network(void *data);
251
252 void setting_tapi_get_preferred_plmn_cb(TapiHandle *handle, int result, void *data, void *user_data);
253 void setting_tapi_set_preferred_plmn_cb(TapiHandle *handle, int result, void *data, void *user_data);
254
255 void setting_tapi_cancel_manual_search_cb(TapiHandle *handle, int result, void *data, void *user_data);
256 void setting_tapi_search_network_cb(TapiHandle *handle, int result, void *data, void *user_data);
257
258 void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result, void *data, void *user_data);
259 void setting_tapi_get_plmn_mode_cb(TapiHandle *handle, int result, void *data, void *user_data);
260 void setting_tapi_set_plmn_mode_cb(TapiHandle *handle, int result, void *data, void *user_data);
261
262 void setting_tapi_get_band_cb(TapiHandle *handle, int result, void *data, void *user_data);
263 void setting_tapi_set_band_cb(TapiHandle *handle, int result, void *data, void *user_data);
264
265 void setting_network_select_network_chk_changed(void *data, Evas_Object *obj, void *event_info);
266 void setting_network_Gendial_select_plmn_cb(void *data, Evas_Object *obj, void *event_info);
267 void setting_network_popup_delete(void *data);
268
269 #endif                          /* __SETTING_NETWORK_H__ */