aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/sdkmanageroutputparser.cpp
diff options
context:
space:
mode:
authorJarek Kobus <[email protected]>2024-02-01 00:35:43 +0100
committerJarek Kobus <[email protected]>2024-02-02 21:47:02 +0000
commit531a65301e531ff27720673205a96e9f1cabf15f (patch)
tree07199e2ca18acc8071bebfdd0d90fb1606be38b4 /src/plugins/android/sdkmanageroutputparser.cpp
parente7e593b2f69e664aea7301ac0b74c7f01b431830 (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.cpp30
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