Android: Hide plugin class definition in .cpp

It's not meant to be used from the outside.

Change-Id: I94e46f95f896fa4b44e77e0196523beb8afdf8c3
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
hjk
2024-01-12 09:23:13 +01:00
parent e04c11597f
commit f114df2bd3
4 changed files with 80 additions and 73 deletions

View File

@@ -1563,7 +1563,7 @@ void AndroidConfigurations::updateAndroidDevice()
} }
#ifdef WITH_TESTS #ifdef WITH_TESTS
void AndroidPlugin::testAndroidConfigAvailableNdkPlatforms_data() void AndroidTests::testAndroidConfigAvailableNdkPlatforms_data()
{ {
QTest::addColumn<FilePath>("ndkPath"); QTest::addColumn<FilePath>("ndkPath");
QTest::addColumn<Abis>("abis"); QTest::addColumn<Abis>("abis");
@@ -1608,7 +1608,7 @@ void AndroidPlugin::testAndroidConfigAvailableNdkPlatforms_data()
<< abis64Bit; << abis64Bit;
} }
void AndroidPlugin::testAndroidConfigAvailableNdkPlatforms() void AndroidTests::testAndroidConfigAvailableNdkPlatforms()
{ {
QFETCH(FilePath, ndkPath); QFETCH(FilePath, ndkPath);
QFETCH(Abis, abis); QFETCH(Abis, abis);

View File

@@ -34,7 +34,8 @@
#endif #endif
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <utils/infobar.h>
#include <extensionsystem/iplugin.h>
#include <languageclient/languageclientsettings.h> #include <languageclient/languageclientsettings.h>
@@ -52,6 +53,8 @@
#include <nanotrace/nanotrace.h> #include <nanotrace/nanotrace.h>
#include <utils/infobar.h>
#include <QTimer> #include <QTimer>
using namespace ProjectExplorer; using namespace ProjectExplorer;
@@ -78,89 +81,98 @@ void setupAndroidDeployConfiguration()
static AndroidDeployConfigurationFactory theAndroidDeployConfigurationFactory; static AndroidDeployConfigurationFactory theAndroidDeployConfigurationFactory;
} }
void AndroidPlugin::initialize() class AndroidPlugin final : public ExtensionSystem::IPlugin
{ {
setupAndroidConfigurations(); Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Android.json")
setupAndroidPotentialKit(); void initialize() final
setupAndroidDevice(); {
setupAndroidQtVersion(); setupAndroidConfigurations();
setupAndroidToolchain();
setupAndroidDeviceManager(this); setupAndroidPotentialKit();
setupAndroidDevice();
setupAndroidQtVersion();
setupAndroidToolchain();
setupAndroidSettingsPage(); setupAndroidDeviceManager(this);
setupAndroidPackageInstallationStep(); setupAndroidSettingsPage();
setupAndroidBuildApkStep();
setupAndroidDeployConfiguration(); setupAndroidPackageInstallationStep();
setupAndroidDeployQtStep(); setupAndroidBuildApkStep();
setupAndroidRunConfiguration(); setupAndroidDeployConfiguration();
setupAndroidRunWorker(); setupAndroidDeployQtStep();
setupAndroidDebugWorker();
setupAndroidQmlToolingSupport();
setupAndroidQmlPreviewWorker();
setupJavaEditor(); setupAndroidRunConfiguration();
setupAndroidManifestEditor(); setupAndroidRunWorker();
setupAndroidDebugWorker();
setupAndroidQmlToolingSupport();
setupAndroidQmlPreviewWorker();
connect(KitManager::instance(), &KitManager::kitsLoaded, setupJavaEditor();
this, &AndroidPlugin::kitsRestored); setupAndroidManifestEditor();
LanguageClient::LanguageClientSettings::registerClientType( connect(KitManager::instance(), &KitManager::kitsLoaded,
{Android::Constants::JLS_SETTINGS_ID, this, &AndroidPlugin::kitsRestored);
Tr::tr("Java Language Server"),
[] { return new JLSSettings; }}); LanguageClient::LanguageClientSettings::registerClientType(
{Android::Constants::JLS_SETTINGS_ID,
Tr::tr("Java Language Server"),
[] { return new JLSSettings; }});
#ifdef WITH_TESTS #ifdef WITH_TESTS
addTest<AndroidSdkManagerTest>(); addTest<AndroidSdkManagerTest>();
addTest<SdkManagerOutputParserTest>(); addTest<SdkManagerOutputParserTest>();
addTest<AndroidTests>();
#endif #endif
} }
void AndroidPlugin::kitsRestored() void kitsRestored()
{ {
const bool qtForAndroidInstalled const bool qtForAndroidInstalled
= !QtSupport::QtVersionManager::versions([](const QtSupport::QtVersion *v) { = !QtSupport::QtVersionManager::versions([](const QtSupport::QtVersion *v) {
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE); return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE);
}).isEmpty(); }).isEmpty();
if (!AndroidConfigurations::currentConfig().sdkFullyConfigured() && qtForAndroidInstalled) if (!AndroidConfigurations::currentConfig().sdkFullyConfigured() && qtForAndroidInstalled)
askUserAboutAndroidSetup(); askUserAboutAndroidSetup();
AndroidConfigurations::registerNewToolchains();
AndroidConfigurations::updateAutomaticKitList();
connect(QtSupport::QtVersionManager::instance(), &QtSupport::QtVersionManager::qtVersionsChanged,
AndroidConfigurations::instance(), [] {
AndroidConfigurations::registerNewToolchains(); AndroidConfigurations::registerNewToolchains();
AndroidConfigurations::updateAutomaticKitList(); AndroidConfigurations::updateAutomaticKitList();
}); connect(QtSupport::QtVersionManager::instance(), &QtSupport::QtVersionManager::qtVersionsChanged,
disconnect(KitManager::instance(), &KitManager::kitsLoaded, AndroidConfigurations::instance(), [] {
this, &AndroidPlugin::kitsRestored); AndroidConfigurations::registerNewToolchains();
} AndroidConfigurations::updateAutomaticKitList();
});
disconnect(KitManager::instance(), &KitManager::kitsLoaded,
this, &AndroidPlugin::kitsRestored);
}
void AndroidPlugin::askUserAboutAndroidSetup() void askUserAboutAndroidSetup()
{ {
NANOTRACE_SCOPE("Android", "AndroidPlugin::askUserAboutAndroidSetup"); NANOTRACE_SCOPE("Android", "AndroidPlugin::askUserAboutAndroidSetup");
if (!Core::ICore::infoBar()->canInfoBeAdded(kSetupAndroidSetting)) if (!Core::ICore::infoBar()->canInfoBeAdded(kSetupAndroidSetting))
return; return;
Utils::InfoBarEntry Utils::InfoBarEntry
info(kSetupAndroidSetting, info(kSetupAndroidSetting,
Tr::tr("Would you like to configure Android options? This will ensure " Tr::tr("Would you like to configure Android options? This will ensure "
"Android kits can be usable and all essential packages are installed. " "Android kits can be usable and all essential packages are installed. "
"To do it later, select Edit > Preferences > Devices > Android."), "To do it later, select Edit > Preferences > Devices > Android."),
Utils::InfoBarEntry::GlobalSuppression::Enabled); Utils::InfoBarEntry::GlobalSuppression::Enabled);
info.addCustomButton(Tr::tr("Configure Android"), [this] { info.addCustomButton(Tr::tr("Configure Android"), [this] {
Core::ICore::infoBar()->removeInfo(kSetupAndroidSetting); Core::ICore::infoBar()->removeInfo(kSetupAndroidSetting);
Core::ICore::infoBar()->globallySuppressInfo(kSetupAndroidSetting); Core::ICore::infoBar()->globallySuppressInfo(kSetupAndroidSetting);
QTimer::singleShot(0, this, [] { QTimer::singleShot(0, this, [] {
Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID); Core::ICore::showOptionsDialog(Constants::ANDROID_SETTINGS_ID);
});
}); });
}); Core::ICore::infoBar()->addInfo(info);
Core::ICore::infoBar()->addInfo(info); }
} };
} // Android::Internal } // Android::Internal
#include "androidplugin.moc"

