#include "UninstallStep.h"
#include "InstallerUtil.h"
#include "CompatibilityManager.h"
-#include "DeviceManager.h"
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
InstallerError
UninstallStep::OnStateGetPackageInfo(void)
{
+ bool res = true;
+ result r = E_SUCCESS;
InstallerError error = INSTALLER_ERROR_NONE;
PackageId packageId = __pContext->__packageId;
AppLog("package = %ls", packageId.GetPointer());
- result r = pPackageInfoImpl->Construct(packageId);
+ r = pPackageInfoImpl->Construct(packageId);
TryReturn(r == E_SUCCESS, INSTALLER_ERROR_INTERNAL_STATE, "pPackageInfoImpl->Construct(%ls) failed.", packageId.GetPointer());
// bool isUninstallable = pPackageInfoImpl->IsUninstallable();
__pContext->__isPreloaded = true;
}
- __pContext->__rootPath = pPackageInfoImpl->GetAppRootPath();
+ //res = IsAvailableUninstall();
+ //TryReturn(res == true, INSTALLER_ERROR_DISABLED, "IsAvailableUninstall(%ls) failed.", packageId.GetPointer());
- if (__pContext->__isHybridService == true)
- {
- AppLog("Uninstallation for HybridService");
- __state = STATE_TERMINATE_APP;
- return error;
- }
+ __pContext->__rootPath = pPackageInfoImpl->GetAppRootPath();
if (pPackageInfoImpl->IsInstalledInExternalStorage() == true)
{
AppLog("[app2sd] pre_uninstall(%s)", pPackageId.get());
}
- ArrayList* pList = pPackageInfoImpl->GetAppInfoListN();
+ std::unique_ptr< ArrayList > pList(pPackageInfoImpl->GetAppInfoListN());
TryReturn(pList, INSTALLER_ERROR_DATABASE, "pList is null.");
- for (int i = 0; i < pList->GetCount(); i++)
+ for (int i = 0; i < pList.get()->GetCount(); i++)
{
- _PackageAppInfoImpl* pAppInfoImpl = dynamic_cast<_PackageAppInfoImpl*>(pList->GetAt(i));
+ _PackageAppInfoImpl* pAppInfoImpl = dynamic_cast<_PackageAppInfoImpl*>(pList.get()->GetAt(i));
if (pAppInfoImpl)
{
- AppData* pAppData = new (std::nothrow) AppData;
- TryReturn(pAppData, INSTALLER_ERROR_OUT_OF_MEMORY, "pAppData is null");
+ std::unique_ptr< AppData > pAppData(new (std::nothrow) AppData);
+ TryReturn(pAppData, INSTALLER_ERROR_OUT_OF_MEMORY, "pAppData is null.");
- error = pAppData->Construct();
- TryReturn(error == INSTALLER_ERROR_NONE, INSTALLER_ERROR_INTERNAL_STATE, "pAppData->Construct() failed.");
+ error = pAppData.get()->Construct();
+ TryReturn(error == INSTALLER_ERROR_NONE, INSTALLER_ERROR_INTERNAL_STATE, "pAppData.get()->Construct() failed.");
- pAppData->__appId = pAppInfoImpl->GetPackageName();
- pAppData->__feature = pAppInfoImpl->GetAppFeature();
+ pAppData.get()->__appId = pAppInfoImpl->GetPackageName();
+ pAppData.get()->__feature = pAppInfoImpl->GetAppFeature();
- __pContext->__pAppDataList->Add(pAppData);
+ __pContext->__pAppDataList->Add(pAppData.release());
}
}
- delete pList;
GoNextState();
return error;
{
InstallerError error = INSTALLER_ERROR_NONE;
- DeviceManager deviceManager;
- deviceManager.Construct(__pContext);
-
- bool res = deviceManager.IsUninstallationDisabled();
- TryReturn(res == false, INSTALLER_ERROR_DISABLED, "IsUninstallationDisabled() failed.");
-
GoNextState();
return error;
}
{
InstallerError error = INSTALLER_ERROR_NONE;
- InstallerUtil::TerminateApps(__pContext->__packageId);
+ InstallerUtil::TerminateApps(__pContext->__packageId, true);
GoNextState();
return error;
AppLog("Directory::Remove - START");
- if (__pContext->__isHybridService == true)
+ String realPath;
+ if (InstallerUtil::IsSymlink(rootPath) == true)
{
- AppLog("Uninstallation for HybridService - skip Remove");
-
- }
- else
- {
- String realPath;
- if (InstallerUtil::IsSymlink(rootPath) == true)
+ if (InstallerUtil::GetRealPath(rootPath, realPath) == true)
{
- if (InstallerUtil::GetRealPath(rootPath, realPath) == true)
- {
- InstallerUtil::Remove(realPath);
- }
+ InstallerUtil::Remove(realPath);
}
-
- InstallerUtil::Remove(rootPath);
}
+ InstallerUtil::Remove(rootPath);
+
+
IListT<AppData*>* pAppDataList = __pContext->__pAppDataList;
TryReturn(pAppDataList, INSTALLER_ERROR_INTERNAL_STATE, "pAppDataList is null");