Fix wrong IsPackageInstalled() logic 89/159389/1
authorSeungha Son <seungha.son@samsung.com>
Wed, 8 Nov 2017 12:24:21 +0000 (21:24 +0900)
committerSeungha Son <seungha.son@samsung.com>
Wed, 8 Nov 2017 12:26:00 +0000 (21:26 +0900)
Signed-off-by: Seungha Son <seungha.son@samsung.com>
Change-Id: I63d0f8a956bda8b9974dcfa0a2231a69fa05654c

src/common/pkgmgr_query.cc

index eb5fec0..e38637f 100644 (file)
@@ -114,7 +114,19 @@ std::string PkgQueryInterface::StorageForPkgId() {
 }
 
 bool PkgQueryInterface::IsPackageInstalled() {
-  return IsValid();
+  if (!IsValid())
+    return false;
+  bool is_global = false;
+  if (pkgmgrinfo_pkginfo_is_for_all_users(handle_, &is_global) != PMINFO_R_OK) {
+    LOG(ERROR) << "pkgmgrinfo_pkginfo_is_for_all_users failed";
+    return false;
+  }
+
+  if (uid_ == kGlobalUserUid && is_global)
+    return true;
+  if (uid_ != kGlobalUserUid && is_global)
+    return false;
+  return true;
 }
 
 bool PkgQueryInterface::IsPackageInstalled(RequestMode mode) {