SdkManagerOutputParser: Use parsePackage() for SdkPlatform

Change-Id: I8695ade91864a7f4cac3758c4d5fff96cc781266
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Jarek Kobus
2024-02-01 00:35:43 +01:00
parent e7e593b2f6
commit 531a65301e

View File

@@ -290,7 +290,17 @@ AndroidSdkPackage *parsePackage(const QStringList &data, int minParts, const QSt
AndroidSdkPackage *package = nullptr; AndroidSdkPackage *package = nullptr;
GenericPackageData packageData; GenericPackageData packageData;
if (parseAbstractData(packageData, data, minParts, logStrTag)) { 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->setDescriptionText(packageData.description);
package->setDisplayText(packageData.description); package->setDisplayText(packageData.description);
package->setInstalledLocation(packageData.installedLocation); package->setInstalledLocation(packageData.installedLocation);
@@ -303,23 +313,7 @@ AndroidSdkPackage *parsePackage(const QStringList &data, int minParts, const QSt
AndroidSdkPackage *SdkManagerOutputParser::parsePlatform(const QStringList &data) const AndroidSdkPackage *SdkManagerOutputParser::parsePlatform(const QStringList &data) const
{ {
SdkPlatform *platform = nullptr; return parsePackage<SdkPlatform>(data, 2, "Platform");
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;
} }
QPair<SystemImage *, int> SdkManagerOutputParser::parseSystemImage(const QStringList &data) const QPair<SystemImage *, int> SdkManagerOutputParser::parseSystemImage(const QStringList &data) const