Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54938a05 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "AAPT2: Add support for parsing codeNames with fingerprints."

parents 46c2a56f 79f03968
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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 {};
}

+12 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#include "ResourceUtils.h"

#include "SdkConstants.h"
#include "Resource.h"
#include "test/Test.h"

@@ -212,6 +213,17 @@ TEST(ResourceUtilsTest, ItemsWithWhitespaceAreParsedCorrectly) {
              Pointee(ValueEq(BinaryPrimitive(Res_value::TYPE_FLOAT, expected_float_flattened))));
}

TEST(ResourceUtilsTest, ParseSdkVersionWithCodename) {
  const android::StringPiece codename =
      GetDevelopmentSdkCodeNameAndVersion().first;
  const int version = GetDevelopmentSdkCodeNameAndVersion().second;

  EXPECT_THAT(ResourceUtils::ParseSdkVersion(codename), Eq(Maybe<int>(version)));
  EXPECT_THAT(
      ResourceUtils::ParseSdkVersion(codename.to_string() + ".fingerprint"),
      Eq(Maybe<int>(version)));
}

TEST(ResourceUtilsTest, StringBuilderWhitespaceRemoval) {
  EXPECT_THAT(ResourceUtils::StringBuilder()
                  .AppendText("    hey guys ")