Android: Decouple missing packages logic from UI

There is no need to modify UI selection in order to
execute installation / deinstallation.

Change-Id: I205477e5ff0e7b07bfbcd6b5f8f985fcb180884e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Jarek Kobus
2024-04-18 15:57:25 +02:00
parent 3a4784ea6c
commit a204bd2304
7 changed files with 82 additions and 97 deletions

View File

@@ -215,6 +215,32 @@ const AndroidSdkPackageList &AndroidSdkManager::allSdkPackages()
return m_d->allPackages();
}
QStringList AndroidSdkManager::notFoundEssentialSdkPackages()
{
QStringList essentials = androidConfig().allEssentials();
const AndroidSdkPackageList &packages = allSdkPackages();
for (AndroidSdkPackage *package : packages) {
essentials.removeOne(package->sdkStylePath());
if (essentials.isEmpty())
return {};
}
return essentials;
}
QStringList AndroidSdkManager::missingEssentialSdkPackages()
{
const QStringList essentials = androidConfig().allEssentials();
const AndroidSdkPackageList &packages = allSdkPackages();
QStringList missingPackages;
for (AndroidSdkPackage *package : packages) {
if (essentials.contains(package->sdkStylePath())
&& package->state() != AndroidSdkPackage::Installed) {
missingPackages.append(package->sdkStylePath());
}
}
return missingPackages;
}
AndroidSdkPackageList AndroidSdkManager::installedSdkPackages()
{
return m_d->filteredPackages(AndroidSdkPackage::Installed, AndroidSdkPackage::AnyValidType);