aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androiddeployqtstep.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/androiddeployqtstep.cpp')
-rw-r--r--src/plugins/android/androiddeployqtstep.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp
index f3863ca998..d82d050511 100644
--- a/src/plugins/android/androiddeployqtstep.cpp
+++ b/src/plugins/android/androiddeployqtstep.cpp
@@ -101,43 +101,43 @@ public:
setSummaryText(displayName());
auto uninstallPreviousPackage = new QCheckBox(this);
- uninstallPreviousPackage->setText(AndroidDeployQtStep::tr("Uninstall previous package"));
+ uninstallPreviousPackage->setText(AndroidDeployQtStep::tr("Uninstall the existing app first"));
uninstallPreviousPackage->setChecked(step->uninstallPreviousPackage() > AndroidDeployQtStep::Keep);
uninstallPreviousPackage->setEnabled(step->uninstallPreviousPackage() != AndroidDeployQtStep::ForceUnintall);
- auto resetDefaultDevices = new QPushButton(this);
- resetDefaultDevices->setText(AndroidDeployQtStep::tr("Reset Default Devices"));
-
- auto installMinistroButton = new QPushButton(this);
- installMinistroButton->setText(AndroidDeployQtStep::tr("Install Ministro from APK"));
+ connect(uninstallPreviousPackage, &QAbstractButton::toggled,
+ step, &AndroidDeployQtStep::setUninstallPreviousPackage);
- connect(installMinistroButton, &QAbstractButton::clicked, this, [this, step] {
- QString packagePath =
- QFileDialog::getOpenFileName(this,
- AndroidDeployQtStep::tr("Qt Android Smart Installer"),
- QDir::homePath(),
- AndroidDeployQtStep::tr("Android package (*.apk)"));
- if (!packagePath.isEmpty())
- AndroidManager::installQASIPackage(step->target(), packagePath);
- });
+ auto resetDefaultDevices = new QPushButton(this);
+ resetDefaultDevices->setText(AndroidDeployQtStep::tr("Reset Default Deployment Devices"));
connect(resetDefaultDevices, &QAbstractButton::clicked, this, [step] {
AndroidConfigurations::clearDefaultDevices(step->project());
});
- connect(uninstallPreviousPackage, &QAbstractButton::toggled,
- step, &AndroidDeployQtStep::setUninstallPreviousPackage);
+ auto installCustomApkButton = new QPushButton(this);
+ installCustomApkButton->setText(AndroidDeployQtStep::tr("Install an APK File"));
+
+ connect(installCustomApkButton, &QAbstractButton::clicked, this, [this, step] {
+ const QString packagePath
+ = QFileDialog::getOpenFileName(this,
+ AndroidDeployQtStep::tr("Qt Android Installer"),
+ QDir::homePath(),
+ AndroidDeployQtStep::tr("Android package (*.apk)"));
+ if (!packagePath.isEmpty())
+ AndroidManager::installQASIPackage(step->target(), packagePath);
+ });
auto layout = new QVBoxLayout(this);
layout->addWidget(uninstallPreviousPackage);
layout->addWidget(resetDefaultDevices);
- layout->addWidget(installMinistroButton);
+ layout->addWidget(installCustomApkButton);
}
};
// AndroidDeployQtStep
-AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Core::Id id)
+AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Utils::Id id)
: BuildStep(parent, id)
{
setImmutable(true);
@@ -155,7 +155,7 @@ AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Core::Id id)
this, &AndroidDeployQtStep::slotSetSerialNumber);
}
-Core::Id AndroidDeployQtStep::stepId()
+Utils::Id AndroidDeployQtStep::stepId()
{
return "Qt4ProjectManager.AndroidDeployQtStep";
}
@@ -163,8 +163,12 @@ Core::Id AndroidDeployQtStep::stepId()
bool AndroidDeployQtStep::init()
{
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target()->kit());
- if (!version) // TODO: Add error message
+ if (!version) {
+ qCDebug(deployStepLog,
+ "The Qt version for kit %s is not valid.",
+ qPrintable(target()->kit()->displayName()));
return false;
+ }
m_androiddeployqtArgs = CommandLine();
@@ -178,7 +182,7 @@ bool AndroidDeployQtStep::init()
RunConfiguration *rc = target()->activeRunConfiguration();
QTC_ASSERT(rc, return false);
- ProjectExplorer::BuildConfiguration *bc = buildConfiguration();
+ BuildConfiguration *bc = target()->activeBuildConfiguration();
QTC_ASSERT(bc, return false);
auto androidBuildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>();
@@ -205,7 +209,7 @@ bool AndroidDeployQtStep::init()
m_avdName = info.avdname;
m_serialNumber = info.serialNumber;
- qCDebug(deployStepLog) << "Selected Device:" << info;
+ qCDebug(deployStepLog) << "Selected device info:" << info;
gatherFilesToPull();
@@ -222,7 +226,8 @@ bool AndroidDeployQtStep::init()
m_useAndroiddeployqt = version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0);
if (m_useAndroiddeployqt) {
- const ProjectNode *node = target()->project()->findNodeForBuildKey(rc->buildKey());
+ const QString buildKey = target()->activeBuildKey();
+ const ProjectNode *node = target()->project()->findNodeForBuildKey(buildKey);
if (!node)
return false;
m_apkPath = Utils::FilePath::fromString(node->data(Constants::AndroidApk).toString());
@@ -241,7 +246,6 @@ bool AndroidDeployQtStep::init()
emit addOutput(tr("Cannot find the androiddeployqt tool."), OutputFormat::Stderr);
return false;
}
- qCDebug(deployStepLog) << "Using androiddeployqt";
m_command = m_command.pathAppended(HostOsInfo::withExecutableSuffix("androiddeployqt"));
m_workingDirectory = bc->buildDirectory().pathAppended(Constants::ANDROID_BUILDDIRECTORY);
@@ -251,11 +255,6 @@ bool AndroidDeployQtStep::init()
"--no-build",
"--input", jsonFile});
- if (androidBuildApkStep && androidBuildApkStep->useMinistro()) {
- qCDebug(deployStepLog) << "Using ministro";
- m_androiddeployqtArgs.addArgs({"--deployment", "ministro"});
- }
-
m_androiddeployqtArgs.addArg("--gradle");
if (androidBuildApkStep && androidBuildApkStep->signPackage()) {
@@ -451,8 +450,12 @@ bool AndroidDeployQtStep::runImpl()
if (!m_filesToPull.isEmpty())
emit addOutput(tr("Pulling files necessary for debugging."), OutputFormat::NormalMessage);
+ // Note that values are not necessarily unique, e.g. app_process is looked up in several directories
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
QFile::remove(itr.value());
+ }
+
+ for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
runCommand({m_adbPath,
AndroidDeviceInfo::adbSelector(m_serialNumber)
<< "pull" << itr.key() << itr.value()});
@@ -469,7 +472,7 @@ bool AndroidDeployQtStep::runImpl()
void AndroidDeployQtStep::gatherFilesToPull()
{
m_filesToPull.clear();
- ProjectExplorer::BuildConfiguration *bc = buildConfiguration();
+ BuildConfiguration *bc = target()->activeBuildConfiguration();
QString buildDir = bc ? bc->buildDirectory().toString() : QString();
if (bc && !buildDir.endsWith("/")) {
buildDir += "/";
@@ -493,9 +496,8 @@ void AndroidDeployQtStep::gatherFilesToPull()
m_filesToPull["/system/bin/" + linkerName] = buildDir + linkerName;
m_filesToPull["/system/" + libDirName + "/libc.so"] = buildDir + "libc.so";
- qCDebug(deployStepLog) << "Files to pull from device:";
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr)
- qCDebug(deployStepLog) << itr.key() << "to" << itr.value();
+ qCDebug(deployStepLog) << "Pulling file from device:" << itr.key() << "to:" << itr.value();
}
void AndroidDeployQtStep::doRun()