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

Commit 9d4a4d60 authored by Iurii Makhno's avatar Iurii Makhno
Browse files

Use dot instead of colon as separator of custom part.

This is done becase ':' is already used as a separator between package
and type in a full resource name. So if we use ':' it will be consfusing
for custom resource types: com.my.package:layout:2/myLayout ->
com.my.package:layout.2/myLayout.

DD: go/custom-resource-types-in-aapt2

Bug: b/215108200
Test: Resource_test
Change-Id: Ieed256e4376abe0a3788d8198110bef189b55740
parent f0c5ff46
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -139,10 +139,10 @@ ResourceNamedTypeRef ResourceNamedTypeWithDefaultName(ResourceType t) {
}

std::optional<ResourceNamedTypeRef> ParseResourceNamedType(const android::StringPiece& s) {
  auto colon = std::find(s.begin(), s.end(), ':');
  auto dot = std::find(s.begin(), s.end(), '.');
  const ResourceType* parsedType;
  if (colon != s.end() && colon != std::prev(s.end())) {
    parsedType = ParseResourceType(s.substr(s.begin(), colon));
  if (dot != s.end() && dot != std::prev(s.end())) {
    parsedType = ParseResourceType(s.substr(s.begin(), dot));
  } else {
    parsedType = ParseResourceType(s);
  }
+5 −5
Original line number Diff line number Diff line
@@ -135,13 +135,13 @@ TEST(ResourceTypeTest, ParseResourceNamedType) {
  type = ParseResourceNamedType("layout");
  EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout", ResourceType::kLayout))));

  type = ParseResourceNamedType("layout:2");
  EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout:2", ResourceType::kLayout))));
  type = ParseResourceNamedType("layout.2");
  EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout.2", ResourceType::kLayout))));

  type = ParseResourceNamedType("layout:another");
  EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout:another", ResourceType::kLayout))));
  type = ParseResourceNamedType("layout.another");
  EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout.another", ResourceType::kLayout))));

  type = ParseResourceNamedType("layout:");
  type = ParseResourceNamedType("layout.");
  EXPECT_THAT(type, Eq(std::nullopt));

  type = ParseResourceNamedType("layout2");