From b9b21453965bf1458519fb0f4734ef4975876505 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Thu, 20 Feb 2020 14:42:12 +0200 Subject: [PATCH] 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 --- src/plugins/android/androidmanager.cpp | 2 ++ src/plugins/android/androidsdkmanager.cpp | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index 9b94f3473ce..4fd6c7504b9 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -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)); } diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index 1987a284ffb..e3ea6860890 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -69,15 +69,19 @@ using SdkCmdFutureInterface = QFutureInterface[0-9Q]{1,})", + QRegularExpression re("(android-)(?[0-9A-Z]{1,})", QRegularExpression::CaseInsensitiveOption); QRegularExpressionMatch match = re.match(platformName); if (match.hasMatch()) { QString apiLevelStr = match.captured("apiLevel"); - if (apiLevelStr == 'Q') - apiLevel = 29; - else - apiLevel = apiLevelStr.toInt(); + bool isUInt; + apiLevel = apiLevelStr.toUInt(&isUInt); + if (!isUInt) { + if (apiLevelStr == 'Q') + apiLevel = 29; + else if (apiLevelStr == 'R') + apiLevel = 30; + } } return apiLevel; }