summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceValues.cpp
diff options
context:
space:
mode:
author Jeremy Meyer <jakmcbane@google.com> 2024-08-14 11:16:58 -0700
committer Jeremy Meyer <jakmcbane@google.com> 2024-08-15 14:39:42 -0700
commitd52bd6858a6b2913f46e57bca0d96d5212416f10 (patch)
tree344a52e787e6e0064193d0b176ba58fd50d71c00 /tools/aapt2/ResourceValues.cpp
parentd439c6190e217780329f747d18e9683fce8a5002 (diff)
Flag support for bag resource types
Test: Automated Bug: 329436914 Flag: EXEMPT Aconfig not supported on host tools Change-Id: I891c93c3ffcab172d28701b44a80c50f1e24d99e
Diffstat (limited to 'tools/aapt2/ResourceValues.cpp')
-rw-r--r--tools/aapt2/ResourceValues.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceValues.cpp b/tools/aapt2/ResourceValues.cpp
index 166b01bd9154..b75e87c90128 100644
--- a/tools/aapt2/ResourceValues.cpp
+++ b/tools/aapt2/ResourceValues.cpp
@@ -971,6 +971,16 @@ void Array::Print(std::ostream* out) const {
*out << "(array) [" << util::Joiner(elements, ", ") << "]";
}
+void Array::RemoveFlagDisabledElements() {
+ const auto end_iter = elements.end();
+ const auto remove_iter = std::stable_partition(
+ elements.begin(), end_iter, [](const std::unique_ptr<Item>& item) -> bool {
+ return item->GetFlagStatus() != FlagStatus::Disabled;
+ });
+
+ elements.erase(remove_iter, end_iter);
+}
+
bool Plural::Equals(const Value* value) const {
const Plural* other = ValueCast<Plural>(value);
if (!other) {
@@ -1092,6 +1102,7 @@ template <typename T>
std::unique_ptr<T> CopyValueFields(std::unique_ptr<T> new_value, const T* value) {
new_value->SetSource(value->GetSource());
new_value->SetComment(value->GetComment());
+ new_value->SetFlagStatus(value->GetFlagStatus());
return new_value;
}