diff --git a/src/plugins/android/androidrunnable.h b/src/plugins/android/androidrunnable.h index 701585ebfb0..406e55ba95f 100644 --- a/src/plugins/android/androidrunnable.h +++ b/src/plugins/android/androidrunnable.h @@ -34,7 +34,6 @@ struct ANDROID_EXPORT AndroidRunnable { AndroidRunnable(); QString packageName; - QString intentName; QStringList amStartExtraArgs; QStringList beforeStartAdbCommands; QStringList afterFinishAdbCommands; @@ -46,7 +45,6 @@ struct ANDROID_EXPORT AndroidRunnable inline bool operator==(const AndroidRunnable &r1, const AndroidRunnable &r2) { return r1.packageName == r2.packageName - && r1.intentName == r2.intentName && r1.amStartExtraArgs == r2.amStartExtraArgs && r1.beforeStartAdbCommands == r2.beforeStartAdbCommands && r1.afterFinishAdbCommands == r2.afterFinishAdbCommands; diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index af804d6f416..87ffe95d2ed 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -127,10 +127,8 @@ AndroidRunner::AndroidRunner(RunControl *runControl, m_checkAVDTimer.setInterval(2000); connect(&m_checkAVDTimer, &QTimer::timeout, this, &AndroidRunner::checkAVD); - m_androidRunnable.intentName = intentName.isEmpty() ? AndroidManager::intentName(m_target) - : intentName; - m_androidRunnable.packageName = m_androidRunnable.intentName.left( - m_androidRunnable.intentName.indexOf(QLatin1Char('/'))); + QString intent = intentName.isEmpty() ? AndroidManager::intentName(m_target) : intentName; + m_androidRunnable.packageName = intent.left(intent.indexOf('/')); RunConfiguration *rc = runControl->runConfiguration(); if (auto aspect = rc->extraAspect(Constants::ANDROID_AMSTARTARGS_ASPECT)) @@ -148,6 +146,7 @@ AndroidRunner::AndroidRunner(RunControl *runControl, const int apiLevel = AndroidManager::deviceApiLevel(m_target); m_worker.reset(new AndroidRunnerWorker(runControl, m_androidRunnable)); + m_worker->setIntentName(intent); m_worker->setIsPreNougat(apiLevel <= 23); m_worker->setExtraAppParams(extraAppParams); m_worker->setExtraEnvVars(extraEnvVars); diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp index 60bae1bd6de..01d41e2f98e 100644 --- a/src/plugins/android/androidrunnerworker.cpp +++ b/src/plugins/android/androidrunnerworker.cpp @@ -345,7 +345,7 @@ void AndroidRunnerWorker::asyncStartHelper() QStringList args({"shell", "am", "start"}); args << m_androidRunnable.amStartExtraArgs; - args << "-n" << m_androidRunnable.intentName; + args << "-n" << m_intentName; if (m_useCppDebugger) { args << "-D"; QString gdbServerSocket; diff --git a/src/plugins/android/androidrunnerworker.h b/src/plugins/android/androidrunnerworker.h index 12cf219eca2..24ecb30accf 100644 --- a/src/plugins/android/androidrunnerworker.h +++ b/src/plugins/android/androidrunnerworker.h @@ -62,6 +62,7 @@ public: void setExtraEnvVars(const Utils::Environment &extraEnvVars); void setExtraAppParams(const QString &extraAppParams); void setIsPreNougat(bool isPreNougat) { m_isPreNougat = isPreNougat; } + void setIntentName(const QString &intentName) { m_intentName = intentName; } void asyncStart(); void asyncStop(); @@ -89,6 +90,7 @@ protected: // Create the processes and timer in the worker thread, for correct thread affinity bool m_isPreNougat = false; AndroidRunnable m_androidRunnable; + QString m_intentName; QString m_adb; qint64 m_processPID = -1; std::unique_ptr m_adbLogcatProcess;