diff options
author | Jarek Kobus <[email protected]> | 2024-02-01 00:35:43 +0100 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2024-02-02 21:47:02 +0000 |
commit | 531a65301e531ff27720673205a96e9f1cabf15f (patch) | |
tree | 07199e2ca18acc8071bebfdd0d90fb1606be38b4 /src/plugins/android/sdkmanageroutputparser.cpp | |
parent | e7e593b2f69e664aea7301ac0b74c7f01b431830 (diff) |
SdkManagerOutputParser: Use parsePackage() for SdkPlatform
Change-Id: I8695ade91864a7f4cac3758c4d5fff96cc781266
Reviewed-by: Alessandro Portale <[email protected]>
Diffstat (limited to 'src/plugins/android/sdkmanageroutputparser.cpp')
-rw-r--r-- | src/plugins/android/sdkmanageroutputparser.cpp | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/plugins/android/sdkmanageroutputparser.cpp b/src/plugins/android/sdkmanageroutputparser.cpp index 0178a7f66d0..851ee562830 100644 --- a/src/plugins/android/sdkmanageroutputparser.cpp +++ b/src/plugins/android/sdkmanageroutputparser.cpp @@ -290,7 +290,17 @@ AndroidSdkPackage *parsePackage(const QStringList &data, int minParts, const QSt AndroidSdkPackage *package = nullptr; GenericPackageData packageData; if (parseAbstractData(packageData, data, minParts, logStrTag)) { - package = new T(packageData.revision, data.at(0)); + if constexpr (std::is_same_v<SdkPlatform, T>) { + const int apiLevel = platformNameToApiLevel(packageData.headerParts.at(1)); + if (apiLevel == -1) { + qCDebug(sdkManagerLog) << "Platform: Cannot parse api level:"<< data; + return nullptr; + } + package = new T(packageData.revision, data.at(0), apiLevel); + package->setExtension(convertNameToExtension(packageData.headerParts.at(1))); + } else { + package = new T(packageData.revision, data.at(0)); + } package->setDescriptionText(packageData.description); package->setDisplayText(packageData.description); package->setInstalledLocation(packageData.installedLocation); @@ -303,23 +313,7 @@ AndroidSdkPackage *parsePackage(const QStringList &data, int minParts, const QSt AndroidSdkPackage *SdkManagerOutputParser::parsePlatform(const QStringList &data) const { - SdkPlatform *platform = nullptr; - GenericPackageData packageData; - if (parseAbstractData(packageData, data, 2, "Platform")) { - const int apiLevel = platformNameToApiLevel(packageData.headerParts.at(1)); - if (apiLevel == -1) { - qCDebug(sdkManagerLog) << "Platform: Cannot parse api level:"<< data; - return nullptr; - } - platform = new SdkPlatform(packageData.revision, data.at(0), apiLevel); - platform->setExtension(convertNameToExtension(packageData.headerParts.at(1))); - platform->setInstalledLocation(packageData.installedLocation); - platform->setDescriptionText(packageData.description); - } else { - qCDebug(sdkManagerLog) << "Platform: Parsing failed. Minimum required data unavailable:" - << data; - } - return platform; + return parsePackage<SdkPlatform>(data, 2, "Platform"); } QPair<SystemImage *, int> SdkManagerOutputParser::parseSystemImage(const QStringList &data) const |