diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/android/androidsdkmanager.cpp | 25 | ||||
-rw-r--r-- | src/plugins/android/androidsdkpackage.cpp | 16 | ||||
-rw-r--r-- | src/plugins/android/androidsdkpackage.h | 14 |
3 files changed, 53 insertions, 2 deletions
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index f71e22d5cb7..b01a971bb88 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -260,6 +260,7 @@ public: BuildToolsMarker = 0x080, SdkToolsMarker = 0x100, PlatformToolsMarker = 0x200, + EmulatorToolsMarker = 0x400, SectionMarkers = InstalledPackagesMarker | AvailablePackagesMarkers | AvailableUpdatesMarker }; @@ -278,6 +279,7 @@ private: BuildTools *parseBuildToolsPackage(const QStringList &data) const; SdkTools *parseSdkToolsPackage(const QStringList &data) const; PlatformTools *parsePlatformToolsPackage(const QStringList &data) const; + EmulatorTools *parseEmulatorToolsPackage(const QStringList &data) const; MarkerTag parseMarkers(const QString &line); MarkerTag m_currentSection = MarkerTag::None; @@ -292,7 +294,8 @@ const std::map<SdkManagerOutputParser::MarkerTag, const char *> markerTags { {SdkManagerOutputParser::MarkerTag::SystemImageMarker, "system-images"}, {SdkManagerOutputParser::MarkerTag::BuildToolsMarker, "build-tools"}, {SdkManagerOutputParser::MarkerTag::SdkToolsMarker, "tools"}, - {SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"} + {SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"}, + {SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"} }; AndroidSdkManager::AndroidSdkManager(const AndroidConfig &config, QObject *parent): @@ -543,6 +546,10 @@ void SdkManagerOutputParser::parsePackageData(MarkerTag packageMarker, const QSt createPackage(&SdkManagerOutputParser::parsePlatformToolsPackage); break; + case MarkerTag::EmulatorToolsMarker: + createPackage(&SdkManagerOutputParser::parseEmulatorToolsPackage); + break; + case MarkerTag::PlatformMarker: createPackage(&SdkManagerOutputParser::parsePlatform); break; @@ -705,6 +712,22 @@ PlatformTools *SdkManagerOutputParser::parsePlatformToolsPackage(const QStringLi return platformTools; } +EmulatorTools *SdkManagerOutputParser::parseEmulatorToolsPackage(const QStringList &data) const +{ + EmulatorTools *emulatorTools = nullptr; + GenericPackageData packageData; + if (parseAbstractData(packageData, data, 1, "Emulator-tools")) { + emulatorTools = new EmulatorTools(packageData.revision, data.at(0)); + emulatorTools->setDescriptionText(packageData.description); + emulatorTools->setDisplayText(packageData.description); + emulatorTools->setInstalledLocation(packageData.installedLocation); + } else { + qCDebug(sdkManagerLog) << "Emulator-tools: Parsing failed. Minimum required data " + "unavailable:" << data; + } + return emulatorTools; +} + SdkManagerOutputParser::MarkerTag SdkManagerOutputParser::parseMarkers(const QString &line) { if (line.isEmpty()) diff --git a/src/plugins/android/androidsdkpackage.cpp b/src/plugins/android/androidsdkpackage.cpp index b7d15105854..94b7a2b87bf 100644 --- a/src/plugins/android/androidsdkpackage.cpp +++ b/src/plugins/android/androidsdkpackage.cpp @@ -253,4 +253,20 @@ AndroidSdkPackage::PackageType PlatformTools::type() const return AndroidSdkPackage::PlatformToolsPackage; } +EmulatorTools::EmulatorTools(QVersionNumber revision, QString sdkStylePathStr, QObject *parent): + AndroidSdkPackage(revision, sdkStylePathStr, parent) +{ + +} + +bool EmulatorTools::isValid() const +{ + return installedLocation().exists(); +} + +AndroidSdkPackage::PackageType EmulatorTools::type() const +{ + return AndroidSdkPackage::EmulatorToolsPackage; +} + } // namespace Android diff --git a/src/plugins/android/androidsdkpackage.h b/src/plugins/android/androidsdkpackage.h index 486c604b604..dac6a5662dc 100644 --- a/src/plugins/android/androidsdkpackage.h +++ b/src/plugins/android/androidsdkpackage.h @@ -52,8 +52,9 @@ public: PlatformToolsPackage = 1 << 3, SdkPlatformPackage = 1 << 4, SystemImagePackage = 1 << 5, + EmulatorToolsPackage = 1 << 6, AnyValidType = SdkToolsPackage | BuildToolsPackage | PlatformToolsPackage | - SdkPlatformPackage | SystemImagePackage + SdkPlatformPackage | SystemImagePackage | EmulatorToolsPackage }; enum PackageState { @@ -169,6 +170,17 @@ public: PackageType type() const override; }; +class EmulatorTools : public AndroidSdkPackage +{ +public: + EmulatorTools(QVersionNumber revision, QString sdkStylePathStr, QObject *parent = nullptr); + +// AndroidSdkPackage Overrides +public: + bool isValid() const override; + PackageType type() const override; +}; + class SdkTools : public AndroidSdkPackage { public: |