#include <dpl/wrt-dao-ro/config_parser_data.h>
#include "widget_installer_struct.h"
+using namespace Jobs::Exceptions;
+
namespace Jobs {
namespace WidgetInstall {
+enum class ConfigureResult
+{
+ Ok,
+ Deferred,
+ Updated,
+ Failed,
+ Failed_InvalidConfig,
+ Failed_LowerVersion,
+ Failed_AlreadyInstalled,
+ Failed_WidgetRunning,
+ Failed_DrmError,
+};
+
class JobWidgetInstall :
public Job,
public JobProgressBase<InstallerContext::InstallStep,
InstallerContext m_installerContext;
//TODO move it to base class of all jobs -> make it base template class??
- Exceptions::Type m_exceptionCaught;
+ Jobs::Exceptions::Type m_exceptionCaught;
std::string m_exceptionMessage;
WidgetUpdateInfo m_widgetUpdateInfo;
- bool m_needEncryption;
- bool m_isDRM;
-
- enum class ConfigureResult
- {
- Ok, Failed, Deferred, Updated
- };
+ bool m_needEncryption;
+ bool m_isDRM;
ConfigureResult ConfigureInstallation(const std::string &widgetSource,
const WrtDB::ConfigParserData
&configData,
- const WidgetUpdateInfo &update,
const std::string &tempPath);
static WrtDB::ConfigParserData getWidgetDataFromXML(
- const std::string &widgetSource,
- const std::string &tempPath,
- WrtDB::PackagingType pkgType,
- bool isDRM);
+ const std::string &widgetSource,
+ const std::string &tempPath,
+ WrtDB::PackagingType pkgType,
+ bool isDRM);
static WidgetUpdateInfo detectWidgetUpdate(
- const WrtDB::ConfigParserData &configInfo);
+ const WrtDB::ConfigParserData &configInfo,
+ const WrtDB::TizenAppId &tizenId);
WidgetUpdateMode::Type CalcWidgetUpdatePolicy(
- const OptionalWidgetVersion &existingVersion,
- const OptionalWidgetVersion &incomingVersion) const;
- bool setTizenId(const WrtDB::ConfigParserData &configInfo,
- ConfigureResult result);
+ const OptionalWidgetVersion &existingVersion,
+ const OptionalWidgetVersion &incomingVersion) const;
+ void setTizenId(const WrtDB::ConfigParserData &configInfo);
void displayWidgetInfo();
void configureWidgetLocation(const std::string & widgetPath,
const std::string &tempPath);
WrtDB::PackagingType checkPackageType(
- const std::string &widgetSource,
- const std::string &tempPath);
+ const std::string &widgetSource,
+ const std::string &tempPath);
bool detectResourceEncryption(const WrtDB::ConfigParserData &configData);
- std::string generateTizenId();
+ void setInstallLocationType(const WrtDB::ConfigParserData
+ &configData);
bool isDRMWidget(std::string widgetPath);
bool DecryptDRMWidget(std::string widgetPath, std::string destPath);
ConfigureResult PrePareInstallation(const std::string &widgetPath);
+ bool validateTizenApplicationID(const WrtDB::TizenAppId &tizenAppId);
+ bool validateTizenPackageID(const WrtDB::TizenPkgId &tizenPkgId);
+ ConfigureResult checkWidgetUpdate(const WidgetUpdateInfo &update);
+ void setApplicationType(const WrtDB::ConfigParserData &configInfo);
public:
/**
* @brief Automaticaly sets installation process
*/
JobWidgetInstall(std::string const & widgetPath,
- const WidgetInstallationStruct &installerStruct);
-
- DPL::OptionalString getNewTizenId() const;
+ const WidgetInstallationStruct &installerStruct);
//overrides
void SendProgress();
void SendFinishedSuccess();
void SendFinishedFailure();
+ void SendProgressIconPath(const std::string &path);
void SaveExceptionData(const Jobs::JobExceptionBase&);
};
} //namespace WidgetInstall