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(service_create(&svc))
68 service_set_operation(svc, APPSVC_OPERATION_VIEW);
69 service_set_uri(svc, DIVX_URL);
70 service_send_launch_request(svc, NULL, NULL);
71 if (service_destroy(svc)) {
72 SETTING_TRACE_ERROR("bundle_free()");
74 //elm_win_lower(ad->win_main_layout);
79 static int setting_phone_license_divx_mode_create(void *cb)
83 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
85 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
86 char str[MAX_DISPLAY_NAME_LEN_ON_UI] = { 0, };
87 const char *desc = NULL;
88 const char *url = NULL;
90 if (ad->mode == SETTING_DIVX_MODE_REG) {
94 result = drm_get_data(DRM_DATA_TYPE_DIVX_REGISTRATION_CODE, NULL, &info);
97 ("%s*** regiString=%s, codeLength=%d, result=%d ***%s",
98 SETTING_FONT_BGREEN, info.code, info.code_len, (int)result,
101 if (result != 0 || '\0' == info.code[0]) {
102 SETTING_TRACE_ERROR("%s*** [ERR] DRM_FALSE ***%s",
105 ad->mode = SETTING_DIVX_MODE_DEREG;
106 setting_create_popup_without_btn(ad, ad->win_get,
107 NULL, _(REGISTRATION_GET_FAILED),
108 NULL, POPUP_INTERVAL, FALSE, FALSE);
109 snprintf(info.code, sizeof(info.code), "Unavailable");
111 safeStrNCat(str, _(REGISTRATION_INDICATOT), MAX_DISPLAY_NAME_LEN_ON_UI);
112 safeStrNCat(str, info.code, MAX_DISPLAY_NAME_LEN_ON_UI);
113 safeStrNCat(str, _(REGISTRATION_AT), MAX_DISPLAY_NAME_LEN_ON_UI);
117 drm_code_info_s info;
118 result = drm_get_data(DRM_DATA_TYPE_DIVX_DEREGISTRATION_CODE, NULL, &info);
121 ("%s*** deregiString=%s, codeLength=%d, result=%d ***%s",
122 SETTING_FONT_BGREEN, info.code, info.code_len, result,
125 if (result != 0 || '\0' == info.code[0]) {
126 SETTING_TRACE_ERROR("%s*** [ERR] DRM_FALSE ***%s",
129 ad->mode = SETTING_DIVX_MODE_REG;
130 setting_create_popup_without_btn(ad, ad->win_get,
131 NULL, _("IDS_ST_BODY_DE_REGISTRATION_CODE_NOT_FOUND"),
132 NULL, POPUP_INTERVAL, FALSE, FALSE);
133 snprintf(info.code, sizeof(info.code), "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
135 safeStrNCat(str, _(DEREGISTRATION_INDICATOT), MAX_DISPLAY_NAME_LEN_ON_UI);
136 safeStrNCat(str, info.code, MAX_DISPLAY_NAME_LEN_ON_UI);
137 safeStrNCat(str, _(EREGISTRATION_AT), MAX_DISPLAY_NAME_LEN_ON_UI);
140 Evas_Object *scroller;
142 setting_push_layout_navi_bar_scroller(ad->win_main_layout,
143 setting_phone_license_divx_mode_get_title_str
144 (ad), _("IDS_COM_BODY_BACK"),
146 setting_phone_license_divx_mode_click_softkey_back_cb,
149 elm_genlist_mode_set(scroller, ELM_LIST_COMPRESS);
152 url = setting_customize_text("<underline=on><underline_color=#FF0000>"DIVX_URL"</underline_color></underline>", 0, "#FF0000", "center");
153 Evas_Object *outer_box = setting_create_client_bx(ad->win_main_layout);
155 SETTING_TRACE_DEBUG("str : %s", str);
156 desc = setting_customize_text(str, 0, NULL, "center");
158 Evas_Object *ly_desc = setting_create_textbox(ad->win_main_layout, desc);
159 setting_disable_evas_object(ly_desc);
160 elm_box_pack_end(outer_box, ly_desc);
162 Evas_Object *ly_url = setting_create_textbox(ad->win_main_layout, url);
163 evas_object_event_callback_add(ly_url, EVAS_CALLBACK_MOUSE_DOWN, __url_mouse_down_cb, ad);
164 elm_box_pack_end(outer_box, ly_url);
166 char tmp_str[MAX_COMMON_BUFFER_LEN] = { 0, };
167 snprintf(tmp_str, sizeof(tmp_str), "%s<br>%s", str, url);
168 desc = setting_customize_text(tmp_str, 0, NULL, "center");
169 Evas_Object *ly_desc = setting_create_textbox(ad->win_main_layout, desc);
170 setting_disable_evas_object(ly_desc);
171 elm_box_pack_end(outer_box, ly_desc);
174 elm_object_content_set(scroller, outer_box);
176 setting_view_phone_license_divx_mode.is_create = 1;
180 return SETTING_RETURN_SUCCESS;
183 static int setting_phone_license_divx_mode_destroy(void *cb)
187 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
189 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
191 elm_naviframe_item_pop(ad->navi_bar);
192 setting_view_phone_license_divx_mode.is_create = 0;
194 return SETTING_RETURN_SUCCESS;
197 static int setting_phone_license_divx_mode_update(void *cb)
200 return SETTING_RETURN_SUCCESS;
203 static int setting_phone_license_divx_mode_cleanup(void *cb)
205 return setting_phone_license_divx_mode_destroy(cb);
208 /* ***************************************************
212 ***************************************************/
214 /* ***************************************************
218 ***************************************************/
221 setting_phone_license_divx_mode_click_softkey_back_cb(void *data,
227 setting_retm_if(data == NULL, "Data parameter is NULL");
229 SettingPhoneUG *ad = (SettingPhoneUG *) data;
231 setting_view_change(&setting_view_phone_license_divx_mode,
232 &setting_view_phone_license_divx_main, ad);