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 #include <setting-phone-license-divx-mode.h>
24 #define SUPPORT_URL_OPEN 1
25 #define DIVX_URL "http://vod.divx.com"
26 #define SET_DVIX_REGISTRSTION_CODE_LEN 10
27 #define SET_DVIX_DEREGISTRSTION_CODE_LEN 8
29 static int setting_phone_license_divx_mode_create(void *cb);
30 static int setting_phone_license_divx_mode_destroy(void *cb);
31 static int setting_phone_license_divx_mode_update(void *cb);
32 static int setting_phone_license_divx_mode_cleanup(void *cb);
34 setting_view setting_view_phone_license_divx_mode = {
35 .create = setting_phone_license_divx_mode_create,
36 .destroy = setting_phone_license_divx_mode_destroy,
37 .update = setting_phone_license_divx_mode_update,
38 .cleanup = setting_phone_license_divx_mode_cleanup,
41 /* ***************************************************
45 ***************************************************/
47 static char *setting_phone_license_divx_mode_get_title_str(void *cb)
49 retv_if(cb == NULL, NULL);
50 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
51 if (ad->mode == SETTING_DIVX_MODE_REG) {
52 return _("IDS_ST_BODY_DIVX_REGISTRATION");
54 return _("IDS_ST_BODY_DIVX_DEREGISTRATION");
59 static void __url_mouse_down_cb(void *data, Evas *e, Evas_Object *eo, void *event_info)
62 ret_if(!event_info || !data);
65 if (app_control_create(&svc)) {
69 app_control_set_operation(svc, APPSVC_OPERATION_VIEW);
70 app_control_set_uri(svc, DIVX_URL);
71 app_control_send_launch_request(svc, NULL, NULL);
72 if (app_control_destroy(svc)) {
73 SETTING_TRACE_ERROR("bundle_free()");
75 /*elm_win_lower(ad->win_main_layout); */
80 static int setting_phone_license_divx_mode_create(void *cb)
84 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
86 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
87 char str[MAX_DISPLAY_NAME_LEN_ON_UI] = { 0, };
88 const char *desc = NULL;
89 const char *url = NULL;
91 if (ad->mode == SETTING_DIVX_MODE_REG) {
95 result = drm_get_data(DRM_DATA_TYPE_DIVX_REGISTRATION_CODE, NULL, &info);
98 ("%s*** regiString=%s, codeLength=%d, result=%d ***%s",
99 SETTING_FONT_BGREEN, info.code, info.code_len, (int)result,
102 if (result != 0 || '\0' == info.code[0]) {
103 SETTING_TRACE_ERROR("%s*** [ERR] DRM_FALSE ***%s",
106 ad->mode = SETTING_DIVX_MODE_DEREG;
107 setting_create_popup_without_btn(ad, ad->win_get,
108 NULL, _(REGISTRATION_GET_FAILED),
109 NULL, POPUP_INTERVAL, FALSE, FALSE);
110 snprintf(info.code, sizeof(info.code), _("IDS_CALL_POP_UNAVAILABLE_T_DIAL"));
112 safeStrNCat(str, "<br><br><br>", MAX_DISPLAY_NAME_LEN_ON_UI);
113 char tmp[MAX_DISPLAY_NAME_LEN_ON_UI] = { 0, };
114 snprintf(tmp, sizeof(tmp), _(REGISTRATION_INDICATOT), "<br><br>");
115 safeStrNCat(str, tmp, MAX_DISPLAY_NAME_LEN_ON_UI);
116 safeStrNCat(str, info.code, MAX_DISPLAY_NAME_LEN_ON_UI);
117 safeStrNCat(str, "<br><br><br>", MAX_DISPLAY_NAME_LEN_ON_UI);
118 safeStrNCat(str, _(REGISTRATION_AT), MAX_DISPLAY_NAME_LEN_ON_UI);
122 drm_code_info_s info;
123 result = drm_get_data(DRM_DATA_TYPE_DIVX_DEREGISTRATION_CODE, NULL, &info);
126 ("%s*** deregiString=%s, codeLength=%d, result=%d ***%s",
127 SETTING_FONT_BGREEN, info.code, info.code_len, result,
130 if (result != 0 || '\0' == info.code[0]) {
131 SETTING_TRACE_ERROR("%s*** [ERR] DRM_FALSE ***%s",
134 ad->mode = SETTING_DIVX_MODE_REG;
135 setting_create_popup_without_btn(ad, ad->win_get,
136 NULL, _("IDS_ST_BODY_DE_REGISTRATION_CODE_NOT_FOUND"),
137 NULL, POPUP_INTERVAL, FALSE, FALSE);
138 snprintf(info.code, sizeof(info.code), "%s", _("IDS_CALL_POP_UNAVAILABLE_T_DIAL"));
140 safeStrNCat(str, _(DEREGISTRATION_INDICATOT), MAX_DISPLAY_NAME_LEN_ON_UI);
141 safeStrNCat(str, info.code, MAX_DISPLAY_NAME_LEN_ON_UI);
142 safeStrNCat(str, _(EREGISTRATION_AT), MAX_DISPLAY_NAME_LEN_ON_UI);
145 Evas_Object *scroller;
147 setting_push_layout_navi_bar_scroller(ad->win_main_layout,
148 setting_phone_license_divx_mode_get_title_str
149 (ad), _("IDS_COM_BODY_BACK"),
151 setting_phone_license_divx_mode_click_softkey_back_cb,
154 /*elm_genlist_mode_set(scroller, ELM_LIST_COMPRESS); */
157 url = setting_customize_text("<underline=on><underline_color=#FF0000>"DIVX_URL"</underline_color></underline>", 0, "#FF0000", "center");
158 Evas_Object *outer_box = setting_create_client_bx(ad->win_main_layout);
160 SETTING_TRACE_DEBUG("str : %s", str);
161 desc = setting_customize_text(str, 0, NULL, "center");
163 Evas_Object *ly_desc = setting_create_textbox(ad->win_main_layout, desc);
164 setting_disable_evas_object(ly_desc);
165 elm_box_pack_end(outer_box, ly_desc);
167 Evas_Object *ly_url = setting_create_textbox(ad->win_main_layout, url);
168 evas_object_event_callback_add(ly_url, EVAS_CALLBACK_MOUSE_DOWN, __url_mouse_down_cb, ad);
169 elm_box_pack_end(outer_box, ly_url);
171 char tmp_str[MAX_COMMON_BUFFER_LEN] = { 0, };
172 snprintf(tmp_str, sizeof(tmp_str), "%s<br>%s", str, url);
173 desc = setting_customize_text(tmp_str, 0, NULL, "center");
174 Evas_Object *ly_desc = setting_create_textbox(ad->win_main_layout, desc);
175 setting_disable_evas_object(ly_desc);
176 elm_box_pack_end(outer_box, ly_desc);
179 elm_object_content_set(scroller, outer_box);
181 setting_view_phone_license_divx_mode.is_create = 1;
185 return SETTING_RETURN_SUCCESS;
188 static int setting_phone_license_divx_mode_destroy(void *cb)
192 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
194 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
196 elm_naviframe_item_pop(ad->navi_bar);
197 setting_view_phone_license_divx_mode.is_create = 0;
199 return SETTING_RETURN_SUCCESS;
202 static int setting_phone_license_divx_mode_update(void *cb)
205 return SETTING_RETURN_SUCCESS;
208 static int setting_phone_license_divx_mode_cleanup(void *cb)
210 return setting_phone_license_divx_mode_destroy(cb);
213 /* ***************************************************
217 ***************************************************/
219 /* ***************************************************
223 ***************************************************/
226 setting_phone_license_divx_mode_click_softkey_back_cb(void *data,
232 setting_retm_if(data == NULL, "Data parameter is NULL");
234 SettingPhoneUG *ad = (SettingPhoneUG *) data;
236 setting_view_change(&setting_view_phone_license_divx_mode,
237 &setting_view_phone_license_divx_main, ad);