Tizen 2.1 base
[apps/home/call-setting.git] / include / cst-common.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef _CST_COMMON_H_
18 #define _CST_COMMON_H_
19
20 #include <Elementary.h>
21 #include <libintl.h>
22 #include <glib.h>
23 #include <app.h>
24 #include <tapi_common.h>
25
26 #include "cst-debug.h"
27 #include <msg_types.h>
28
29 #define UGNAME "ug-setting-call-efl"
30 #define _EDJ(o)         elm_layout_edje_get(o)
31 #define EDJ_DIR "/usr/ug/res/edje/"UGNAME
32 #define EDJ_NAME EDJ_DIR"/call-setting.edj"
33 #define THEME_NAME EDJ_DIR"/call-setting-theme.edj"
34 #define IMG_DIR "/usr/ug/res/images/"UGNAME
35 #define CST_DEBUG_FILE "/opt/usr/ug/ug-setting-call/.tmp/debug/call-setting.log"
36 #define CST_LOCALE      "/usr/ug/res/locale"
37 #define CST_ELM_lAYOUT_EDITFIELD_CALLSETTING "elm/layout/editfield/callsetting"
38
39 #define CST_MAX_PASSWORD_LEN            4
40 #define CST_MAX_REJECT_NUM              30
41 #define CST_MAX_PREFIX_NUM              1
42 #define CST_MAX_REJECT_MESSAGE_NUM      5
43 #define CST_MAX_ITEM_TEXT_BUFFER_LEN    140
44 #define CST_MAX_PHONE_NUMBER_LEN        100
45 #define CST_MAX_PREFIX_NUMBER_LEN       20
46
47 #define CST_NAVIFRAME_ITEM_POP_TIMER 0.15
48 #define CST_TICKERNOTI_TIMER 3.0
49
50 #define CST_TITLE_BTN_ICON_PLUS IMG_DIR"/00_icon_plus.png"
51 #define CST_TITLE_BTN_ICON_EDIT IMG_DIR"/00_icon_edit.png"
52 #define CST_CTRL_ICON_CLOSE             IMG_DIR"/01_controlbar_icon_close.png"
53 #define CST_CTRL_ICON_CREATE            IMG_DIR"/01_controlbar_icon_create.png"
54 #define CST_CTRL_ICON_DELETE            IMG_DIR"/01_controlbar_icon_delete.png"
55 #define CST_CTRL_ICON_EDIT              IMG_DIR"/01_controlbar_icon_edit.png"
56 #define CST_CTRL_ICON_UPDATE            IMG_DIR"/01_controlbar_icon_update.png"
57 #define CST_CTRL_ICON_CONTACTS          IMG_DIR"/01_controlbar_icon_contacts.png"
58 #define CST_VIDEO_CALL_IMAGE_DEFAULT_PATH               IMG_DIR"/video_call_image_default.jpg"
59 #define CST_VIDEO_CALL_IMAGE_CHANGED_PATH1              "/opt/usr/ug/ug-setting-call/.changed_video_call_image.jpg"
60 #define CST_VIDEO_CALL_IMAGE_CHANGED_PATH2              "/opt/usr/ug/ug-setting-call/.changed_video_call_image_.jpg"
61
62
63 #define CST_UG_BUNDLE_TYPE "type"
64
65
66 typedef enum {
67         CST_ERR_NONE = 0x00,
68
69         CST_ERR_UNKNOWN_SUBSCRIBER = 0x01,
70         CST_ERR_BEARER_NOT_PROVISIONED = 0x02,
71         CST_ERR_TELESERVICE_NOT_PROVISIONED = 0x03,
72         CST_ERR_CALL_BARRED = 0x04,
73         CST_ERR_ILLEGAL_SS_OPER = 0x05,
74         CST_ERR_ERR_STATUS = 0x06,      
75         CST_ERR_NOT_AVAIL = 0x07,
76         CST_ERR_SUBSCRIPTION_VIOLATION = 0x08,
77         CST_ERR_INCOMPATIBILITY = 0x09,
78         CST_ERR_FACILITY_NOT_SUPPORT = 0x0a,
79         CST_ERR_SYS_FAILURE = 0x0b,
80         CST_ERR_DATA_MISSING = 0x0c,
81         CST_ERR_UNEXPECTED_DATA = 0x0d,
82         CST_ERR_MPTY_PARTICIPANTS_EXCEED = 0x0e,
83         CST_ERR_RESOURCE_NOT_AVAIL = 0x0f,
84         CST_ERR_PW_REGIST_FAIL = 0x10,
85         CST_ERR_NEGATIVE_PW_CHECK = 0x11,
86         CST_ERR_PW_ATTEMPS_VIOLATION = 0x12,    
87         CST_ERR_NETWORK_API_FAILED = 0x13,
88         CST_ERR_DIVERT_TO_EMERGENCY_BLOCKED = 0x14,
89         CST_ERR_CB_PWD_TOO_SORT = 0x15,
90         CST_ERR_CB_PWD_MISMATCH = 0x16,
91         CST_ERR_CB_PWD_TOO_LONG = 0x17,
92
93         CST_ERR_UNKNOWN = 0xff,
94
95 } CstErr_t;
96
97 enum {
98         CST_SSTYPE_CF_UNCONDITIONAL,
99         CST_SSTYPE_CF_BUSY,
100         CST_SSTYPE_CF_NO_REPLY,
101         CST_SSTYPE_CF_NOT_REACHABLE,
102         CST_SSTYPE_CF_ALL,
103         CST_SSTYPE_CF_ALL_CONDITIONAL,
104         CST_SSTYPE_CB_OC,
105         CST_SSTYPE_CB_OIC,
106         CST_SSTYPE_CB_OICEH,
107         CST_SSTYPE_CB_IC,
108         CST_SSTYPE_CB_ICR,
109         CST_SSTYPE_CW,
110 };
111
112 enum {
113         CST_CLI_BY_NETWORK,
114         CST_CLI_SHOW,
115         CST_CLI_HIDE,
116 };
117
118 enum {
119         CST_ALERTS_ON_CALL_OFF,
120         CST_ALERTS_ON_CALL_SOUND,
121         CST_ALERTS_ON_CALL_VIBRATION,
122 };
123
124 enum {
125         CST_OUTGOING_CALL_CONDITIONS_PHONE_LOCKED,
126         CST_OUTGOING_CALL_CONDITIONS_PHONE_UNLOCKED,
127 };
128
129 enum {
130         CST_OUTGOING_CALLTYPE_LAST_CALL_LOG,
131         CST_OUTGOING_CALLTYPE_VOICE,
132 };
133
134 enum {
135         CST_STATUS_ACTIVATED,
136         CST_STATUS_DEACTIVATED,
137         CST_STATUS_UNKNOWN,
138 };
139
140 enum {
141         CST_CALLTYPE_VOICE,
142         CST_CALLTYPE_VOICE_LINE2,
143         CST_CALLTYPE_ALL,
144 };
145
146 enum {
147         CST_ACTION_ACTIVATE,
148         CST_ACTION_DEACTIVATE,
149         CST_ACTION_QUERY,
150 };
151
152 enum {
153         CST_SS_STATE_ON,
154         CST_SS_STATE_OFF,
155         CST_SS_STATE_PROGRESS,
156 };
157
158 enum {
159         CST_ERROR_NONE,
160         CST_ERROR_SERVICE_UNAVAILABLE,
161         CST_ERROR_INCORRECT_OPERATION,
162         CST_ERROR_INVALID_PASSWORD,
163         CST_ERROR_PASSWORD_BLOCKED,
164         CST_ERROR_ENTER_NUMBER,
165         CST_ERROR_ENTER_MESSAGE,
166         CST_ERROR_SELECT_VALID_ENTRY,
167         CST_ERROR_DUPLICATE_MESSAGE,
168         CST_ERROR_REJECTED_BY_NETWORK,
169         CST_ERROR_INSERT_SIM_CARD,
170         CST_ERROR_CHANGE_FLIGHT_MODE,
171         CST_ERROR_AUL_LAUNCH_ERROR,
172
173         CST_ERROR_UNKNOWN,
174 };
175 enum {
176         CST_ITEM_1,
177         CST_ITEM_2,
178         CST_ITEM_3,
179         CST_ITEM_4,
180         CST_ITEM_5,
181 };
182
183 enum {
184         CST_GL_ITEM_TEXT,
185         CST_GL_ITEM_SUB_TEXT,
186         CST_GL_ITEM_1TEXT_ONOFF,
187         CST_GL_ITEM_1TEXT_ONOFF_PROGRESS,
188         CST_GL_ITEM_RADIO_1TEXT,
189         CST_GL_ITEM_EXPANDABLE,
190         CST_GL_ITEM_DG_SPERATOR,
191         CST_GL_ITEM_DG_TITLE,
192         CST_GL_ITEM_HELP_TEXT,
193         CST_GL_ITEM_2TEXT_ONOFF,
194         CST_GL_ITEM_2TEXT_ONOFF_PROGRESS,
195         CST_GL_ITEM_IMG_1TEXT,
196         CST_GL_ITEM_2TEXT,
197         CST_GL_ITEM_2TEXT_EXPANDABLE,
198         CST_GL_ITEM_2TEXT_1ICON,
199         CST_GL_ITEM_NONE,
200 };
201
202 enum {
203         CST_DL_AUTO_REJECT,
204         CST_DL_REJECT_CALL_WITH_MSG,
205         CST_DL_FDN_CONTACTS,
206
207         CST_DL_NONE,
208 };
209
210 enum {
211         CST_UG_REQ_NONE = 0,
212
213         CST_UG_REQ_REJECT_MSG,
214         CST_UG_REQ_CALL_ANSWER_END,
215         CST_UG_REQ_CALL_FORWARD,
216         CST_UG_REQ_MORE_SETTINGS,
217         CST_UG_REQ_CALL_BAR,
218         CST_UG_REQ_CALL_WAIT,
219         CST_UG_REQ_CALL_STATUS_TONE,
220         CST_UG_REQ_PREFIX,
221 };
222
223 typedef enum {
224         CST_IME_PREFIX_DIAL,
225         CST_IME_REJECT_MSG,
226         CST_IME_CALL_FORWARD,
227         CST_IME_CALL_BAR,
228
229         CST_IME_NONE,
230 } CstImeType_t;
231
232 typedef struct {
233         int depth;
234         int str_id;
235         Elm_Genlist_Item_Type flags;
236         int style;
237         Evas_Object_Event_Cb func;
238 } CstGlItemDisplayInfo_t;
239
240 typedef struct {
241         char reject_number[CST_MAX_PHONE_NUMBER_LEN];
242         int is_activate;
243         int reject_id;
244         int rule;
245 } CstRejectInfo_t;
246
247 typedef struct _Item_Data {
248         int index;
249         int reject_id;
250         int reject_rule;
251         int str_id;
252         Elm_Object_Item *gl_item;
253         Elm_Object_Item *parent_gl_item;
254         char *label;
255
256         Eina_Bool check;
257         Evas_Object *radio;
258         Evas_Object *eo_check;
259         Eina_Bool is_activated;
260         Eina_Bool is_unknown;
261         Eina_List *list;
262         char number[CST_MAX_PHONE_NUMBER_LEN + 1];
263         char text[CST_MAX_ITEM_TEXT_BUFFER_LEN + 1];
264         void *ugd;
265 } CstGlItemData_t;
266
267 typedef struct {
268         Evas_Object *base;
269         Evas_Object *bg;
270         Evas_Object *win_main;
271         void *ug;
272         Evas_Object *nf;
273         Evas_Object *controlbar;
274         Evas_Object *back_button;
275         Evas_Object *backup_layout;
276
277         Evas_Object *selectinfo;
278         Evas_Object *selectinfo_layout;
279         Evas_Object *select_backup;
280
281         Ecore_Timer *ticker_noti_timer;
282
283         int ug_req_type;
284
285         double scale;
286
287         Evas_Object *dg_entry;
288         Evas_Object *dg_entry_contact_name;
289         Evas_Object *dg_entry_contact_number;
290         Evas_Object *dg_entry_pin2;
291
292         int genlist_editfield_initialized;
293
294         Elm_Object_Item *c_item[10];
295
296         Evas_Object *rdg_alerts_on_call;
297
298         Evas_Object *rdg_show_my_number;
299
300         Evas_Object *rdg_outgoing_call_conditions;
301
302         Evas_Object *rdg_outgoing_call_type;
303
304         Elm_Object_Item *prefix_gl_list_item;
305
306         int cf_state[4];
307         Elm_Object_Item *cf_gl_item[4];
308         int cb_state[5];
309         char cf_number[CST_MAX_PHONE_NUMBER_LEN][4];
310         Evas_Object *popup;
311
312         int cw_state;
313         Eina_Bool original_state;
314
315         Elm_Object_Item *vm_gl_item;
316
317         int call_type;
318         int cb_flavour;
319         int cf_flavour;
320         Eina_List *req_queue;
321         GSList *sim_req_list;
322         Eina_Bool is_requesting;
323         Evas_Object *backup_genlist;
324
325         int kind_of_delete_list;
326
327         TapiHandle *tapi_handle;
328 } CstUgData_t;
329
330 #endif  /* _CST_COMMON_H_ */
331