Run MountInstall when xml file is not exist 54/281054/1
authorIlho Kim <ilho159.kim@samsung.com>
Thu, 8 Sep 2022 11:18:28 +0000 (20:18 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Thu, 8 Sep 2022 11:20:15 +0000 (20:20 +0900)
Change-Id: If5af96808e4bb5bd37ad92e91adcec237af2e9db
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/common/pkgmgr_interface.cc

index 3586684..184dfaf 100644 (file)
@@ -246,11 +246,22 @@ RequestType PkgMgrInterface::GetRequestType(int idx) const {
         else
           return RequestType::ManifestDirectUpdate;
       }
-    case PKGMGR_REQ_MOUNT_INSTALL:
-      if (!is_app_installed_.get())
+    case PKGMGR_REQ_MOUNT_INSTALL: {
+      if (!is_app_installed_.get()) {
         return RequestType::MountInstall;
-      else
-        return RequestType::MountUpdate;
+      } else {
+        std::string pkgid = query_interface->GetPkgId(GetRequestInfo(idx));
+        uid_t uid = GetUid();
+        ci::PkgQueryInterface pkg_query(pkgid, uid);
+        if (CheckIfAppFilesExists(pkgid, uid, pkg_query.IsReadonlyPackage())) {
+          return RequestType::MountUpdate;
+        } else {
+          RequestMode request_mode = GetRequestMode(uid);
+          UnregisterAppInPkgmgrForPkgId(pkgid, uid, request_mode);
+          return RequestType::MountInstall;
+        }
+      }
+    }
     default:
       return RequestType::Unknown;
   }