2 * Copyright (c) 2012 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 #include <PrivacyManagerClient.h>
\r
18 #include <PrivacyDb.h>
\r
19 #include <SocketClient.h>
\r
20 #include <PrivacyIdInfo.h>
\r
21 #include <algorithm>
\r
25 #undef __READ_DB_IPC__
\r
28 std::mutex PrivacyManagerClient::m_singletonMutex;
\r
29 PrivacyManagerClient* PrivacyManagerClient::m_pInstance = NULL;
\r
30 const std::string PrivacyManagerClient::INTERFACE_NAME("PrivacyInfoService");
\r
32 PrivacyManagerClient::PrivacyManagerClient(void)
\r
34 std::unique_ptr<SocketClient> pSocketClient(new SocketClient(INTERFACE_NAME));
\r
35 m_pSocketClient = std::move(pSocketClient);
\r
38 PrivacyManagerClient*
\r
39 PrivacyManagerClient::getInstance(void)
\r
41 std::lock_guard<std::mutex> guard(m_singletonMutex);
\r
42 if (m_pInstance == NULL)
\r
43 m_pInstance = new PrivacyManagerClient();
\r
48 PrivacyManagerClient::addAppPackagePrivacyInfo(const std::string pkgId, const std::list < std::string >& list, bool privacyPopupRequired, bool isServerOperation)
\r
51 std::list < std::string > privacyList;
\r
53 int res = PrivacyIdInfo::getPrivacyIdListFromPrivilegeList(list, privacyList);
\r
54 if (res != PRIV_MGR_ERROR_SUCCESS )
\r
57 if (privacyList.size() == 0)
\r
58 return PRIV_MGR_ERROR_SUCCESS;
\r
60 if (isServerOperation == true)
\r
62 int result = PRIV_MGR_ERROR_SUCCESS;
\r
63 res = m_pSocketClient->connect();
\r
64 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
65 res = m_pSocketClient->call("addPrivacyInfo", pkgId, privacyList, privacyPopupRequired, &result);
\r
66 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
67 res = m_pSocketClient->disconnect();
\r
68 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
\r
74 return PrivacyDb::getInstance()->addAppPackagePrivacyInfo(pkgId, privacyList, privacyPopupRequired);
\r
79 PrivacyManagerClient::removeAppPackagePrivacyInfo(const std::string pkgId, bool isServerOperation)
\r
81 if (isServerOperation == true)
\r
83 int result = PRIV_MGR_ERROR_SUCCESS;
\r
84 int res = m_pSocketClient->connect();
\r
85 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
86 result = m_pSocketClient->call("removePrivacyInfo", pkgId, &result);
\r
87 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
88 result = m_pSocketClient->disconnect();
\r
89 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
\r
94 return PrivacyDb::getInstance()->removeAppPackagePrivacyInfo(pkgId);
\r
98 PrivacyManagerClient::setPrivacySetting(const std::string pkgId, const std::string privacyId, bool isEnabled)
\r
100 int result = PRIV_MGR_ERROR_SUCCESS;
\r
101 int res = m_pSocketClient->connect();
\r
102 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
103 res = m_pSocketClient->call("setPrivacySetting", pkgId, privacyId, isEnabled, &result);
\r
104 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
105 res = m_pSocketClient->disconnect();
\r
106 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
112 PrivacyManagerClient::getPrivacyAppPackages(std::list < std::string >& list) const
\r
114 #ifdef __READ_DB_IPC__
\r
116 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
\r
118 int result = PRIV_MGR_ERROR_SUCCESS
\r
121 int res = pSocketClient->connect();
\r
122 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
123 res = pSocketClient->call("getPrivacyAppPackages", &result, &size, &list);
\r
124 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
125 res = pSocketClient->disconnect();
\r
126 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
131 return PrivacyDb::getInstance()->getPrivacyAppPackages(list);
\r
135 PrivacyManagerClient::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair <std::string, bool > > & list) const
\r
137 #ifdef __READ_DB_IPC__
\r
138 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
\r
140 int result = PRIV_MGR_ERROR_SUCCESS;
\r
141 int res = pSocketClient->connect();
\r
142 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
143 pSocketClient->call("getAppPackagePrivacyInfo", pkgId, &result, &list);
\r
144 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
145 pSocketClient->disconnect();
\r
146 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
\r
151 return PrivacyDb::getInstance()->getAppPackagePrivacyInfo(pkgId, list);
\r
155 PrivacyManagerClient::isUserPrompted(const std::string pkgId, bool& isPrompted) const
\r
157 #ifdef __READ_DB_IPC__
\r
160 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
\r
162 int result = PRIV_MGR_ERROR_SUCCESS;
\r
163 int res = pSocketClient->connect();
\r
164 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
165 res = pSocketClient->call("isUserPrompted", pkgId, &result, &isPrompted);
\r
166 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
167 res = pSocketClient->disconnect();
\r
168 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
\r
174 return PrivacyDb::getInstance()->isUserPrompted(pkgId, isPrompted);
\r
178 PrivacyManagerClient::setUserPrompted(const std::string pkgId, bool prompted)
\r
182 std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));
\r
184 int result = PRIV_MGR_ERROR_SUCCESS;
\r
185 int res = pSocketClient->connect();
\r
186 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "connect : %d", res);
\r
187 res = pSocketClient->call("setUserPrompted", pkgId, prompted, &result);
\r
188 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, m_pSocketClient->disconnect(), "call : %d", res);
\r
189 res = pSocketClient->disconnect();
\r
190 TryReturn(res == PRIV_MGR_ERROR_SUCCESS, res, , "disconnect : %d", res);
\r
198 PrivacyManagerClient::getAppPackagesbyPrivacyId(const std::string privacyId, std::list < std::pair < std::string, bool > >& list) const
\r
200 return PrivacyDb::getInstance()->getAppPackagesbyPrivacyId(privacyId, list);
\r
204 PrivacyManagerClient::getPrivaycDisplayName(const std::string privacyId, std::string& displayName) const
\r
206 return PrivacyIdInfo::getPrivaycDisplayName(privacyId, displayName);
\r
210 PrivacyManagerClient::getPrivaycDescription(const std::string privacyId, std::string& description) const
\r
212 return PrivacyIdInfo::getPrivaycDescription(privacyId, description);
\r