if (request_type_ == ci::RequestType::Uninstall)
if (!SendAppids(type, pkgid))
return false;
+ for (auto l : user_list_)
+ SendAppids(l.first, type, pkgid);
return true;
}
return true;
}
+bool PkgmgrSignal::SendAppids(uid_t uid,
+ const std::string& type,
+ const std::string& pkgid) const {
+ std::vector<std::string> appids;
+ if (!QueryAppidsForPkgId(pkgid, &appids, pkgmgr_installer_get_uid(pi_)))
+ return true;
+ for (auto& appid : appids) {
+ if (pkgmgr_installer_send_app_uninstall_signal_for_uid(
+ pi_, uid, type.c_str(), pkgid.c_str(), appid.c_str()))
+ return false;
+ }
+ return true;
+}
+
bool PkgmgrSignal::SetupUserList(const std::string& pkgid) {
int i;
uid_t* uids = nullptr;
const std::string& pkgid = std::string()) const;
const char* GetResultKey(Step::Status result) const;
bool SendAppids(const std::string& type, const std::string& pkgid) const;
+ bool SendAppids(uid_t uid, const std::string& type,
+ const std::string& pkgid) const;
bool SetupUserList(const std::string& pkgid);
pkgmgr_installer* pi_;