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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user