From 020320ab784401b4a240ee242b2298568482db57 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Tue, 17 Jan 2023 16:03:23 +0100 Subject: [PATCH] Android: Add extension to the package name in SdkManager - Add "Extension 4" if the name contain "-ext4" - Fix issue with two Tiramisu packages, now one of them conatin "Extension 4" in the end. Change-Id: Ib84807e9401acdef53c3dc1195dc3dc6ef34a57d Reviewed-by: Reviewed-by: Alessandro Portale --- src/plugins/android/androidsdkmanager.cpp | 3 ++- src/plugins/android/androidsdkmodel.cpp | 4 +++- src/plugins/android/androidsdkpackage.cpp | 10 ++++++++++ src/plugins/android/androidsdkpackage.h | 3 +++ src/plugins/android/avdmanageroutputparser.cpp | 8 ++++++++ src/plugins/android/avdmanageroutputparser.h | 1 + 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index 486acf59848..e8598674b7a 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -694,8 +694,9 @@ AndroidSdkPackage *SdkManagerOutputParser::parsePlatform(const QStringList &data return nullptr; } platform = new SdkPlatform(packageData.revision, data.at(0), apiLevel); - platform->setDescriptionText(packageData.description); + 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; diff --git a/src/plugins/android/androidsdkmodel.cpp b/src/plugins/android/androidsdkmodel.cpp index 00924f298f5..4bf70f6b857 100644 --- a/src/plugins/android/androidsdkmodel.cpp +++ b/src/plugins/android/androidsdkmodel.cpp @@ -149,7 +149,9 @@ QVariant AndroidSdkModel::data(const QModelIndex &index, int role) const const SdkPlatform *platform = m_sdkPlatforms.at(index.row() - 1); if (role == Qt::DisplayRole) { if (index.column() == packageNameColumn) { - QString androidName = AndroidManager::androidNameForApiLevel(platform->apiLevel()); + const QString androidName = AndroidManager::androidNameForApiLevel( + platform->apiLevel()) + + platform->extension(); if (androidName.startsWith("Android")) return androidName; else diff --git a/src/plugins/android/androidsdkpackage.cpp b/src/plugins/android/androidsdkpackage.cpp index eb569691903..ceae739773f 100644 --- a/src/plugins/android/androidsdkpackage.cpp +++ b/src/plugins/android/androidsdkpackage.cpp @@ -74,6 +74,16 @@ void AndroidSdkPackage::setInstalledLocation(const Utils::FilePath &path) updatePackageDetails(); } +void AndroidSdkPackage::setExtension(const QString &extension) +{ + m_extension = extension; +} + +QString AndroidSdkPackage::extension() const +{ + return m_extension; +} + void AndroidSdkPackage::updatePackageDetails() { diff --git a/src/plugins/android/androidsdkpackage.h b/src/plugins/android/androidsdkpackage.h index f2926962d25..2420700664d 100644 --- a/src/plugins/android/androidsdkpackage.h +++ b/src/plugins/android/androidsdkpackage.h @@ -56,6 +56,7 @@ public: QString displayText() const; QString descriptionText() const; + QString extension() const; const QVersionNumber &revision() const; PackageState state() const; const QString &sdkStylePath() const; @@ -66,6 +67,7 @@ protected: void setDescriptionText(const QString &str); void setState(PackageState state); void setInstalledLocation(const Utils::FilePath &path); + void setExtension(const QString &extension); virtual void updatePackageDetails(); @@ -75,6 +77,7 @@ private: QVersionNumber m_revision; PackageState m_state = PackageState::Unknown; QString m_sdkStylePath; + QString m_extension; Utils::FilePath m_installedLocation; friend class Internal::SdkManagerOutputParser; diff --git a/src/plugins/android/avdmanageroutputparser.cpp b/src/plugins/android/avdmanageroutputparser.cpp index afb698a32df..eb252a2db7b 100644 --- a/src/plugins/android/avdmanageroutputparser.cpp +++ b/src/plugins/android/avdmanageroutputparser.cpp @@ -154,5 +154,13 @@ int platformNameToApiLevel(const QString &platformName) return apiLevel; } +QString convertNameToExtension(const QString &name) +{ + if (name.endsWith("ext4")) + return " Extension 4"; + + return {}; +} + } // namespace Internal } // namespace Android diff --git a/src/plugins/android/avdmanageroutputparser.h b/src/plugins/android/avdmanageroutputparser.h index 77a6491dace..ac65fce02bb 100644 --- a/src/plugins/android/avdmanageroutputparser.h +++ b/src/plugins/android/avdmanageroutputparser.h @@ -10,6 +10,7 @@ const char avdManufacturerError[] = "no longer exists as a device"; AndroidDeviceInfoList parseAvdList(const QString &output, Utils::FilePaths *avdErrorPaths); int platformNameToApiLevel(const QString &platformName); +QString convertNameToExtension(const QString &name); } // namespace Internal } // namespace Android