View File

@@ -3,21 +3,16 @@
#pragma once #pragma once
#include <extensionsystem/iplugin.h> #include <QObject>
namespace Android::Internal { namespace Android::Internal {
class AndroidPlugin final : public ExtensionSystem::IPlugin class AndroidTests final : public QObject
{ {
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Android.json")
void initialize() final;
void kitsRestored();
void askUserAboutAndroidSetup();
#ifdef WITH_TESTS #ifdef WITH_TESTS
Q_OBJECT
private slots: private slots:
void testAndroidConfigAvailableNdkPlatforms_data(); void testAndroidConfigAvailableNdkPlatforms_data();
void testAndroidConfigAvailableNdkPlatforms(); void testAndroidConfigAvailableNdkPlatforms();

View File

@@ -286,7 +286,7 @@ void setupAndroidQtVersion()
} }
#ifdef WITH_TESTS #ifdef WITH_TESTS
void AndroidPlugin::testAndroidQtVersionParseBuiltWith_data() void AndroidTests::testAndroidQtVersionParseBuiltWith_data()
{ {
QTest::addColumn<QString>("modulesCoreJson"); QTest::addColumn<QString>("modulesCoreJson");
QTest::addColumn<bool>("hasInfo"); QTest::addColumn<bool>("hasInfo");
@@ -332,7 +332,7 @@ void AndroidPlugin::testAndroidQtVersionParseBuiltWith_data()
<< 31; << 31;
} }
void AndroidPlugin::testAndroidQtVersionParseBuiltWith() void AndroidTests::testAndroidQtVersionParseBuiltWith()
{ {
QFETCH(QString, modulesCoreJson); QFETCH(QString, modulesCoreJson);
QFETCH(bool, hasInfo); QFETCH(bool, hasInfo);