Android: FilePath-ify AVD handling code

Change-Id: Id08414f8fb9ce7f4fac5221cd24392e25f02f00d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Alessandro Portale
2022-11-25 19:43:34 +01:00
parent 34c206c700
commit 9441865714
4 changed files with 38 additions and 37 deletions

View File

@@ -86,19 +86,19 @@ static std::optional<AndroidDeviceInfo> parseAvd(const QStringList &deviceInfo)
return {};
}
AndroidDeviceInfoList parseAvdList(const QString &output, QStringList *avdErrorPaths)
AndroidDeviceInfoList parseAvdList(const QString &output, Utils::FilePaths *avdErrorPaths)
{
QTC_CHECK(avdErrorPaths);
AndroidDeviceInfoList avdList;
QStringList avdInfo;
using ErrorPath = QString;
using ErrorPath = Utils::FilePath;
using AvdResult = std::variant<std::monostate, AndroidDeviceInfo, ErrorPath>;
const auto parseAvdInfo = [](const QStringList &avdInfo) {
if (!avdInfo.filter(avdManufacturerError).isEmpty()) {
for (const QString &line : avdInfo) {
QString value;
if (valueForKey(avdInfoPathKey, line, &value))
return AvdResult(value); // error path
return AvdResult(Utils::FilePath::fromString(value)); // error path
}
} else if (std::optional<AndroidDeviceInfo> avd = parseAvd(avdInfo)) {
// armeabi-v7a devices can also run armeabi code