forked from qt-creator/qt-creator
Android: Make parseDeployError() static
Rename DeployErrorCode into DeployErrorFlag and make it a flag type. Change-Id: I459a72a3a0a1dcddc275cd649a7f55c15369359d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -66,13 +66,7 @@ const QLatin1String InstallFailedUpdateIncompatible("INSTALL_FAILED_UPDATE_INCOM
|
|||||||
const QLatin1String InstallFailedPermissionModelDowngrade("INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE");
|
const QLatin1String InstallFailedPermissionModelDowngrade("INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE");
|
||||||
const QLatin1String InstallFailedVersionDowngrade("INSTALL_FAILED_VERSION_DOWNGRADE");
|
const QLatin1String InstallFailedVersionDowngrade("INSTALL_FAILED_VERSION_DOWNGRADE");
|
||||||
|
|
||||||
// AndroidDeployQtStep
|
enum DeployErrorFlag
|
||||||
|
|
||||||
class AndroidDeployQtStep : public BuildStep
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
enum DeployErrorCode
|
|
||||||
{
|
{
|
||||||
NoError = 0,
|
NoError = 0,
|
||||||
InconsistentCertificates = 0x0001,
|
InconsistentCertificates = 0x0001,
|
||||||
@@ -82,11 +76,35 @@ class AndroidDeployQtStep : public BuildStep
|
|||||||
Failure = 0x0010
|
Failure = 0x0010
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_FLAGS(DeployErrorFlags, DeployErrorFlag)
|
||||||
|
|
||||||
|
static DeployErrorFlags parseDeployErrors(const QString &deployOutputLine)
|
||||||
|
{
|
||||||
|
DeployErrorFlags errorCode = NoError;
|
||||||
|
|
||||||
|
if (deployOutputLine.contains(InstallFailedInconsistentCertificatesString))
|
||||||
|
errorCode |= InconsistentCertificates;
|
||||||
|
if (deployOutputLine.contains(InstallFailedUpdateIncompatible))
|
||||||
|
errorCode |= UpdateIncompatible;
|
||||||
|
if (deployOutputLine.contains(InstallFailedPermissionModelDowngrade))
|
||||||
|
errorCode |= PermissionModelDowngrade;
|
||||||
|
if (deployOutputLine.contains(InstallFailedVersionDowngrade))
|
||||||
|
errorCode |= VersionDowngrade;
|
||||||
|
|
||||||
|
return errorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AndroidDeployQtStep
|
||||||
|
|
||||||
|
class AndroidDeployQtStep : public BuildStep
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AndroidDeployQtStep(BuildStepList *bc, Id id);
|
AndroidDeployQtStep(BuildStepList *bc, Id id);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void askForUninstall(DeployErrorCode errorCode);
|
void askForUninstall(DeployErrorFlags errorCode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void runCommand(const CommandLine &command);
|
void runCommand(const CommandLine &command);
|
||||||
@@ -94,26 +112,17 @@ private:
|
|||||||
bool init() override;
|
bool init() override;
|
||||||
Tasking::GroupItem runRecipe() final;
|
Tasking::GroupItem runRecipe() final;
|
||||||
void gatherFilesToPull();
|
void gatherFilesToPull();
|
||||||
DeployErrorCode runDeploy(QPromise<void> &promise);
|
DeployErrorFlags runDeploy(QPromise<void> &promise);
|
||||||
void slotAskForUninstall(DeployErrorCode errorCode);
|
void slotAskForUninstall(DeployErrorFlags errorFlags);
|
||||||
|
|
||||||
void runImpl(QPromise<void> &promise);
|
void runImpl(QPromise<void> &promise);
|
||||||
|
|
||||||
QWidget *createConfigWidget() override;
|
QWidget *createConfigWidget() override;
|
||||||
|
|
||||||
void processReadyReadStdOutput(DeployErrorCode &errorCode);
|
void processReadyReadStdOutput(DeployErrorFlags &errorCode);
|
||||||
void stdOutput(const QString &line);
|
void stdOutput(const QString &line);
|
||||||
void processReadyReadStdError(DeployErrorCode &errorCode);
|
void processReadyReadStdError(DeployErrorFlags &errorCode);
|
||||||
void stdError(const QString &line);
|
void stdError(const QString &line);
|
||||||
DeployErrorCode parseDeployErrors(const QString &deployOutputLine) const;
|
|
||||||
|
|
||||||
friend void operator|=(DeployErrorCode &e1, const DeployErrorCode &e2) {
|
|
||||||
e1 = static_cast<AndroidDeployQtStep::DeployErrorCode>((int)e1 | (int)e2);
|
|
||||||
}
|
|
||||||
|
|
||||||
friend DeployErrorCode operator|(const DeployErrorCode &e1, const DeployErrorCode &e2) {
|
|
||||||
return static_cast<AndroidDeployQtStep::DeployErrorCode>((int)e1 | (int)e2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void reportWarningOrError(const QString &message, Task::TaskType type);
|
void reportWarningOrError(const QString &message, Task::TaskType type);
|
||||||
|
|
||||||
@@ -340,7 +349,7 @@ bool AndroidDeployQtStep::init()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::runDeploy(QPromise<void> &promise)
|
DeployErrorFlags AndroidDeployQtStep::runDeploy(QPromise<void> &promise)
|
||||||
{
|
{
|
||||||
CommandLine cmd(m_command);
|
CommandLine cmd(m_command);
|
||||||
if (m_useAndroiddeployqt && m_apkPath.isEmpty()) {
|
if (m_useAndroiddeployqt && m_apkPath.isEmpty()) {
|
||||||
@@ -355,7 +364,7 @@ AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::runDeploy(QPromise<voi
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
RunConfiguration *rc = target()->activeRunConfiguration();
|
RunConfiguration *rc = target()->activeRunConfiguration();
|
||||||
QTC_ASSERT(rc, return DeployErrorCode::Failure);
|
QTC_ASSERT(rc, return Failure);
|
||||||
QString packageName;
|
QString packageName;
|
||||||
|
|
||||||
if (m_uninstallPreviousPackageRun) {
|
if (m_uninstallPreviousPackageRun) {
|
||||||
@@ -383,7 +392,7 @@ AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::runDeploy(QPromise<voi
|
|||||||
process.setEnvironment(m_environment);
|
process.setEnvironment(m_environment);
|
||||||
process.setUseCtrlCStub(true);
|
process.setUseCtrlCStub(true);
|
||||||
|
|
||||||
DeployErrorCode deployError = NoError;
|
DeployErrorFlags deployError = NoError;
|
||||||
|
|
||||||
process.setStdOutLineCallback([this, &deployError](const QString &line) {
|
process.setStdOutLineCallback([this, &deployError](const QString &line) {
|
||||||
deployError |= parseDeployErrors(line);
|
deployError |= parseDeployErrors(line);
|
||||||
@@ -440,18 +449,18 @@ AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::runDeploy(QPromise<voi
|
|||||||
return deployError;
|
return deployError;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidDeployQtStep::slotAskForUninstall(DeployErrorCode errorCode)
|
void AndroidDeployQtStep::slotAskForUninstall(DeployErrorFlags errorFlags)
|
||||||
{
|
{
|
||||||
Q_ASSERT(errorCode > 0);
|
Q_ASSERT(errorFlags > 0);
|
||||||
|
|
||||||
QString uninstallMsg = Tr::tr("Deployment failed with the following errors:") + "\n\n";
|
QString uninstallMsg = Tr::tr("Deployment failed with the following errors:") + "\n\n";
|
||||||
if (errorCode & InconsistentCertificates)
|
if (errorFlags & InconsistentCertificates)
|
||||||
uninstallMsg += InstallFailedInconsistentCertificatesString + '\n';
|
uninstallMsg += InstallFailedInconsistentCertificatesString + '\n';
|
||||||
if (errorCode & UpdateIncompatible)
|
if (errorFlags & UpdateIncompatible)
|
||||||
uninstallMsg += InstallFailedUpdateIncompatible + '\n';
|
uninstallMsg += InstallFailedUpdateIncompatible + '\n';
|
||||||
if (errorCode & PermissionModelDowngrade)
|
if (errorFlags & PermissionModelDowngrade)
|
||||||
uninstallMsg += InstallFailedPermissionModelDowngrade + '\n';
|
uninstallMsg += InstallFailedPermissionModelDowngrade + '\n';
|
||||||
if (errorCode & VersionDowngrade)
|
if (errorFlags & VersionDowngrade)
|
||||||
uninstallMsg += InstallFailedVersionDowngrade + '\n';
|
uninstallMsg += InstallFailedVersionDowngrade + '\n';
|
||||||
uninstallMsg += '\n';
|
uninstallMsg += '\n';
|
||||||
uninstallMsg.append(Tr::tr("Uninstalling the installed package may solve the issue.") + '\n');
|
uninstallMsg.append(Tr::tr("Uninstalling the installed package may solve the issue.") + '\n');
|
||||||
@@ -478,8 +487,8 @@ void AndroidDeployQtStep::runImpl(QPromise<void> &promise)
|
|||||||
AndroidManager::setDeviceSerialNumber(target(), serialNumber);
|
AndroidManager::setDeviceSerialNumber(target(), serialNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeployErrorCode returnValue = runDeploy(promise);
|
DeployErrorFlags returnValue = runDeploy(promise);
|
||||||
if (returnValue > DeployErrorCode::NoError && returnValue < DeployErrorCode::Failure) {
|
if (returnValue > NoError && returnValue < Failure) {
|
||||||
emit askForUninstall(returnValue);
|
emit askForUninstall(returnValue);
|
||||||
if (m_askForUninstall) {
|
if (m_askForUninstall) {
|
||||||
m_uninstallPreviousPackageRun = true;
|
m_uninstallPreviousPackageRun = true;
|
||||||
@@ -618,22 +627,6 @@ void AndroidDeployQtStep::stdError(const QString &line)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::parseDeployErrors(
|
|
||||||
const QString &deployOutputLine) const
|
|
||||||
{
|
|
||||||
DeployErrorCode errorCode = NoError;
|
|
||||||
|
|
||||||
if (deployOutputLine.contains(InstallFailedInconsistentCertificatesString))
|
|
||||||
errorCode |= InconsistentCertificates;
|
|
||||||
if (deployOutputLine.contains(InstallFailedUpdateIncompatible))
|
|
||||||
errorCode |= UpdateIncompatible;
|
|
||||||
if (deployOutputLine.contains(InstallFailedPermissionModelDowngrade))
|
|
||||||
errorCode |= PermissionModelDowngrade;
|
|
||||||
if (deployOutputLine.contains(InstallFailedVersionDowngrade))
|
|
||||||
errorCode |= VersionDowngrade;
|
|
||||||
|
|
||||||
return errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AndroidDeployQtStep::reportWarningOrError(const QString &message, Task::TaskType type)
|
void AndroidDeployQtStep::reportWarningOrError(const QString &message, Task::TaskType type)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user