UninstallUpdates logic is added.
[platform/framework/native/installer.git] / src / backend / backend.cpp
index c04ec68..840a412 100755 (executable)
@@ -173,11 +173,21 @@ main(int argc, char **argv)
        case PKGMGR_REQ_UNINSTALL:
                {
                        PackageId reqeustPackageId;
-
                        path.SubString(0, PACKAGE_ID_LENGTH, reqeustPackageId);
-
                        AppLog("reqeustPackage = %ls", reqeustPackageId.GetPointer());
-                       ret = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi);
+
+                       String originPath;
+                       if (InstallerManager::IsUninstallUpdates(reqeustPackageId, originPath) == true)
+                       {
+                               AppLog("originPath = [%ls]", originPath.GetPointer());
+
+                               optionalData = reqeustPackageId;
+                               errorType = InstallerManager::Request(originPath, INSTALLER_OPERATION_INSTALL, INSTALLER_OPTION_RESET_PRELOADED, _pi, &optionalData);
+                       }
+                       else
+                       {
+                               ret = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi);
+                       }
 
                        __osp_installer_report_result(reqeustPackageId, errorType);
                }