Android: Tolerate foreign run configurations

The only things specific to AndroidRunConfiguration are
amStartExtraArgs() and postFinishShellCommands(). Those are considered
to be empty on foreign configurations.

Change-Id: Ia0b8381c30225942e8704db04d17a8bdd3d2c806
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
Ulf Hermann
2018-01-30 18:31:40 +01:00
parent b088972a9c
commit 9771333f9f

View File

@@ -694,13 +694,15 @@ AndroidRunner::AndroidRunner(RunControl *runControl)
m_androidRunnable.intentName.indexOf(QLatin1Char('/')));
m_androidRunnable.deviceSerialNumber = AndroidManager::deviceSerialNumber(m_target);
auto androidRunConfig = qobject_cast<AndroidRunConfiguration *>(runControl->runConfiguration());
m_androidRunnable.amStartExtraArgs = androidRunConfig->amStartExtraArgs();
for (QString shellCmd: androidRunConfig->preStartShellCommands())
m_androidRunnable.beforeStartAdbCommands.append(QString("shell %1").arg(shellCmd));
if (auto androidRunConfig = qobject_cast<AndroidRunConfiguration *>(
runControl->runConfiguration())) {
m_androidRunnable.amStartExtraArgs = androidRunConfig->amStartExtraArgs();
for (QString shellCmd: androidRunConfig->preStartShellCommands())
m_androidRunnable.beforeStartAdbCommands.append(QString("shell %1").arg(shellCmd));
for (QString shellCmd: androidRunConfig->postFinishShellCommands())
m_androidRunnable.afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd));
for (QString shellCmd: androidRunConfig->postFinishShellCommands())
m_androidRunnable.afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd));
}
m_worker.reset(new AndroidRunnerWorker(runControl, m_androidRunnable));
m_worker->moveToThread(&m_thread);