summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aapt2/ResourceUtils.cpp')
-rw-r--r--tools/aapt2/ResourceUtils.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp
index c6f91527c91c..ab4805f626a5 100644
--- a/tools/aapt2/ResourceUtils.cpp
+++ b/tools/aapt2/ResourceUtils.cpp
@@ -16,6 +16,7 @@
#include "ResourceUtils.h"
+#include <algorithm>
#include <sstream>
#include "android-base/stringprintf.h"
@@ -503,6 +504,14 @@ Maybe<int> ParseSdkVersion(const StringPiece& str) {
if (entry.first == trimmed_str) {
return entry.second;
}
+
+ // Try parsing codename from "[codename].[preview_sdk_fingerprint]" value.
+ const StringPiece::const_iterator begin = std::begin(trimmed_str);
+ const StringPiece::const_iterator end = std::end(trimmed_str);
+ const StringPiece::const_iterator codename_end = std::find(begin, end, '.');
+ if (codename_end != end && entry.first == trimmed_str.substr(begin, codename_end)) {
+ return entry.second;
+ }
return {};
}