Dont parse resource values behind disabled flags

This change makes it so that when we are parsing resources and there is
one behind a disabled flag we don't parse the value. This is primarily
to prevent disabled strings from ending up in the string pool.

Test: automated
Bug: 329436914
Flag: EXEMPT Aconfig not supported on host tools
Change-Id: I4d8683ac820a3fd20cd92c223464f912b0ac422d
diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp
index 2df9418..45bf8e3 100644
--- a/tools/aapt2/ResourceParser.cpp
+++ b/tools/aapt2/ResourceParser.cpp
@@ -690,7 +690,9 @@
         resource_format = item_iter->second.format;
       }
 
-      if (!ParseItem(parser, out_resource, resource_format)) {
+      // Don't bother parsing the item if it is behind a disabled flag
+      if (out_resource->flag_status != FlagStatus::Disabled &&
+          !ParseItem(parser, out_resource, resource_format)) {
         return false;
       }
       return true;