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

Commit d7f86e5f authored by Jeremy Meyer's avatar Jeremy Meyer
Browse files

Consider flags when mergine resource tables

Test: Automated
Bug: 329436914
Flag: EXEMPT Aconfig not supported on host tools
Change-Id: I372e3005c0d44ba2e7f3805a43bfc5b0a1bc1200
parent 17b93515
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -33,6 +33,17 @@ genrule {
        "--feature-flags test.package.falseFlag:ro=false,test.package.trueFlag:ro=true",
}

genrule {
    name: "resource-flagging-test-app-resources-compile2",
    tools: ["aapt2"],
    srcs: [
        "flagged_resources_res/values/bools2.xml",
    ],
    out: ["values_bools2.arsc.flat"],
    cmd: "$(location aapt2) compile $(in) -o $(genDir) " +
        "--feature-flags test.package.falseFlag:ro=false,test.package.trueFlag:ro=true",
}

genrule {
    name: "resource-flagging-test-app-apk",
    tools: ["aapt2"],
@@ -40,6 +51,7 @@ genrule {
    srcs: [
        "TestAppAndroidManifest.xml",
        ":resource-flagging-test-app-resources-compile",
        ":resource-flagging-test-app-resources-compile2",
    ],
    out: ["resapp.apk"],
    cmd: "$(location aapt2) link -o $(out) --manifest $(in)",
+2 −0
Original line number Diff line number Diff line
@@ -5,4 +5,6 @@

    <bool name="res2">false</bool>
    <bool name="res2" android:featureFlag="test.package.trueFlag">true</bool>

    <bool name="res3">false</bool>
</resources>
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <bool name="res3" android:featureFlag="test.package.trueFlag">true</bool>
</resources>
 No newline at end of file
+5 −0
Original line number Diff line number Diff line
@@ -63,6 +63,11 @@ public class ResourceFlaggingTest {
        assertThat(getBoolean("res2")).isTrue();
    }

    @Test
    public void testFlagEnabledDifferentCompilationUnit() {
        assertThat(getBoolean("res3")).isTrue();
    }

    private boolean getBoolean(String name) {
        int resId = mResources.getIdentifier(name, "bool", "com.android.intenal.flaggedresources");
        assertThat(resId).isNotEqualTo(0);
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ struct ParsedResource {
  Visibility::Level visibility_level = Visibility::Level::kUndefined;
  bool staged_api = false;
  bool allow_new = false;
  FlagStatus flag_status;
  FlagStatus flag_status = FlagStatus::NoFlag;
  std::optional<OverlayableItem> overlayable_item;
  std::optional<StagedId> staged_alias;

Loading