From d52bd6858a6b2913f46e57bca0d96d5212416f10 Mon Sep 17 00:00:00 2001 From: Jeremy Meyer Date: Wed, 14 Aug 2024 11:16:58 -0700 Subject: Flag support for bag resource types Test: Automated Bug: 329436914 Flag: EXEMPT Aconfig not supported on host tools Change-Id: I891c93c3ffcab172d28701b44a80c50f1e24d99e --- tools/aapt2/ResourceValues.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tools/aapt2/ResourceValues.cpp') 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) -> bool { + return item->GetFlagStatus() != FlagStatus::Disabled; + }); + + elements.erase(remove_iter, end_iter); +} + bool Plural::Equals(const Value* value) const { const Plural* other = ValueCast(value); if (!other) { @@ -1092,6 +1102,7 @@ template std::unique_ptr CopyValueFields(std::unique_ptr new_value, const T* value) { new_value->SetSource(value->GetSource()); new_value->SetComment(value->GetComment()); + new_value->SetFlagStatus(value->GetFlagStatus()); return new_value; } -- cgit v1.2.3-59-g8ed1b