2 * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #include <PrivacyManagerClient.h>
18 #include <PrivacyDb.h>
19 #include <SocketClient.h>
20 #include <PrivacyIdInfo.h>
25 #undef __READ_DB_IPC__
28 std::mutex PrivacyManagerClient::m_singletonMutex;
29 PrivacyManagerClient* PrivacyManagerClient::m_pInstance = NULL;
30 const std::string PrivacyManagerClient::INTERFACE_NAME("PrivacyInfoService");
32 PrivacyManagerClient::PrivacyManagerClient(void)
34 std::unique_ptr<SocketClient> pSocketClient(new SocketClient(INTERFACE_NAME));
35 m_pSocketClient = std::move(pSocketClient);
39 PrivacyManagerClient::getInstance(void)
41 std::lock_guard<std::mutex> guard(m_singletonMutex);
42 if (m_pInstance == NULL)
43 m_pInstance = new PrivacyManagerClient();
48 PrivacyManagerClient::addAppPackagePrivacyInfo(const std::string pkgId, const std::list < std::string >& list, bool privacyPopupRequired, bool isServerOperation)
51 std::list < std::string > privacyList;
53 int res = PrivacyIdInfo::getPrivacyIdListFromPrivilegeList(list, privacyList);
54 if (res != PRIV_MGR_ERROR_SUCCESS )
57 if (privacyList.size() == 0)
58 return PRIV_MGR_ERROR_SUCCESS;
60 if (isServerOperation == true)
62 int result = PRIV_MGR_ERROR_SUCCESS;
63 res = m_pSocketClient->connect();
64 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
65 res = m_pSocketClient->call("addPrivacyInfo", pkgId, privacyList, privacyPopupRequired, &result);
66 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
67 res = m_pSocketClient->disconnect();
68 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
74 return PrivacyDb::getInstance()->addAppPackagePrivacyInfo(pkgId, privacyList, privacyPopupRequired);
79 PrivacyManagerClient::removeAppPackagePrivacyInfo(const std::string pkgId, bool isServerOperation)
81 if (isServerOperation == true)
83 int result = PRIV_MGR_ERROR_SUCCESS;
84 int res = m_pSocketClient->connect();
85 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
86 result = m_pSocketClient->call("removePrivacyInfo", pkgId, &result);
87 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
88 result = m_pSocketClient->disconnect();
89 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
94 return PrivacyDb::getInstance()->removeAppPackagePrivacyInfo(pkgId);
98 PrivacyManagerClient::setPrivacySetting(const std::string pkgId, const std::string privacyId, bool isEnabled)
100 int result = PRIV_MGR_ERROR_SUCCESS;
101 int res = m_pSocketClient->connect();
102 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
103 res = m_pSocketClient->call("setPrivacySetting", pkgId, privacyId, isEnabled, &result);
104 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
105 res = m_pSocketClient->disconnect();
106 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
112 PrivacyManagerClient::getPrivacyAppPackages(std::list < std::string >& list) const
114 #ifdef __READ_DB_IPC__
116 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
118 int result = PRIV_MGR_ERROR_SUCCESS
121 int res = pSocketClient->connect();
122 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
123 res = pSocketClient->call("getPrivacyAppPackages", &result, &size, &list);
124 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
125 res = pSocketClient->disconnect();
126 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
131 return PrivacyDb::getInstance()->getPrivacyAppPackages(list);
135 PrivacyManagerClient::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair <std::string, bool > > & list) const
137 #ifdef __READ_DB_IPC__
138 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
140 int result = PRIV_MGR_ERROR_SUCCESS;
141 int res = pSocketClient->connect();
142 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
143 pSocketClient->call("getAppPackagePrivacyInfo", pkgId, &result, &list);
144 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
145 pSocketClient->disconnect();
146 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
151 return PrivacyDb::getInstance()->getAppPackagePrivacyInfo(pkgId, list);
155 PrivacyManagerClient::isUserPrompted(const std::string pkgId, bool& isPrompted) const
157 #ifdef __READ_DB_IPC__
158 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
160 int result = PRIV_MGR_ERROR_SUCCESS;
161 int res = pSocketClient->connect();
162 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
163 res = pSocketClient->call("isUserPrompted", pkgId, &result, &isPrompted);
164 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
165 res = pSocketClient->disconnect();
166 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
170 return PrivacyDb::getInstance()->isUserPrompted(pkgId, isPrompted);
174 PrivacyManagerClient::setUserPrompted(const std::string pkgId, bool prompted)
176 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
178 int result = PRIV_MGR_ERROR_SUCCESS;
179 int res = pSocketClient->connect();
180 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
181 res = pSocketClient->call("setUserPrompted", pkgId, prompted, &result);
182 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
183 res = pSocketClient->disconnect();
184 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
190 PrivacyManagerClient::getAppPackagesbyPrivacyId(const std::string privacyId, std::list < std::pair < std::string, bool > >& list) const
192 return PrivacyDb::getInstance()->getAppPackagesbyPrivacyId(privacyId, list);
196 PrivacyManagerClient::getPrivaycDisplayName(const std::string privacyId, std::string& displayName) const
198 return PrivacyIdInfo::getPrivaycDisplayName(privacyId, displayName);
202 PrivacyManagerClient::getPrivaycDescription(const std::string privacyId, std::string& description) const
204 return PrivacyIdInfo::getPrivaycDescription(privacyId, description);