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;
}