4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #ifndef __SETTING_NETWORK_H__
22 #define __SETTING_NETWORK_H__
27 #include <Elementary.h>
28 #include <Ecore_IMF.h>
31 #include <glib-object.h>
32 #include <net_connection.h>
34 #include <efl_extension.h>
36 #include <setting-common-draw-widget.h>
37 #include <setting-common-view.h>
38 #include <setting-debug.h>
40 #include <TapiUtility.h>
41 #include <ITapiNetwork.h>
44 #include <Ecore_IMF.h>
46 #include <eventsystem.h>
47 #include <bundle_internal.h>
48 #include <system_settings.h>
51 #define UI_NETWORK_MODE
54 /*#include <tethering.h> */
56 #define TIME_TO_TURN_OFF_3G 2
58 /*for new metwork mode */
59 #define Keystr_NetBrand_Auto "IDS_CST_OPT_GSM_WCDMA_HAUTO_CONNECT"/*"GSM/WCDMA (auto connect)" */
60 #define Keystr_NetBrand_Auto_WCDMA_GSM "IDS_CST_OPT_GSM_WCDMA_HAUTO_CONNECT"/*"GSM/WCDMA (auto connect)" */
62 #define Keystr_NetBrand_WCDMA "IDS_ST_MBODY_WCDMA_ONLY"
63 #define Keystr_NetBrand_LTE_WCDMA "LTE/3G"
65 #define Keystr_NetBrand_GSM "IDS_ST_MBODY_GSM_ONLY"
66 /*************************************************** // */
67 #define KeyStr_UserID "IDS_ST_BODY_USER_ID"
69 #define SUPPORT_CON_RESET
70 /*#define NET_CON_RESET_DBUS_PARA "--system --print-reply --dest=com.tcore.ps / com.tcore.ps.master.ResetProfile" */
71 #define NET_CON_RESET_DBUS_PARA "--system --print-reply --dest=com.tcore.ps / com.tcore.ps.master.ResetProfile int32:0"
73 #define Data_packet_Sub_desc "IDS_ST_BODY_ENABLE_DATA_ACCESS_OVER_MOBILE_NETWORK"
74 #define Data_packet_Popup_desc "IDS_ST_POP_MOBILE_DATA_ENABLED_CONNECTING_TO_MOBILE_NETWORKS_MAY_INCUR_EXTRA_CHARGES_DEPENDING_ON_YOUR_DATA_PLAN_CONTINUE_Q"
75 #define SETTING_NETWORK_DATA_ROMING_DESC "IDS_COM_BODY_CONNECT_TO_DATA_SERVICES_WHEN_ROAMING"
76 #define SETTING_NETWORK_DATA_ROMING_OFF_DESC "IDS_ST_BODY_WHEN_DATA_ROAMING_IS_DISABLED_APPLICATIONS_THAT_USE_THE_DATA_CONNECTION_MAY_NOT_WORK"
78 #define SETTING_NETWORK_USE_PACKET_DATA_OFF_DESC "IDS_ST_BODY_USING_MOBILE_DATA_MAY_RESULT_IN_ADDITIONAL_CHARGES_CONTINUE_Q"
79 #define SETTING_NETWORK_USE_PACKET_DATA_ON_DESC "IDS_ST_POP_ROAMING_WILL_INCUR_EXTRA_CHARGES_CONTINUE_Q"
82 /* Unable to search networks during data service activated. Do you want to disconnect the data service and search available network? */
83 #define SETTING_NETWORK_SEARCH_3G_ON_DESC "IDS_ST_POP_UNABLE_TO_SEARCH_NETWORKS_DURING_DATA_SERVICE_ACTIVATED_DO_YOU_WANT_TO_DISCONNECT_THE_DATA_SERVICE_AND_SEARCH_AVAILABLE_NETWORK_Q"
84 #define SETTING_NETWORK_CHANGE_3G_ON_DESC "IDS_ST_POP_UNABLE_TO_CHANGE_NETWORKS_WHILE_DATA_SERVICE_IN_USE_STOP_USING_CURRENT_DATA_SERVICE_AND_SELECT_ANOTHER_AVAILABLE_NETWORK_Q"
86 #define SETTING_NETWORK_SEARCHING_NETWORK "IDS_ST_POP_SEARCHING_NETWORK_ING"
87 #define KeyStr_Network_Mobile_Data_Has_Been_Disabled_Msg "IDS_ST_POP_MOBILE_DATA_HAS_BEEN_DISABLED_MSG"
88 #define KeyStr_Network_Turn_Off_Mobile_Data "IDS_ST_HEADER_TURN_OFF_MOBILE_DATA"
89 #define KeyStr_Network_Turn_On_Mobile_Data "IDS_ST_HEADER_TURN_ON_MOBILE_DATA"
91 #define CONNECTION_DSC "IDS_ST_BODY_CONNECTIONS"
92 #define KeyStr_Reset_Def "IDS_ST_BODY_RESET_TO_DEFAULT"
93 #define KeyStr_Edit "IDS_ST_BODY_EDIT"
94 #define KeyStr_Saved "IDS_ST_BODY_SAVED"
95 #define keyStr_Searched "IDS_SSEARCH_POP_SEARCHED"
96 #define keyStr_Failed_Searched "IDS_ST_POP_NETWORK_SEARCH_FAILED"
97 #define keyStr_Failed_Select_Network "IDS_COM_BODY_YOUR_SIM_CARD_DOES_NOT_ALLOW_A_CONNECTION_TO_THIS_NETWORK"
98 #define keyStr_Failed_Get_PreferNetwork "Get preferred network failed"
99 #define keyStr_Forbidden_Network _("IDS_ST_BODY_FORBIDDEN_NETWORK")
100 #define keyStr_OK _("IDS_ST_BUTTON_OK_ABB")
101 #define keyStr_CANCEL _("IDS_ST_BUTTON_CANCEL_ABB2")
103 #define KeyStr_No_Profile _("IDS_ST_BODY_EMPTY")
104 #define keyStr_No_Other_Network "IDS_ST_BODY_THERE_ARE_NO_NETWORKS_NEARBY"
106 #define Insert_Profile_Name_desc "Please input Profile name !" /*IDS_ST_BODY_ACCESS_NAME */
107 #define Insert_Access_Name_desc "Please input Access name !" /*IDS_ST_BODY_ACCESS_NAME */
108 #define Insert_User_Name_Desc "Please input User ID !" /*IDS_ST_BODY_USERNAME */
109 #define Invok_API_Failed_Desc "Failed to invoke API"
110 #define SETTING_NETWORK_NOT_ALLOWED_WITH_TETHERING "Unable to change APN when tethering is enabled"
111 #define SETTING_NETWORK_DOT "IDS_WIFI_BODY_DOT"
112 #define SETTING_NETWORK_CONTINUE "IDS_COM_OPT_CONTINUE_Q"
115 #define NotifyStr_PDP_OFF "PDP will be disabled to find network nearby"
116 #define Keystr_UNKNOWN_NETWORK _("IDS_ST_OPT_UNTITLED_NETWORK")
118 /*#define WHITELIST_DIR_PATH "/opt/usr/data/setting/lteon_netlist.xml" */
119 #define WHITELIST_DIR_PATH "/opt/system/csc/usr/network/lteon_netlist.xml"
122 #define SETTING_ADD_PROFILE_INDEX -1
123 #define Invoking_TAPI_Timeout 8
124 #define COUNTRY_CODE_LEN 3
125 #define NETWORK_CODE_LEN 3
126 #define PRE_NETWORK_NAME_MAX 256
128 #define SETTING_NETWORK_POP_RESPONSE_ACTION_CANCEL 10 /* the popupresponse action ID */
129 #define SETTING_NETWORK_SUBS_ID_NET_LEN 7
131 SETTING_NETWORK_PREFERRED_NETWORK_NONE,
132 SETTING_NETWORK_PREFERRED_NETWORK_NEW,
133 SETTING_NETWORK_PREFERRED_NETWORK_EDIT,
134 SETTING_NETWORK_PREFERRED_NETWORK_LIST,
135 SETTING_NETWORK_PREFERRED_NETWORK_DELETE,
137 } setting_network_preferred_network_operation_type_t;
139 typedef struct _SettingNetworkUG SettingNetworkUG;
141 struct gl_network_data {
143 char name[PRE_NETWORK_NAME_MAX];
149 CONNECTIONS_MAIN = 2,
150 CREATE_CONNECTIONS_MAIN = 3,
151 CREATE_CONLIST_CONNECTIONS_MAIN = 4
152 } setting_network_view_type_t;
154 #define MAX_PROFILE_NUM 100
156 * Setting Network UG context
157 * all UG function has void* as an agument. this is casted back to SettingNetworkUG
158 * and the functions access app context.
160 struct _SettingNetworkUG {
163 connection_h connection;
164 connection_profile_h sel_profile_h;
165 setting_view *profile_topper_view;
167 /*xmlDocPtr whitelist_doc; */
168 /*xmlNodePtr whitelist_root_node; */
170 void *whitelist_root_node;
172 #if SUPPORT_TETHERING
174 tethering_h th_connections;
175 tethering_h th_conlists;
176 tethering_h th_concreate;
178 int profile_service_type;
180 /* add more variables here (move your appdata to here) */
182 Evas_Object *win_main_layout;
183 Evas_Object *win_get;
184 Evas_Object *navi_bar;
186 Evas_Object* network_mode_popup;
188 Evas_Object *popup_concreate;
189 Evas_Object *popup_conlist;
190 Evas_Object *popup_conreset;
191 Evas_Object *popup_conreset_complete;
193 Evas_Object *popup_chk;
195 Evas_Object *popup_auth_type;
196 Evas_Object *popup_data_on;
197 Evas_Object *popup_data_off;
200 Elm_Object_Item *navi_it;
201 Elm_Object_Item *navi_it_con_list;
202 Elm_Object_Item *navi_it_profile_del_list;
203 Evas_Object *bottom_btn;
205 /*connection-create */
206 Evas_Object *con_create_gl; /* connection create */
208 /*Evas_Object *conformant; */
209 Evas_Object *back_btn;
210 Evas_Object *l_button;
211 Evas_Object *r_button;
212 /*Evas_Object *m_button; */
214 bool has_form_changed;
215 Evas_Object *genlist;
216 Evas_Object *genlist_sel_network;
217 Evas_Object *connections_gl; /* genlist in connections view */
218 Evas_Object *con_list_gl; /* genlist in connections view */
221 Evas_Object *network_ug_pop;
222 Evas_Object *network_select_registering_pop;
223 Evas_Object *controllbar;
225 char *view_type_string;
227 Evas_Object *ly_main;
228 unsigned int subs_id_net[SETTING_NETWORK_SUBS_ID_NET_LEN];
230 Evas_Point point_down;
232 Setting_GenGroupItem_Data *data_auto_network_item;
233 Setting_GenGroupItem_Data *data_search_network_item;
235 bool b_searching_network;
236 bool b_set_auto_network;
237 bool b_set_manul_network;
238 bool b_trigged_by_searching;
239 bool b_trigged_by_modechanging;
240 bool b_restore_3g_status;
241 bool b_restore_roaming_status;
243 Setting_GenGroupItem_Data *data_sel_net;
244 #ifdef UI_NETWORK_MODE
245 Setting_GenGroupItem_Data *data_net_mode;
247 Setting_GenGroupItem_Data *data_connection;
248 Setting_GenGroupItem_Data *data_mobile_data;
249 Setting_GenGroupItem_Data *data_roaming;
250 Setting_GenGroupItem_Data *data_srv_type;
251 Setting_GenGroupItem_Data *internet_conn;
252 Setting_GenGroupItem_Data *mms_conn;
253 Setting_GenGroupItem_Data *selected_profile;
255 Setting_GenGroupItem_Data *lte_wcdma_gsm;
256 Setting_GenGroupItem_Data *wcdma_gsm;
257 Setting_GenGroupItem_Data *wcdma_only;
258 Setting_GenGroupItem_Data *gsm_only;
260 Evas_Object *chk_sel;
261 Evas_Object *chk_mode;
262 Evas_Object *pop_gsm;
263 Evas_Object *chk_3gcon;
265 int sel_net; /**< like vconf key:VCONFKEY_SETAPPL_SELECT_NETWORK_INT */
266 int sel_act; /**< like vconf key:VCONFKEY_SETAPPL_SELECT_OLD_NT_ACT */
268 #ifdef UI_NETWORK_MODE
269 int net_mode; /* like vconf key */
272 TelNetworkPlmnList_t plmn_info;
278 Evas_Object *chk_type;
280 char *ed_profile_name_desc;
281 char *ed_acs_name_desc;
282 char *ed_auth_type_desc;
283 char *ed_user_name_desc;
285 char *ed_pxy_addr_desc;
286 char *ed_pxy_port_desc;
287 char *ed_hm_url_desc;
291 Elm_Object_Item *item_above_user_name;
292 Elm_Object_Item *item_above_proxy_add;
294 Setting_GenGroupItem_Data *data_user_name;
295 Setting_GenGroupItem_Data *data_pwd;
296 Setting_GenGroupItem_Data *data_acs_name;
297 Setting_GenGroupItem_Data *data_profile_name;
298 Setting_GenGroupItem_Data *data_pxy_addr;
299 Setting_GenGroupItem_Data *data_pxy_port;
300 Setting_GenGroupItem_Data *data_hm_url;
301 Setting_GenGroupItem_Data *data_auth_type;
302 Setting_GenGroupItem_Data *data_type_nor;
303 Setting_GenGroupItem_Data *data_type_sec;
304 Setting_GenGroupItem_Data *data_type_none;
306 Evas_Object *scl_edit;
308 Evas_Object *gl_profile_del;
309 Eina_List *profile_list;
310 Eina_List *profile_del_list;
312 /* Preferred network network list for genlist */
313 Evas_Object *gl_network;
314 Elm_Genlist_Item_Class itc;
316 Evas_Object *selInfoPop;
317 Evas_Object *selInfoPop_layout;
322 Setting_GenGroupItem_Data *data_delete_all;
323 /**********************************************/
324 setting_view *view_to_load;
329 Ecore_Idler *add_apn_idler;
330 Ecore_Idler *add_apn_timer;
341 extern setting_view setting_view_network_main;
342 extern setting_view setting_view_network_select_network;
343 extern setting_view setting_view_network_con;
344 extern setting_view setting_view_network_con_list;
345 extern setting_view setting_view_network_connection_create;
346 extern setting_view setting_view_network_profile_delete;
348 const char *setting_network_get_act_str(TelNetworkSystemType_t type);
349 void setting_network_update_sel_network(void *data);
350 bool setting_network_equal_profile(connection_profile_h pf1, connection_profile_h pf2);
351 void setting_network_reget_profile_list(void *cb);
353 void setting_tapi_cancel_manual_search_cb(TapiHandle *handle, int result, void *data, void *user_data);
354 void setting_tapi_search_network_cb(TapiHandle *handle, int result, void *data, void *user_data);
356 void setting_tapi_get_serving_network_cb(TapiHandle *handle, int result, void *data, void *user_data);
357 void setting_tapi_get_plmn_mode_cb(TapiHandle *handle, int result, void *data, void *user_data);
358 void setting_tapi_set_plmn_mode_cb(TapiHandle *handle, int result, void *data, void *user_data);
360 void setting_tapi_get_band_cb(TapiHandle *handle, int result, void *data, void *user_data);
361 void setting_tapi_set_band_cb(TapiHandle *handle, int result, void *data, void *user_data);
363 void setting_network_select_network_chk_changed(void *data, Evas_Object *obj, void *event_info);
364 void setting_network_Gendial_select_plmn_cb(void *data, Evas_Object *obj, void *event_info);
365 void setting_network_popup_delete(void *data);
366 int is_lte_on_feature(void *data);
367 char *__get_profile_name(int conType, void *data);
369 void setting_network_searching_network(Setting_GenGroupItem_Data *list_item);
371 void setting_network_set_state_mobile_data(ButtonState state);
372 int setting_network_get_state_mobile_data();
374 void setting_network_set_state_data_roaming(ButtonState state);
375 int setting_network_get_state_data_roaming(int* value);
378 #endif /* __SETTING_NETWORK_H__ */