2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
17 * @file view_logic_certificate_origin_support.cpp
\r
18 * @author Leerang Song (leerang.song@samsung.com)
\r
20 * @brief Support certificate dao
\r
23 #include "view_logic_certificate_support.h"
\r
27 #include <Elementary.h>
\r
29 #include <dpl/log/log.h>
\r
30 #include <dpl/assert.h>
\r
31 #include <dpl/wrt-dao-ro/common_dao_types.h>
\r
32 #include <dpl/wrt-dao-ro/vconf_config.h>
\r
33 #include <wrt-commons/certificate-dao/certificate_dao.h>
\r
34 #include <widget_model.h>
\r
36 namespace ViewModule {
\r
38 const char* const DAEMON_EDJ_PATH = "/usr/share/edje/wrt/Daemon.edj";
\r
41 class CertificateSupportImplementation
\r
44 WidgetModel* m_model;
\r
45 CertificateDB::CertificateDAOPtr m_certificateDAO;
\r
48 CertificateSupportImplementation(WidgetModel* widgetModel) :
\r
51 Assert(widgetModel);
\r
52 m_model = widgetModel;
\r
55 ~CertificateSupportImplementation()
\r
58 CertificateDB::CertificateDAO* getCertificateDAO(void)
\r
61 if (!m_certificateDAO) {
\r
62 LogDebug("initialize CertificateDAO");
\r
64 CertificateDB::CertificateDAOPtr(
\r
65 new CertificateDB::CertificateDAO(m_model->TzPkgId.
\r
67 // initialize certificate result data. Remove allow, deny for
\r
68 m_certificateDAO->removeCertificateData(
\r
69 CertificateDB::RESULT_ALLOW_ONCE);
\r
70 m_certificateDAO->removeCertificateData(
\r
71 CertificateDB::RESULT_DENY_ONCE);
\r
73 return m_certificateDAO.get();
\r
77 CertificateSupport::CertificateSupport(WidgetModel* widgetModel) :
\r
78 m_impl(new CertificateSupportImplementation(widgetModel))
\r
81 CertificateSupport::~CertificateSupport()
\r
84 CertificateDB::CertificateDAO* CertificateSupport::
\r
85 getCertificateDAO(void)
\r
87 return m_impl->getCertificateDAO();
\r
90 Evas_Object* CertificateSupportUtil::createPopup(
\r
91 Evas_Object* window,
\r
92 const char* bodyText,
\r
93 const char* checkText,
\r
98 LogDebug("createPopup");
\r
99 Evas_Object* popup = elm_popup_add(window);
\r
101 Evas_Object* label = elm_label_add(popup);
\r
102 elm_object_style_set(label, "popup/default");
\r
103 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
\r
104 elm_object_text_set(label, bodyText);
\r
105 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
\r
106 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
\r
107 evas_object_show(label);
\r
109 Evas_Object* layout = elm_layout_add(popup);
\r
110 elm_layout_file_set(layout, DAEMON_EDJ_PATH, "popupWithCheck");
\r
111 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
\r
113 Evas_Object* check = elm_check_add(popup);
\r
114 evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
\r
115 evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
\r
116 evas_object_show(check);
\r
118 elm_object_part_text_set(layout, "elm.text", checkText);
\r
119 elm_object_part_content_set(layout, "elm.swallow.content", label);
\r
120 elm_object_part_content_set(layout, "elm.swallow.end", check);
\r
122 evas_object_show(layout);
\r
123 elm_object_content_set(popup, layout);
\r
124 Evas_Object* btn1 = elm_button_add(popup);
\r
125 elm_object_text_set(btn1, "YES");
\r
126 elm_object_part_content_set(popup, "button1", btn1);
\r
127 evas_object_smart_callback_add(btn1, "clicked", buttonCallback, data);
\r
128 Evas_Object* btn2 = elm_button_add(popup);
\r
129 elm_object_text_set(btn2, "NO");
\r
130 elm_object_part_content_set(popup, "button2", btn2);
\r
131 evas_object_smart_callback_add(btn2, "clicked", buttonCallback, data);
\r
135 Evas_Object* CertificateSupportUtil::getPopup(Evas_Object* button)
\r
139 Evas_Object* popup = button;
\r
140 while (strcmp(elm_object_widget_type_get(popup), "elm_popup")) {
\r
141 popup = elm_object_parent_widget_get(popup);
\r
149 Evas_Object* CertificateSupportUtil::getCheck(Evas_Object* popup)
\r
152 if (strcmp(elm_object_widget_type_get(popup), "elm_popup")) {
\r
155 Evas_Object* check = elm_object_part_content_get(
\r
156 elm_object_content_get(popup),
\r
157 "elm.swallow.end");
\r
161 CertificateDB::Result CertificateSupportUtil::getResult(
\r
162 Evas_Object* button)
\r
164 using namespace CertificateDB;
\r
167 // get popup evas_object
\r
168 Evas_Object* popup = getPopup(button);
\r
169 if (popup == NULL) {
\r
170 return RESULT_UNKNOWN;
\r
172 bool allow = !strcmp("YES", elm_object_text_get(button));
\r
174 // get check evas_object
\r
175 Evas_Object* check = getCheck(popup);
\r
176 if (check == NULL) {
\r
177 return RESULT_UNKNOWN;
\r
180 return elm_check_state_get(check) ? RESULT_ALLOW_ALWAYS :
\r
183 return elm_check_state_get(check) ? RESULT_DENY_ALWAYS :
\r
187 } // namespace ViewModule
\r