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"); return QLatin1String("Android 9");
case 29: case 29:
return QLatin1String("Android 10"); return QLatin1String("Android 10");
case 30:
return QLatin1String("Android 11");
default: default:
return tr("Unknown Android version. API Level: %1").arg(QString::number(x)); 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 platformNameToApiLevel(const QString &platformName)
{ {
int apiLevel = -1; int apiLevel = -1;
QRegularExpression re("(android-)(?<apiLevel>[0-9Q]{1,})", QRegularExpression re("(android-)(?<apiLevel>[0-9A-Z]{1,})",
QRegularExpression::CaseInsensitiveOption); QRegularExpression::CaseInsensitiveOption);
QRegularExpressionMatch match = re.match(platformName); QRegularExpressionMatch match = re.match(platformName);
if (match.hasMatch()) { if (match.hasMatch()) {
QString apiLevelStr = match.captured("apiLevel"); QString apiLevelStr = match.captured("apiLevel");
bool isUInt;
apiLevel = apiLevelStr.toUInt(&isUInt);
if (!isUInt) {
if (apiLevelStr == 'Q') if (apiLevelStr == 'Q')
apiLevel = 29; apiLevel = 29;
else else if (apiLevelStr == 'R')
apiLevel = apiLevelStr.toInt(); apiLevel = 30;
}
} }
return apiLevel; return apiLevel;
} }