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

Commit aeef612f authored by Adam Lesinski's avatar Adam Lesinski Committed by Android (Google) Code Review
Browse files

Merge "Search all packages for a given type string when looking up resources by name" into lmp-dev

parents 6166a824 e60a87f5
Loading
Loading
Loading
Loading
+46 −42
Original line number Diff line number Diff line
@@ -4175,12 +4175,15 @@ nope:
            continue;
        }

        const ssize_t ti = group->findType16(type, typeLen);
        const size_t packageCount = group->packages.size();
        for (size_t pi = 0; pi < packageCount; pi++) {
            ssize_t ti = group->packages[pi]->typeStrings.indexOfString(type, typeLen);
            if (ti < 0) {
            TABLE_NOISY(printf("Type not found in package %s\n", String8(group->name).string()));
                continue;
            }

            ti += group->packages[pi]->typeIdOffset;

            const TypeList& typeList = group->types[ti];
            if (typeList.isEmpty()) {
                TABLE_NOISY(printf("Expected type structure not found in package %s for index %d\n",
@@ -4230,6 +4233,7 @@ nope:
                    }
                }
            }
        }
        break;
    }
    return 0;
+14 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ TEST(SplitFeatureTest, TestNewResourceIsAccessible) {
    EXPECT_EQ(Res_value::TYPE_STRING, val.dataType);
}

TEST(SplitFeatureTest, TestNewResourceIsAccessibleByName) {
TEST(SplitFeatureTest, TestNewResourceNameHasCorrectName) {
    ResTable table;
    ASSERT_EQ(NO_ERROR, table.add(basic_arsc, basic_arsc_len));

@@ -200,4 +200,17 @@ TEST(SplitFeatureTest, TestNewResourceIsAccessibleByName) {
            String16(name.name, name.nameLen));
}

TEST(SplitFeatureTest, TestNewResourceIsAccessibleByName) {
    ResTable table;
    ASSERT_EQ(NO_ERROR, table.add(basic_arsc, basic_arsc_len));
    ASSERT_EQ(NO_ERROR, table.add(feature_arsc, feature_arsc_len));

    const String16 name("test3");
    const String16 type("string");
    const String16 package("com.android.test.basic");
    ASSERT_EQ(base::R::string::test3, table.identifierForName(name.string(), name.size(),
                                                              type.string(), type.size(),
                                                              package.string(), package.size()));
}

} // namespace