diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 5d0ad61c578..1389f0b1007 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -2,10 +2,11 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "androiddeployqtstep.h" + #include "androidavdmanager.h" #include "androidbuildapkstep.h" #include "androidconstants.h" -#include "androiddeployqtstep.h" #include "androiddevice.h" #include "androidmanager.h" #include "androidqtversion.h" @@ -16,6 +17,7 @@ #include #include +#include #include #include #include @@ -27,10 +29,14 @@ #include #include +#include #include #include #include +#include +#include +#include #include #include #include @@ -59,7 +65,78 @@ const QLatin1String InstallFailedVersionDowngrade("INSTALL_FAILED_VERSION_DOWNGR // AndroidDeployQtStep -AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Utils::Id id) +class AndroidDeployQtStep : public BuildStep +{ + Q_OBJECT + + enum DeployErrorCode + { + NoError = 0, + InconsistentCertificates = 0x0001, + UpdateIncompatible = 0x0002, + PermissionModelDowngrade = 0x0004, + VersionDowngrade = 0x0008, + Failure = 0x0010 + }; + +public: + AndroidDeployQtStep(BuildStepList *bc, Id id); + +signals: + void askForUninstall(DeployErrorCode errorCode); + +private: + void runCommand(const CommandLine &command); + + bool init() override; + void doRun() override; + void doCancel() override; + void gatherFilesToPull(); + DeployErrorCode runDeploy(); + void slotAskForUninstall(DeployErrorCode errorCode); + + void runImpl(QPromise &promise); + + QWidget *createConfigWidget() override; + + void processReadyReadStdOutput(DeployErrorCode &errorCode); + void stdOutput(const QString &line); + void processReadyReadStdError(DeployErrorCode &errorCode); + void stdError(const QString &line); + DeployErrorCode parseDeployErrors(const QString &deployOutputLine) const; + + friend void operator|=(DeployErrorCode &e1, const DeployErrorCode &e2) { + e1 = static_cast((int)e1 | (int)e2); + } + + friend DeployErrorCode operator|(const DeployErrorCode &e1, const DeployErrorCode &e2) { + return static_cast((int)e1 | (int)e2); + } + + void reportWarningOrError(const QString &message, Task::TaskType type); + + FilePath m_manifestName; + QString m_serialNumber; + QString m_avdName; + FilePath m_apkPath; + QMap m_filesToPull; + + QStringList m_androidABIs; + BoolAspect *m_uninstallPreviousPackage = nullptr; + bool m_uninstallPreviousPackageRun = false; + bool m_useAndroiddeployqt = false; + bool m_askForUninstall = false; + CommandLine m_androiddeployqtArgs; + FilePath m_adbPath; + FilePath m_command; + FilePath m_workingDirectory; + Environment m_environment; + AndroidDeviceInfo m_deviceInfo; + + FutureSynchronizer m_synchronizer; +}; + +AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Id id) : BuildStep(parent, id) { setImmutable(true); @@ -209,9 +286,9 @@ bool AndroidDeployQtStep::init() reportWarningOrError(Tr::tr("The deployment step's project node is invalid."), Task::Error); return false; } - m_apkPath = Utils::FilePath::fromString(node->data(Constants::AndroidApk).toString()); + m_apkPath = FilePath::fromString(node->data(Constants::AndroidApk).toString()); if (!m_apkPath.isEmpty()) { - m_manifestName = Utils::FilePath::fromString(node->data(Constants::AndroidManifest).toString()); + m_manifestName = FilePath::fromString(node->data(Constants::AndroidManifest).toString()); m_command = AndroidConfigurations::currentConfig().adbToolPath(); AndroidManager::setManifestPath(target(), m_manifestName); } else { @@ -254,7 +331,7 @@ bool AndroidDeployQtStep::init() m_apkPath = AndroidManager::packagePath(target()); m_workingDirectory = bc ? AndroidManager::buildDirectory(target()): FilePath(); } - m_environment = bc ? bc->environment() : Utils::Environment(); + m_environment = bc ? bc->environment() : Environment(); m_adbPath = AndroidConfigurations::currentConfig().adbToolPath(); @@ -593,3 +670,5 @@ AndroidDeployQtStepFactory::AndroidDeployQtStepFactory() } } // Android::Internal + +#include "androiddeployqtstep.moc" diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h index b83adea34a8..dda4304b6af 100644 --- a/src/plugins/android/androiddeployqtstep.h +++ b/src/plugins/android/androiddeployqtstep.h @@ -4,16 +4,7 @@ #pragma once -#include "androiddeviceinfo.h" - -#include -#include - -#include -#include -#include - -namespace Utils { class QtcProcess; } +#include namespace Android::Internal { @@ -23,76 +14,4 @@ public: AndroidDeployQtStepFactory(); }; -class AndroidDeployQtStep : public ProjectExplorer::BuildStep -{ - Q_OBJECT - - enum DeployErrorCode - { - NoError = 0, - InconsistentCertificates = 0x0001, - UpdateIncompatible = 0x0002, - PermissionModelDowngrade = 0x0004, - VersionDowngrade = 0x0008, - Failure = 0x0010 - }; - -public: - AndroidDeployQtStep(ProjectExplorer::BuildStepList *bc, Utils::Id id); - -signals: - void askForUninstall(DeployErrorCode errorCode); - -private: - void runCommand(const Utils::CommandLine &command); - - bool init() override; - void doRun() override; - void doCancel() override; - void gatherFilesToPull(); - DeployErrorCode runDeploy(); - void slotAskForUninstall(DeployErrorCode errorCode); - - void runImpl(QPromise &promise); - - QWidget *createConfigWidget() override; - - void processReadyReadStdOutput(DeployErrorCode &errorCode); - void stdOutput(const QString &line); - void processReadyReadStdError(DeployErrorCode &errorCode); - void stdError(const QString &line); - DeployErrorCode parseDeployErrors(const QString &deployOutputLine) const; - - friend void operator|=(DeployErrorCode &e1, const DeployErrorCode &e2) { - e1 = static_cast((int)e1 | (int)e2); - } - - friend DeployErrorCode operator|(const DeployErrorCode &e1, const DeployErrorCode &e2) { - return static_cast((int)e1 | (int)e2); - } - - void reportWarningOrError(const QString &message, ProjectExplorer::Task::TaskType type); - - Utils::FilePath m_manifestName; - QString m_serialNumber; - QString m_avdName; - Utils::FilePath m_apkPath; - QMap m_filesToPull; - - QStringList m_androidABIs; - Utils::BoolAspect *m_uninstallPreviousPackage = nullptr; - bool m_uninstallPreviousPackageRun = false; - bool m_useAndroiddeployqt = false; - bool m_askForUninstall = false; - static const Utils::Id Id; - Utils::CommandLine m_androiddeployqtArgs; - Utils::FilePath m_adbPath; - Utils::FilePath m_command; - Utils::FilePath m_workingDirectory; - Utils::Environment m_environment; - AndroidDeviceInfo m_deviceInfo; - - Utils::FutureSynchronizer m_synchronizer; -}; - } // Android::Internal