Android: parse Android 11 (R) packages

Allow parsing packages of the latest Android 11 (R) with API level 30.

Change-Id: Ia50d2ff23395b79828d47a8f9aeb3880aa131d83
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Assam Boudjelthia
2020-02-20 14:42:12 +02:00
parent 267cb34542
commit b9b2145396
2 changed files with 11 additions and 5 deletions

View File

@@ -544,6 +544,8 @@ QString AndroidManager::androidNameForApiLevel(int x)
return QLatin1String("Android 9");
case 29:
return QLatin1String("Android 10");
case 30:
return QLatin1String("Android 11");
default:
return tr("Unknown Android version. API Level: %1").arg(QString::number(x));
}

View File

@@ -69,15 +69,19 @@ using SdkCmdFutureInterface = QFutureInterface<AndroidSdkManager::OperationOutpu
int platformNameToApiLevel(const QString &platformName)
{
int apiLevel = -1;
QRegularExpression re("(android-)(?<apiLevel>[0-9Q]{1,})",
QRegularExpression re("(android-)(?<apiLevel>[0-9A-Z]{1,})",
QRegularExpression::CaseInsensitiveOption);
QRegularExpressionMatch match = re.match(platformName);
if (match.hasMatch()) {
QString apiLevelStr = match.captured("apiLevel");
bool isUInt;
apiLevel = apiLevelStr.toUInt(&isUInt);
if (!isUInt) {
if (apiLevelStr == 'Q')
apiLevel = 29;
else
apiLevel = apiLevelStr.toInt();
else if (apiLevelStr == 'R')
apiLevel = 30;
}
}
return apiLevel;
}