*/\r
\r
#include <sstream>\r
-#include <PrivacyManagerServer.h>\r
#include <dlog.h>\r
#include <Utils.h>\r
+#include <PrivacyManagerServer.h>\r
#include <PrivacyManagerTypes.h>\r
-#include <sqlite3.h>\r
+#include <PrivacyDb.h>\r
\r
std::mutex PrivacyManagerServer::m_singletonMutex;\r
PrivacyManagerServer* PrivacyManagerServer::m_pInstance = NULL;\r
int\r
PrivacyManagerServer::setPrivacySetting(const std::string pkgId, const std::string privacyId, bool enabled)\r
{\r
- LOGI("enter");\r
-\r
- static const std::string query = std::string("UPDATE PrivacyInfo set IS_ENABLED =? where PKG_ID=? and PRIVACY_ID=?");\r
-\r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, query.c_str(), pStmt);\r
+ int res = PrivacyDb::getInstance()->setPrivacySetting(pkgId, privacyId, enabled);\r
+ TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "privacyDb::setPrivacySetting : %d", res);\r
\r
- int res = sqlite3_bind_int(pStmt.get(), 1, enabled);\r
- TryReturn(res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
+ res = m_notificationServer.notifySettingChanged(pkgId, privacyId);\r
+ TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "NotificationServer::notifySettingChanged : %d", res);\r
\r
- res = sqlite3_bind_text(pStmt.get(), 2, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn(res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
-\r
- res = sqlite3_bind_text(pStmt.get(), 3, privacyId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
- \r
- res = sqlite3_step(pStmt.get());\r
- TryReturn( res == SQLITE_DONE, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_step : %d", res);\r
-\r
- res = m_notificationServer.notify(pkgId, privacyId);\r
- TryReturn( res == 0, res, , "m_notificationServer.notify : %d", res);\r
-\r
- LOGI("leave");\r
-\r
- return 0;\r
+ return res;\r
}\r
\r
int\r
PrivacyManagerServer::getPrivacyAppPackages(std::list <std::string>& list)\r
{\r
- LOGI("enter");\r
-\r
- std::string query = "SELECT PKG_ID from PackageInfo";\r
-\r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, query.c_str(), pStmt);\r
-\r
- while ( sqlite3_step(pStmt.get()) == SQLITE_ROW )\r
- {\r
- const char* pValue = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
-\r
- LOGD("AppId found : %s ", pValue);\r
- list.push_back(std::string(pValue));\r
- }\r
-\r
- LOGI("leave");\r
-\r
- return 0;\r
+ return PrivacyDb::getInstance()->getPrivacyAppPackages(list);\r
}\r
\r
int\r
PrivacyManagerServer::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair < std::string, bool > >& privacyInfoList)\r
{\r
- LOGI("enter");\r
-\r
- static const std::string query = "SELECT PRIVACY_ID, IS_ENABLED from PrivacyInfo where PKG_ID=?";\r
-\r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, query.c_str(), pStmt);\r
-\r
- int res = sqlite3_bind_text(pStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
-\r
- LOGI("start");\r
-\r
- while ( (res= sqlite3_step(pStmt.get())) == SQLITE_ROW )\r
- {\r
- const char* privacyId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
- bool privacyEnabled = sqlite3_column_int(pStmt.get(), 1) > 0 ? true : false;\r
-\r
- privacyInfoList.push_back( std::pair <std::string, bool> (std::string(privacyId), privacyEnabled) );\r
-\r
- LOGD("Privacy found : %s %d", privacyId, privacyEnabled);\r
- }\r
-\r
- LOGI("leave");\r
-\r
- return 0;\r
+ return PrivacyDb::getInstance()->getAppPackagePrivacyInfo(pkgId, privacyInfoList);\r
}\r
\r
\r
int\r
-PrivacyManagerServer::addAppPackagePrivacyInfo(const std::string pkgId, const std::list < std::string > privilegeList)\r
+PrivacyManagerServer::addAppPackagePrivacyInfo(const std::string pkgId, const std::list < std::string > privilegeList, bool privacyPopupRequired)\r
{\r
- LOGI("enter");\r
-\r
- static const std::string pkgInfoQuery("INSERT INTO PackageInfo(PKG_ID, IS_SET) VALUES(?, ?)");\r
- static const std::string privacyQuery("INSERT INTO PrivacyInfo(PKG_ID, PRIVACY_ID, IS_ENABLED) VALUES(?, ?, ?)");\r
- \r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, pkgInfoQuery.c_str(), pPkgInfoStmt);\r
-\r
- int res = sqlite3_bind_text(pPkgInfoStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
- \r
- res = sqlite3_bind_int(pPkgInfoStmt.get(), 2, 0);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
-\r
- res = sqlite3_step(pPkgInfoStmt.get());\r
- TryReturn( res == SQLITE_DONE, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_step : %d", res);\r
- \r
- for ( std::list <std::string>::const_iterator iter = privilegeList.begin(); iter != privilegeList.end(); ++iter)\r
- {\r
- LOGD(" install privacy: %s", iter->c_str());\r
- prepareDb(pDbHandler, privacyQuery.c_str(), pPrivacyStmt);\r
- \r
- res = sqlite3_bind_text(pPrivacyStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
-\r
- res = sqlite3_bind_text(pPrivacyStmt.get(), 2, iter->c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
- \r
- // Before setting app and popup is ready, default value is true\r
- res = sqlite3_bind_int(pPrivacyStmt.get(), 3, 1);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
-\r
- res = sqlite3_step(pPrivacyStmt.get());\r
- TryReturn( res == SQLITE_DONE || res == SQLITE_CONSTRAINT, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_step : %d", res);\r
-\r
- sqlite3_reset(pPrivacyStmt.get());\r
- }\r
-\r
- return 0;\r
+ return PrivacyDb::getInstance()->addAppPackagePrivacyInfo(pkgId, privilegeList, privacyPopupRequired);\r
}\r
\r
int\r
PrivacyManagerServer::removeAppPackagePrivacyInfo(const std::string pkgId)\r
{\r
- LOGI("enter");\r
+ int res = PrivacyDb::getInstance()->removeAppPackagePrivacyInfo(pkgId);\r
+ TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "privacyDb::removeAppPackagePrivacyInfo : %d", res);\r
\r
- static const std::string pkgInfoQuery("DELETE FROM PackageInfo WHERE PKG_ID=?");\r
- static const std::string privacyQuery("DELETE FROM PrivacyInfo WHERE PKG_ID=?");\r
+ res = m_notificationServer.notifyPkgRemoved(pkgId);\r
+ TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "NotificationServer::notifyPkgRemoved : %d", res);\r
\r
- int res;\r
-\r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, pkgInfoQuery.c_str(), pPkgInfoStmt);\r
-\r
- res = sqlite3_bind_text(pPkgInfoStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
-\r
- res = sqlite3_step(pPkgInfoStmt.get());\r
- TryReturn( res == SQLITE_DONE, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_step : %d", res);\r
-\r
- prepareDb(pDbHandler, privacyQuery.c_str(), pPrivacyStmt);\r
-\r
- res = sqlite3_bind_text(pPrivacyStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res); \r
-\r
- res = sqlite3_step(pPrivacyStmt.get());\r
- TryReturn( res == SQLITE_DONE, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_step : %d", res);\r
-\r
- return 0;\r
+ return res;\r
}\r
\r
int\r
PrivacyManagerServer::isUserPrompted(const std::string pkgId, bool& isPrompted)\r
{\r
- LOGI("enter");\r
-\r
- static const std::string query = "SELECT IS_SET from PackageInfo where PKG_ID=?";\r
-\r
- isPrompted = true;\r
-\r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, query.c_str(), pStmt);\r
-\r
- int res = sqlite3_bind_text(pStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
-\r
- std::unique_ptr < std::list < std::pair < std:: string, bool > > > pList ( new std::list < std::pair < std:: string, bool > >);\r
-\r
- if ((res = sqlite3_step(pStmt.get())) == SQLITE_ROW)\r
- {\r
- isPrompted = sqlite3_column_int(pStmt.get(), 0) > 0 ? true : false;\r
- }\r
- else\r
- {\r
- LOGE("The package[%s] doesnt access privacy", pkgId.c_str());\r
- return PRIV_MGR_ERROR_DB_ERROR;\r
- }\r
-\r
- return 0;\r
+ return PrivacyDb::getInstance()->isUserPrompted(pkgId, isPrompted);\r
}\r
\r
int\r
PrivacyManagerServer::setUserPrompted(const std::string pkgId, bool prompted)\r
{\r
- LOGI("enter :%s - %d", pkgId.c_str(), prompted);\r
-\r
- std::string query = std::string("UPDATE PackageInfo set IS_SET =? where PKG_ID=?");\r
-\r
- int res;\r
-\r
- openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
- prepareDb(pDbHandler, query.c_str(), pStmt);\r
-\r
- res = sqlite3_bind_int(pStmt.get(), 1, prompted? 1 : 0);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
-\r
- res = sqlite3_bind_text(pStmt.get(), 2, pkgId.c_str(), -1, SQLITE_TRANSIENT);\r
- TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
-\r
- res = sqlite3_step(pStmt.get());\r
- TryReturn( res == SQLITE_DONE, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_step : %d", res);\r
-\r
- return 0;\r
+ return PrivacyDb::getInstance()->setUserPrompted(pkgId, prompted);\r
}\r
\r
PrivacyManagerServer::PrivacyManagerServer(void)\r