diff options
author | 2018-06-20 08:46:41 +0200 | |
---|---|---|
committer | 2018-10-08 06:50:22 -0700 | |
commit | 24c9aa65411207067f509c5e88ad31b303d26fcd (patch) | |
tree | 9a7405282c003f0c360c95bd051681733d765919 | |
parent | ec5c04f4ab781938123e5f68569048cf65fddc14 (diff) |
libandroidfw: move ConfigDescription from aapt2 to libandroidfw
This is to allow idmap2 to access ConfigDescription.
Test: libandroidfw_tests
Test: aapt2_tests
Change-Id: I54210bbbd8dad5903cb7100807df977efa394ad5
64 files changed, 281 insertions, 142 deletions
diff --git a/libs/androidfw/Android.bp b/libs/androidfw/Android.bp index bba36bcba804..74cab920cf2d 100644 --- a/libs/androidfw/Android.bp +++ b/libs/androidfw/Android.bp @@ -43,8 +43,10 @@ cc_library { "AssetManager2.cpp", "AttributeResolution.cpp", "ChunkIterator.cpp", + "ConfigDescription.cpp", "Idmap.cpp", "LoadedArsc.cpp", + "Locale.cpp", "LocaleData.cpp", "misc.cpp", "ObbFile.cpp", @@ -135,10 +137,12 @@ cc_test { "tests/AttributeResolution_test.cpp", "tests/ByteBucketArray_test.cpp", "tests/Config_test.cpp", + "tests/ConfigDescription_test.cpp", "tests/ConfigLocale_test.cpp", "tests/DynamicRefTable_test.cpp", "tests/Idmap_test.cpp", "tests/LoadedArsc_test.cpp", + "tests/Locale_test.cpp", "tests/ResourceUtils_test.cpp", "tests/ResTable_test.cpp", "tests/Split_test.cpp", diff --git a/tools/aapt2/ConfigDescription.cpp b/libs/androidfw/ConfigDescription.cpp index f621660cb8ad..1f3a89edb8af 100644 --- a/tools/aapt2/ConfigDescription.cpp +++ b/libs/androidfw/ConfigDescription.cpp @@ -14,22 +14,16 @@ * limitations under the License. */ -#include "ConfigDescription.h" - -#include <string> -#include <vector> - +#include "androidfw/ConfigDescription.h" +#include "androidfw/Locale.h" #include "androidfw/ResourceTypes.h" #include "androidfw/StringPiece.h" +#include "androidfw/Util.h" -#include "Locale.h" -#include "SdkConstants.h" -#include "util/Util.h" - -using android::ResTable_config; -using android::StringPiece; +#include <string> +#include <vector> -namespace aapt { +namespace android { static const char* kWildcardName = "any"; @@ -883,7 +877,7 @@ std::string ConfigDescription::GetBcp47LanguageTag(bool canonicalize) const { } std::string ConfigDescription::to_string() const { - const android::String8 str = toString(); + const String8 str = toString(); return std::string(str.string(), str.size()); } @@ -996,4 +990,4 @@ bool ConfigDescription::IsCompatibleWith(const ConfigDescription& o) const { return !ConflictsWith(o) && !Dominates(o) && !o.Dominates(*this); } -} // namespace aapt +} // namespace android diff --git a/tools/aapt2/Locale.cpp b/libs/androidfw/Locale.cpp index d81921f23904..2870066ccbba 100644 --- a/tools/aapt2/Locale.cpp +++ b/libs/androidfw/Locale.cpp @@ -14,7 +14,8 @@ * limitations under the License. */ -#include "Locale.h" +#include "androidfw/Locale.h" +#include "androidfw/Util.h" #include <ctype.h> @@ -22,12 +23,10 @@ #include <string> #include <vector> -#include "util/Util.h" - using ::android::ResTable_config; using ::android::StringPiece; -namespace aapt { +namespace android { void LocaleValue::set_language(const char* language_chars) { size_t i = 0; @@ -258,4 +257,4 @@ void LocaleValue::WriteTo(ResTable_config* out) const { } } -} // namespace aapt +} // namespace android diff --git a/libs/androidfw/Util.cpp b/libs/androidfw/Util.cpp index 575cd18a36dd..59c9d640bb91 100644 --- a/libs/androidfw/Util.cpp +++ b/libs/androidfw/Util.cpp @@ -16,6 +16,7 @@ #include "androidfw/Util.h" +#include <algorithm> #include <string> #include "utils/ByteOrder.h" @@ -67,5 +68,28 @@ std::string Utf16ToUtf8(const StringPiece16& utf16) { return utf8; } +static std::vector<std::string> SplitAndTransform( + const StringPiece& str, char sep, const std::function<char(char)>& f) { + std::vector<std::string> parts; + const StringPiece::const_iterator end = std::end(str); + StringPiece::const_iterator start = std::begin(str); + StringPiece::const_iterator current; + do { + current = std::find(start, end, sep); + parts.emplace_back(str.substr(start, current).to_string()); + if (f) { + std::string& part = parts.back(); + std::transform(part.begin(), part.end(), part.begin(), f); + } + start = current + 1; + } while (current != end); + return parts; +} + +std::vector<std::string> SplitAndLowercase(const StringPiece& str, char sep) { + return SplitAndTransform(str, sep, ::tolower); +} + + } // namespace util } // namespace android diff --git a/tools/aapt2/ConfigDescription.h b/libs/androidfw/include/androidfw/ConfigDescription.h index b46a50398217..29424c4462aa 100644 --- a/tools/aapt2/ConfigDescription.h +++ b/libs/androidfw/include/androidfw/ConfigDescription.h @@ -14,21 +14,52 @@ * limitations under the License. */ -#ifndef AAPT_CONFIG_DESCRIPTION_H -#define AAPT_CONFIG_DESCRIPTION_H +#ifndef ANDROIDFW_CONFIG_DESCRIPTION_H +#define ANDROIDFW_CONFIG_DESCRIPTION_H #include <ostream> #include "androidfw/ResourceTypes.h" #include "androidfw/StringPiece.h" -namespace aapt { +namespace android { + +using ApiVersion = int; + +enum : ApiVersion { + SDK_CUPCAKE = 3, + SDK_DONUT = 4, + SDK_ECLAIR = 5, + SDK_ECLAIR_0_1 = 6, + SDK_ECLAIR_MR1 = 7, + SDK_FROYO = 8, + SDK_GINGERBREAD = 9, + SDK_GINGERBREAD_MR1 = 10, + SDK_HONEYCOMB = 11, + SDK_HONEYCOMB_MR1 = 12, + SDK_HONEYCOMB_MR2 = 13, + SDK_ICE_CREAM_SANDWICH = 14, + SDK_ICE_CREAM_SANDWICH_MR1 = 15, + SDK_JELLY_BEAN = 16, + SDK_JELLY_BEAN_MR1 = 17, + SDK_JELLY_BEAN_MR2 = 18, + SDK_KITKAT = 19, + SDK_KITKAT_WATCH = 20, + SDK_LOLLIPOP = 21, + SDK_LOLLIPOP_MR1 = 22, + SDK_MARSHMALLOW = 23, + SDK_NOUGAT = 24, + SDK_NOUGAT_MR1 = 25, + SDK_O = 26, + SDK_O_MR1 = 27, + SDK_P = 28, +}; /* * Subclass of ResTable_config that adds convenient * initialization and comparison methods. */ -struct ConfigDescription : public android::ResTable_config { +struct ConfigDescription : public ResTable_config { /** * Returns an immutable default config. */ @@ -180,6 +211,6 @@ inline ::std::ostream& operator<<(::std::ostream& out, return out << o.toString().string(); } -} // namespace aapt +} // namespace android -#endif // AAPT_CONFIG_DESCRIPTION_H +#endif // ANDROIDFW_CONFIG_DESCRIPTION_H diff --git a/tools/aapt2/Locale.h b/libs/androidfw/include/androidfw/Locale.h index 6d8b598415cc..484ed79a8efd 100644 --- a/tools/aapt2/Locale.h +++ b/libs/androidfw/include/androidfw/Locale.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef AAPT_LOCALE_VALUE_H -#define AAPT_LOCALE_VALUE_H +#ifndef ANDROIDFW_LOCALE_VALUE_H +#define ANDROIDFW_LOCALE_VALUE_H #include <string> #include <vector> @@ -23,7 +23,7 @@ #include "androidfw/ResourceTypes.h" #include "androidfw/StringPiece.h" -namespace aapt { +namespace android { /** * A convenience class to build and parse locales. @@ -112,6 +112,6 @@ bool LocaleValue::operator>(const LocaleValue& o) const { return compare(o) > 0; } -} // namespace aapt +} // namespace android -#endif // AAPT_LOCALE_VALUE_H +#endif // ANDROIDFW_LOCALE_VALUE_H diff --git a/libs/androidfw/include/androidfw/Util.h b/libs/androidfw/include/androidfw/Util.h index 6c9eee0b8835..10d088e02829 100644 --- a/libs/androidfw/include/androidfw/Util.h +++ b/libs/androidfw/include/androidfw/Util.h @@ -19,6 +19,7 @@ #include <cstdlib> #include <memory> +#include <vector> #include "android-base/macros.h" @@ -116,6 +117,8 @@ std::u16string Utf8ToUtf16(const StringPiece& utf8); // Converts a UTF-16 string to a UTF-8 string. std::string Utf16ToUtf8(const StringPiece16& utf16); +std::vector<std::string> SplitAndLowercase(const android::StringPiece& str, char sep); + } // namespace util } // namespace android diff --git a/tools/aapt2/ConfigDescription_test.cpp b/libs/androidfw/tests/ConfigDescription_test.cpp index 1f351bf7481d..ce7f8054e2ca 100644 --- a/tools/aapt2/ConfigDescription_test.cpp +++ b/libs/androidfw/tests/ConfigDescription_test.cpp @@ -14,18 +14,16 @@ * limitations under the License. */ -#include "ConfigDescription.h" - -#include <string> - +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" -#include "SdkConstants.h" -#include "test/Test.h" +#include "android-base/logging.h" -using android::StringPiece; +#include "gtest/gtest.h" + +#include <string> -namespace aapt { +namespace android { static ::testing::AssertionResult TestParse( const StringPiece& input, ConfigDescription* config = nullptr) { @@ -140,9 +138,13 @@ TEST(ConfigDescriptionTest, ParseVrAttribute) { EXPECT_EQ(std::string("vrheadset-v26"), config.toString().string()); } -TEST(ConfigDescriptionTest, RangeQualifiersDoNotConflict) { - using test::ParseConfigOrDie; +static inline ConfigDescription ParseConfigOrDie(const android::StringPiece& str) { + ConfigDescription config; + CHECK(ConfigDescription::Parse(str, &config)) << "invalid configuration: " << str; + return config; +} +TEST(ConfigDescriptionTest, RangeQualifiersDoNotConflict) { EXPECT_FALSE(ParseConfigOrDie("large").ConflictsWith(ParseConfigOrDie("normal-land"))); EXPECT_FALSE(ParseConfigOrDie("long-hdpi").ConflictsWith(ParseConfigOrDie("xhdpi"))); EXPECT_FALSE(ParseConfigOrDie("sw600dp").ConflictsWith(ParseConfigOrDie("sw700dp"))); @@ -152,4 +154,4 @@ TEST(ConfigDescriptionTest, RangeQualifiersDoNotConflict) { EXPECT_FALSE(ParseConfigOrDie("600x400").ConflictsWith(ParseConfigOrDie("300x200"))); } -} // namespace aapt +} // namespace android diff --git a/tools/aapt2/Locale_test.cpp b/libs/androidfw/tests/Locale_test.cpp index 68b4cae44e15..6b2ef5f6a381 100644 --- a/tools/aapt2/Locale_test.cpp +++ b/libs/androidfw/tests/Locale_test.cpp @@ -14,15 +14,14 @@ * limitations under the License. */ -#include "Locale.h" +#include "androidfw/Locale.h" +#include "androidfw/Util.h" #include <string> #include "gtest/gtest.h" -#include "util/Util.h" - -namespace aapt { +namespace android { static ::testing::AssertionResult TestLanguage(const char* input, const char* lang) { @@ -93,4 +92,4 @@ TEST(ConfigDescriptionTest, ParseLanguage) { EXPECT_TRUE(TestLanguageRegion("fr-rCA", "fr", "CA")); } -} // namespace aapt +} // namespace android diff --git a/tools/aapt2/Android.bp b/tools/aapt2/Android.bp index c02ca211a194..ba498e19f837 100644 --- a/tools/aapt2/Android.bp +++ b/tools/aapt2/Android.bp @@ -123,7 +123,6 @@ cc_library_host_static { "util/BigBuffer.cpp", "util/Files.cpp", "util/Util.cpp", - "ConfigDescription.cpp", "Debug.cpp", "DominatorTree.cpp", "java/AnnotationProcessor.cpp", @@ -132,7 +131,6 @@ cc_library_host_static { "java/ManifestClassGenerator.cpp", "java/ProguardRules.cpp", "LoadedApk.cpp", - "Locale.cpp", "Resource.cpp", "ResourceParser.cpp", "ResourceTable.cpp", diff --git a/tools/aapt2/DominatorTree.cpp b/tools/aapt2/DominatorTree.cpp index 118a385e2253..ff18033c641a 100644 --- a/tools/aapt2/DominatorTree.cpp +++ b/tools/aapt2/DominatorTree.cpp @@ -19,8 +19,9 @@ #include <algorithm> #include "android-base/logging.h" +#include "androidfw/ConfigDescription.h" -#include "ConfigDescription.h" +using ::android::ConfigDescription; namespace aapt { diff --git a/tools/aapt2/DominatorTree_test.cpp b/tools/aapt2/DominatorTree_test.cpp index efc523fcf59b..fe4f951a5cd0 100644 --- a/tools/aapt2/DominatorTree_test.cpp +++ b/tools/aapt2/DominatorTree_test.cpp @@ -23,6 +23,8 @@ #include "test/Test.h" #include "util/Util.h" +using ::android::ConfigDescription; + namespace aapt { namespace { diff --git a/tools/aapt2/Resource.h b/tools/aapt2/Resource.h index 879d0bd8d94e..dd5c751967b8 100644 --- a/tools/aapt2/Resource.h +++ b/tools/aapt2/Resource.h @@ -24,10 +24,10 @@ #include <tuple> #include <vector> +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include "utils/JenkinsHash.h" -#include "ConfigDescription.h" #include "Source.h" namespace aapt { @@ -176,7 +176,7 @@ struct ResourceFile { ResourceName name; // Configuration - ConfigDescription config; + android::ConfigDescription config; // Type Type type; @@ -194,7 +194,7 @@ struct ResourceFile { */ struct ResourceKey { ResourceName name; - ConfigDescription config; + android::ConfigDescription config; }; bool operator<(const ResourceKey& a, const ResourceKey& b); @@ -206,16 +206,16 @@ bool operator<(const ResourceKey& a, const ResourceKey& b); */ struct ResourceKeyRef { ResourceNameRef name; - ConfigDescription config; + android::ConfigDescription config; ResourceKeyRef() = default; - ResourceKeyRef(const ResourceNameRef& n, const ConfigDescription& c) + ResourceKeyRef(const ResourceNameRef& n, const android::ConfigDescription& c) : name(n), config(c) {} /** * Prevent taking a reference to a temporary. This is bad. */ - ResourceKeyRef(ResourceName&& n, const ConfigDescription& c) = delete; + ResourceKeyRef(ResourceName&& n, const android::ConfigDescription& c) = delete; }; bool operator<(const ResourceKeyRef& a, const ResourceKeyRef& b); diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp index 8719a233d774..9a3f14c8e08e 100644 --- a/tools/aapt2/ResourceParser.cpp +++ b/tools/aapt2/ResourceParser.cpp @@ -34,6 +34,7 @@ using ::aapt::ResourceUtils::StringBuilder; using ::aapt::text::Utf8Iterator; +using ::android::ConfigDescription; using ::android::StringPiece; namespace aapt { diff --git a/tools/aapt2/ResourceParser.h b/tools/aapt2/ResourceParser.h index 68130c2512d3..06bb0c9cf264 100644 --- a/tools/aapt2/ResourceParser.h +++ b/tools/aapt2/ResourceParser.h @@ -20,9 +20,9 @@ #include <memory> #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" -#include "ConfigDescription.h" #include "Diagnostics.h" #include "ResourceTable.h" #include "ResourceValues.h" @@ -57,7 +57,7 @@ struct ResourceParserOptions { class ResourceParser { public: ResourceParser(IDiagnostics* diag, ResourceTable* table, const Source& source, - const ConfigDescription& config, + const android::ConfigDescription& config, const ResourceParserOptions& options = {}); bool Parse(xml::XmlPullParser* parser); @@ -114,7 +114,7 @@ class ResourceParser { IDiagnostics* diag_; ResourceTable* table_; Source source_; - ConfigDescription config_; + android::ConfigDescription config_; ResourceParserOptions options_; }; diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp index ee496d501113..0dff66430532 100644 --- a/tools/aapt2/ResourceParser_test.cpp +++ b/tools/aapt2/ResourceParser_test.cpp @@ -29,6 +29,7 @@ using ::aapt::io::StringInputStream; using ::aapt::test::StrValueEq; using ::aapt::test::ValueEq; +using ::android::ConfigDescription; using ::android::Res_value; using ::android::ResTable_map; using ::android::StringPiece; diff --git a/tools/aapt2/ResourceTable.cpp b/tools/aapt2/ResourceTable.cpp index 23322ab277bf..056a27bf011d 100644 --- a/tools/aapt2/ResourceTable.cpp +++ b/tools/aapt2/ResourceTable.cpp @@ -23,9 +23,9 @@ #include "android-base/logging.h" #include "android-base/stringprintf.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" -#include "ConfigDescription.h" #include "Debug.h" #include "NameMangler.h" #include "ResourceValues.h" @@ -34,6 +34,7 @@ #include "util/Util.h" using ::aapt::text::IsValidResourceEntryName; +using ::android::ConfigDescription; using ::android::StringPiece; using ::android::base::StringPrintf; diff --git a/tools/aapt2/ResourceTable.h b/tools/aapt2/ResourceTable.h index 5a43a2d86cfe..1917d7e78c4f 100644 --- a/tools/aapt2/ResourceTable.h +++ b/tools/aapt2/ResourceTable.h @@ -17,7 +17,6 @@ #ifndef AAPT_RESOURCE_TABLE_H #define AAPT_RESOURCE_TABLE_H -#include "ConfigDescription.h" #include "Diagnostics.h" #include "Resource.h" #include "ResourceValues.h" @@ -26,6 +25,7 @@ #include "io/File.h" #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include <functional> @@ -66,7 +66,7 @@ struct Overlayable { class ResourceConfigValue { public: // The configuration for which this value is defined. - const ConfigDescription config; + const android::ConfigDescription config; // The product for which this value is defined. const std::string product; @@ -74,7 +74,7 @@ class ResourceConfigValue { // The actual Value. std::unique_ptr<Value> value; - ResourceConfigValue(const ConfigDescription& config, const android::StringPiece& product) + ResourceConfigValue(const android::ConfigDescription& config, const android::StringPiece& product) : config(config), product(product.to_string()) {} private: @@ -103,14 +103,14 @@ class ResourceEntry { explicit ResourceEntry(const android::StringPiece& name) : name(name.to_string()) {} - ResourceConfigValue* FindValue(const ConfigDescription& config); + ResourceConfigValue* FindValue(const android::ConfigDescription& config); - ResourceConfigValue* FindValue(const ConfigDescription& config, + ResourceConfigValue* FindValue(const android::ConfigDescription& config, const android::StringPiece& product); - ResourceConfigValue* FindOrCreateValue(const ConfigDescription& config, + ResourceConfigValue* FindOrCreateValue(const android::ConfigDescription& config, const android::StringPiece& product); - std::vector<ResourceConfigValue*> FindAllValues(const ConfigDescription& config); + std::vector<ResourceConfigValue*> FindAllValues(const android::ConfigDescription& config); template <typename Func> std::vector<ResourceConfigValue*> FindValuesIf(Func f) { @@ -189,29 +189,30 @@ class ResourceTable { // When a collision of resources occurs, this method keeps both values static CollisionResult IgnoreCollision(Value* existing, Value* incoming); - bool AddResource(const ResourceNameRef& name, const ConfigDescription& config, + bool AddResource(const ResourceNameRef& name, const android::ConfigDescription& config, const android::StringPiece& product, std::unique_ptr<Value> value, IDiagnostics* diag); bool AddResourceWithId(const ResourceNameRef& name, const ResourceId& res_id, - const ConfigDescription& config, const android::StringPiece& product, - std::unique_ptr<Value> value, IDiagnostics* diag); + const android::ConfigDescription& config, + const android::StringPiece& product, std::unique_ptr<Value> value, + IDiagnostics* diag); - bool AddFileReference(const ResourceNameRef& name, const ConfigDescription& config, + bool AddFileReference(const ResourceNameRef& name, const android::ConfigDescription& config, const Source& source, const android::StringPiece& path, IDiagnostics* diag); - bool AddFileReferenceMangled(const ResourceNameRef& name, const ConfigDescription& config, + bool AddFileReferenceMangled(const ResourceNameRef& name, const android::ConfigDescription& config, const Source& source, const android::StringPiece& path, io::IFile* file, IDiagnostics* diag); // Same as AddResource, but doesn't verify the validity of the name. This is used // when loading resources from an existing binary resource table that may have mangled names. - bool AddResourceMangled(const ResourceNameRef& name, const ConfigDescription& config, + bool AddResourceMangled(const ResourceNameRef& name, const android::ConfigDescription& config, const android::StringPiece& product, std::unique_ptr<Value> value, IDiagnostics* diag); bool AddResourceWithIdMangled(const ResourceNameRef& name, const ResourceId& id, - const ConfigDescription& config, + const android::ConfigDescription& config, const android::StringPiece& product, std::unique_ptr<Value> value, IDiagnostics* diag); @@ -286,11 +287,12 @@ class ResourceTable { IDiagnostics* diag); bool AddResourceImpl(const ResourceNameRef& name, const ResourceId& res_id, - const ConfigDescription& config, const android::StringPiece& product, - std::unique_ptr<Value> value, NameValidator name_validator, - const CollisionResolverFunc& conflict_resolver, IDiagnostics* diag); + const android::ConfigDescription& config, + const android::StringPiece& product, std::unique_ptr<Value> value, + NameValidator name_validator, const CollisionResolverFunc& conflict_resolver, + IDiagnostics* diag); - bool AddFileReferenceImpl(const ResourceNameRef& name, const ConfigDescription& config, + bool AddFileReferenceImpl(const ResourceNameRef& name, const android::ConfigDescription& config, const Source& source, const android::StringPiece& path, io::IFile* file, NameValidator name_validator, IDiagnostics* diag); diff --git a/tools/aapt2/ResourceTable_test.cpp b/tools/aapt2/ResourceTable_test.cpp index 1aa97511dd37..05c6f1531d34 100644 --- a/tools/aapt2/ResourceTable_test.cpp +++ b/tools/aapt2/ResourceTable_test.cpp @@ -24,6 +24,7 @@ #include <ostream> #include <string> +using ::android::ConfigDescription; using ::android::StringPiece; using ::testing::Eq; using ::testing::NotNull; diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp index de00fcaea07b..dbe5ac5adb98 100644 --- a/tools/aapt2/ResourceUtils.cpp +++ b/tools/aapt2/ResourceUtils.cpp @@ -31,6 +31,7 @@ #include "util/Util.h" using ::aapt::text::Utf8Iterator; +using ::android::ConfigDescription; using ::android::StringPiece; using ::android::StringPiece16; using ::android::base::StringPrintf; diff --git a/tools/aapt2/ResourceUtils.h b/tools/aapt2/ResourceUtils.h index 410ef28ce78a..e282fd58d261 100644 --- a/tools/aapt2/ResourceUtils.h +++ b/tools/aapt2/ResourceUtils.h @@ -20,6 +20,7 @@ #include <functional> #include <memory> +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" #include "androidfw/StringPiece.h" @@ -219,7 +220,8 @@ std::string BuildResourceFileName(const ResourceFile& res_file, // Parses the binary form of a resource value. `type` is used as a hint to know when a value is // an ID versus a False boolean value, etc. `config` is for sorting strings in the string pool. -std::unique_ptr<Item> ParseBinaryResValue(const ResourceType& type, const ConfigDescription& config, +std::unique_ptr<Item> ParseBinaryResValue(const ResourceType& type, + const android::ConfigDescription& config, const android::ResStringPool& src_pool, const android::Res_value& res_value, StringPool* dst_pool); diff --git a/tools/aapt2/StringPool.h b/tools/aapt2/StringPool.h index f5b464de2ea5..1006ca970dc5 100644 --- a/tools/aapt2/StringPool.h +++ b/tools/aapt2/StringPool.h @@ -24,9 +24,9 @@ #include <vector> #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" -#include "ConfigDescription.h" #include "Diagnostics.h" #include "util/BigBuffer.h" @@ -60,12 +60,12 @@ class StringPool { kLowPriority = 0xffffffffu, }; uint32_t priority = kNormalPriority; - ConfigDescription config; + android::ConfigDescription config; Context() = default; - Context(uint32_t p, const ConfigDescription& c) : priority(p), config(c) {} + Context(uint32_t p, const android::ConfigDescription& c) : priority(p), config(c) {} explicit Context(uint32_t p) : priority(p) {} - explicit Context(const ConfigDescription& c) : priority(kNormalPriority), config(c) { + explicit Context(const android::ConfigDescription& c) : priority(kNormalPriority), config(c) { } }; diff --git a/tools/aapt2/cmd/Compile.cpp b/tools/aapt2/cmd/Compile.cpp index 8060a8de4629..fc9514a691d2 100644 --- a/tools/aapt2/cmd/Compile.cpp +++ b/tools/aapt2/cmd/Compile.cpp @@ -22,11 +22,11 @@ #include "android-base/errors.h" #include "android-base/file.h" #include "android-base/utf8.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include "google/protobuf/io/coded_stream.h" #include "google/protobuf/io/zero_copy_stream_impl_lite.h" -#include "ConfigDescription.h" #include "Diagnostics.h" #include "ResourceParser.h" #include "ResourceTable.h" @@ -53,6 +53,7 @@ using ::aapt::io::FileInputStream; using ::aapt::text::Printer; +using ::android::ConfigDescription; using ::android::StringPiece; using ::android::base::SystemErrorCodeToString; using ::google::protobuf::io::CopyingOutputStreamAdaptor; diff --git a/tools/aapt2/cmd/Dump.cpp b/tools/aapt2/cmd/Dump.cpp index 91e39771e490..d80b5ea38bbd 100644 --- a/tools/aapt2/cmd/Dump.cpp +++ b/tools/aapt2/cmd/Dump.cpp @@ -20,6 +20,7 @@ #include <vector> #include "android-base/stringprintf.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include "Debug.h" @@ -233,12 +234,12 @@ int DumpConfigsCommand::Action(const std::vector<std::string>& args) { Printer printer(&fout); // Comparison function used to order configurations - auto compare = [](ConfigDescription c1, ConfigDescription c2) -> bool { + auto compare = [](android::ConfigDescription c1, android::ConfigDescription c2) -> bool { return c1.compare(c2) < 0; }; // Insert the configurations into a set in order to keep every configuarion seen - std::set<ConfigDescription, decltype(compare)> configs(compare); + std::set<android::ConfigDescription, decltype(compare)> configs(compare); for (auto& package : table->packages) { for (auto& type : package->types) { for (auto& entry : type->entries) { diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp index 20ea3cb6ffac..186f8a159fe7 100644 --- a/tools/aapt2/cmd/Link.cpp +++ b/tools/aapt2/cmd/Link.cpp @@ -27,12 +27,12 @@ #include "android-base/errors.h" #include "android-base/file.h" #include "android-base/stringprintf.h" +#include "androidfw/Locale.h" #include "androidfw/StringPiece.h" #include "AppInfo.h" #include "Debug.h" #include "LoadedApk.h" -#include "Locale.h" #include "NameMangler.h" #include "ResourceUtils.h" #include "ResourceValues.h" @@ -70,6 +70,7 @@ #include "xml/XmlDom.h" using ::aapt::io::FileInputStream; +using ::android::ConfigDescription; using ::android::StringPiece; using ::android::base::StringPrintf; diff --git a/tools/aapt2/cmd/Optimize.cpp b/tools/aapt2/cmd/Optimize.cpp index 47288ec092de..328b0beda372 100644 --- a/tools/aapt2/cmd/Optimize.cpp +++ b/tools/aapt2/cmd/Optimize.cpp @@ -22,6 +22,7 @@ #include "android-base/file.h" #include "android-base/stringprintf.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" #include "androidfw/StringPiece.h" @@ -47,6 +48,7 @@ using ::aapt::configuration::Abi; using ::aapt::configuration::OutputArtifact; +using ::android::ConfigDescription; using ::android::ResTable_config; using ::android::StringPiece; using ::android::base::ReadFileToString; diff --git a/tools/aapt2/cmd/Util.cpp b/tools/aapt2/cmd/Util.cpp index 5862d31e3f94..792120e449ae 100644 --- a/tools/aapt2/cmd/Util.cpp +++ b/tools/aapt2/cmd/Util.cpp @@ -19,15 +19,17 @@ #include <vector> #include "android-base/logging.h" +#include "androidfw/ConfigDescription.h" +#include "androidfw/Locale.h" -#include "ConfigDescription.h" -#include "Locale.h" #include "ResourceUtils.h" #include "ValueVisitor.h" #include "split/TableSplitter.h" #include "util/Maybe.h" #include "util/Util.h" +using ::android::ConfigDescription; +using ::android::LocaleValue; using ::android::StringPiece; using ::android::base::StringPrintf; diff --git a/tools/aapt2/cmd/Util_test.cpp b/tools/aapt2/cmd/Util_test.cpp index 6aeff08e618e..f92f1e3c4c7e 100644 --- a/tools/aapt2/cmd/Util_test.cpp +++ b/tools/aapt2/cmd/Util_test.cpp @@ -24,6 +24,8 @@ #include "test/Test.h" #include "util/Files.h" +using ::android::ConfigDescription; + namespace aapt { #ifdef _WIN32 diff --git a/tools/aapt2/compile/PseudolocaleGenerator.cpp b/tools/aapt2/compile/PseudolocaleGenerator.cpp index 36c24bc4a0fd..c5de9e058907 100644 --- a/tools/aapt2/compile/PseudolocaleGenerator.cpp +++ b/tools/aapt2/compile/PseudolocaleGenerator.cpp @@ -24,6 +24,7 @@ #include "compile/Pseudolocalizer.h" #include "util/Util.h" +using ::android::ConfigDescription; using ::android::StringPiece; using ::android::StringPiece16; diff --git a/tools/aapt2/compile/PseudolocaleGenerator_test.cpp b/tools/aapt2/compile/PseudolocaleGenerator_test.cpp index 711558aa51c1..31358020ab60 100644 --- a/tools/aapt2/compile/PseudolocaleGenerator_test.cpp +++ b/tools/aapt2/compile/PseudolocaleGenerator_test.cpp @@ -19,6 +19,8 @@ #include "test/Test.h" #include "util/Util.h" +using ::android::ConfigDescription; + namespace aapt { TEST(PseudolocaleGeneratorTest, PseudolocalizeStyledString) { diff --git a/tools/aapt2/configuration/ConfigurationParser.cpp b/tools/aapt2/configuration/ConfigurationParser.cpp index 902334b98d00..dd06b38f6c01 100644 --- a/tools/aapt2/configuration/ConfigurationParser.cpp +++ b/tools/aapt2/configuration/ConfigurationParser.cpp @@ -25,8 +25,8 @@ #include "android-base/file.h" #include "android-base/logging.h" +#include "androidfw/ConfigDescription.h" -#include "ConfigDescription.h" #include "Diagnostics.h" #include "ResourceUtils.h" #include "configuration/ConfigurationParser.internal.h" @@ -40,6 +40,8 @@ #include "xml/XmlDom.h" #include "xml/XmlUtil.h" +using ::android::ConfigDescription; + namespace aapt { namespace { diff --git a/tools/aapt2/configuration/ConfigurationParser.h b/tools/aapt2/configuration/ConfigurationParser.h index 7f1d4453f9b3..b9e3be9393c9 100644 --- a/tools/aapt2/configuration/ConfigurationParser.h +++ b/tools/aapt2/configuration/ConfigurationParser.h @@ -22,7 +22,8 @@ #include <unordered_map> #include <vector> -#include "ConfigDescription.h" +#include "androidfw/ConfigDescription.h" + #include "Diagnostics.h" #include "util/Maybe.h" @@ -109,8 +110,8 @@ struct OutputArtifact { std::string name; int version; std::vector<Abi> abis; - std::vector<ConfigDescription> screen_densities; - std::vector<ConfigDescription> locales; + std::vector<android::ConfigDescription> screen_densities; + std::vector<android::ConfigDescription> locales; Maybe<AndroidSdk> android_sdk; std::vector<DeviceFeature> features; std::vector<GlTexture> textures; diff --git a/tools/aapt2/configuration/ConfigurationParser.internal.h b/tools/aapt2/configuration/ConfigurationParser.internal.h index f071a69fc9e3..c541688bc018 100644 --- a/tools/aapt2/configuration/ConfigurationParser.internal.h +++ b/tools/aapt2/configuration/ConfigurationParser.internal.h @@ -17,6 +17,8 @@ #ifndef AAPT2_CONFIGURATIONPARSER_INTERNAL_H #define AAPT2_CONFIGURATIONPARSER_INTERNAL_H +#include "androidfw/ConfigDescription.h" + #include "configuration/ConfigurationParser.h" #include <algorithm> @@ -148,8 +150,8 @@ struct PostProcessingConfiguration { Maybe<std::string> artifact_format; Group<Abi> abi_groups; - Group<ConfigDescription> screen_density_groups; - Group<ConfigDescription> locale_groups; + Group<android::ConfigDescription> screen_density_groups; + Group<android::ConfigDescription> locale_groups; Group<DeviceFeature> device_feature_groups; Group<GlTexture> gl_texture_groups; Entry<AndroidSdk> android_sdks; diff --git a/tools/aapt2/configuration/ConfigurationParser_test.cpp b/tools/aapt2/configuration/ConfigurationParser_test.cpp index ccaea4e2a771..3a71e836aa38 100644 --- a/tools/aapt2/configuration/ConfigurationParser_test.cpp +++ b/tools/aapt2/configuration/ConfigurationParser_test.cpp @@ -26,6 +26,8 @@ #include "test/Test.h" #include "xml/XmlDom.h" +using ::android::ConfigDescription; + namespace aapt { namespace configuration { diff --git a/tools/aapt2/dump/DumpManifest.cpp b/tools/aapt2/dump/DumpManifest.cpp index 2c356d1491d5..e547e47d6322 100644 --- a/tools/aapt2/dump/DumpManifest.cpp +++ b/tools/aapt2/dump/DumpManifest.cpp @@ -24,7 +24,10 @@ #include "process/IResourceTableConsumer.h" #include "xml/XmlDom.h" +#include "androidfw/ConfigDescription.h" + using ::android::base::StringPrintf; +using ::android::ConfigDescription; namespace aapt { @@ -2194,4 +2197,4 @@ int DumpPermissionsCommand::Action(const std::vector<std::string>& args) { return 0; } -} // namespace aapt
\ No newline at end of file +} // namespace aapt diff --git a/tools/aapt2/filter/ConfigFilter.cpp b/tools/aapt2/filter/ConfigFilter.cpp index 5fbe77e98144..9d10d595882a 100644 --- a/tools/aapt2/filter/ConfigFilter.cpp +++ b/tools/aapt2/filter/ConfigFilter.cpp @@ -16,9 +16,10 @@ #include "filter/ConfigFilter.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" -#include "ConfigDescription.h" +using ::android::ConfigDescription; namespace aapt { diff --git a/tools/aapt2/filter/ConfigFilter.h b/tools/aapt2/filter/ConfigFilter.h index ebb81519dceb..c4b7e4356df9 100644 --- a/tools/aapt2/filter/ConfigFilter.h +++ b/tools/aapt2/filter/ConfigFilter.h @@ -20,7 +20,7 @@ #include <set> #include <utility> -#include "ConfigDescription.h" +#include "androidfw/ConfigDescription.h" namespace aapt { @@ -34,7 +34,7 @@ class IConfigFilter { /** * Returns true if the filter matches the configuration, false otherwise. */ - virtual bool Match(const ConfigDescription& config) const = 0; + virtual bool Match(const android::ConfigDescription& config) const = 0; }; /** @@ -46,12 +46,12 @@ class IConfigFilter { */ class AxisConfigFilter : public IConfigFilter { public: - void AddConfig(ConfigDescription config); + void AddConfig(android::ConfigDescription config); - bool Match(const ConfigDescription& config) const override; + bool Match(const android::ConfigDescription& config) const override; private: - std::set<std::pair<ConfigDescription, uint32_t>> configs_; + std::set<std::pair<android::ConfigDescription, uint32_t>> configs_; uint32_t config_mask_ = 0; }; diff --git a/tools/aapt2/format/binary/BinaryResourceParser.h b/tools/aapt2/format/binary/BinaryResourceParser.h index a1f9f83edfb6..2bdc051f4e29 100644 --- a/tools/aapt2/format/binary/BinaryResourceParser.h +++ b/tools/aapt2/format/binary/BinaryResourceParser.h @@ -20,6 +20,7 @@ #include <string> #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" #include "ResourceTable.h" @@ -54,22 +55,28 @@ class BinaryResourceParser { bool ParseType(const ResourceTablePackage* package, const android::ResChunk_header* chunk); bool ParseLibrary(const android::ResChunk_header* chunk); - std::unique_ptr<Item> ParseValue(const ResourceNameRef& name, const ConfigDescription& config, + std::unique_ptr<Item> ParseValue(const ResourceNameRef& name, + const android::ConfigDescription& config, const android::Res_value& value); - std::unique_ptr<Value> ParseMapEntry(const ResourceNameRef& name, const ConfigDescription& config, + std::unique_ptr<Value> ParseMapEntry(const ResourceNameRef& name, + const android::ConfigDescription& config, const android::ResTable_map_entry* map); - std::unique_ptr<Style> ParseStyle(const ResourceNameRef& name, const ConfigDescription& config, + std::unique_ptr<Style> ParseStyle(const ResourceNameRef& name, + const android::ConfigDescription& config, const android::ResTable_map_entry* map); - std::unique_ptr<Attribute> ParseAttr(const ResourceNameRef& name, const ConfigDescription& config, + std::unique_ptr<Attribute> ParseAttr(const ResourceNameRef& name, + const android::ConfigDescription& config, const android::ResTable_map_entry* map); - std::unique_ptr<Array> ParseArray(const ResourceNameRef& name, const ConfigDescription& config, + std::unique_ptr<Array> ParseArray(const ResourceNameRef& name, + const android::ConfigDescription& config, const android::ResTable_map_entry* map); - std::unique_ptr<Plural> ParsePlural(const ResourceNameRef& name, const ConfigDescription& config, + std::unique_ptr<Plural> ParsePlural(const ResourceNameRef& name, + const android::ConfigDescription& config, const android::ResTable_map_entry* map); /** diff --git a/tools/aapt2/format/proto/ProtoDeserialize.cpp b/tools/aapt2/format/proto/ProtoDeserialize.cpp index 3b101b7152be..d1b2fdb84afc 100644 --- a/tools/aapt2/format/proto/ProtoDeserialize.cpp +++ b/tools/aapt2/format/proto/ProtoDeserialize.cpp @@ -19,13 +19,15 @@ #include "android-base/logging.h" #include "android-base/macros.h" #include "androidfw/ResourceTypes.h" +#include "androidfw/Locale.h" -#include "Locale.h" #include "ResourceTable.h" #include "ResourceUtils.h" #include "ResourceValues.h" #include "ValueVisitor.h" +using ::android::ConfigDescription; +using ::android::LocaleValue; using ::android::ResStringPool; namespace aapt { diff --git a/tools/aapt2/format/proto/ProtoDeserialize.h b/tools/aapt2/format/proto/ProtoDeserialize.h index 0c581a17fa2e..723a1c095a50 100644 --- a/tools/aapt2/format/proto/ProtoDeserialize.h +++ b/tools/aapt2/format/proto/ProtoDeserialize.h @@ -18,9 +18,9 @@ #define AAPT_FORMAT_PROTO_PROTODESERIALIZE_H #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" -#include "ConfigDescription.h" #include "Configuration.pb.h" #include "ResourceTable.h" #include "ResourceValues.h" @@ -34,14 +34,15 @@ namespace aapt { std::unique_ptr<Value> DeserializeValueFromPb(const pb::Value& pb_value, const android::ResStringPool& src_pool, - const ConfigDescription& config, + const android::ConfigDescription& config, StringPool* value_pool, io::IFileCollection* files, std::string* out_error); std::unique_ptr<Item> DeserializeItemFromPb(const pb::Item& pb_item, const android::ResStringPool& src_pool, - const ConfigDescription& config, StringPool* value_pool, - io::IFileCollection* files, std::string* out_error); + const android::ConfigDescription& config, + StringPool* value_pool, io::IFileCollection* files, + std::string* out_error); std::unique_ptr<xml::XmlResource> DeserializeXmlResourceFromPb(const pb::XmlNode& pb_node, std::string* out_error); @@ -49,8 +50,8 @@ std::unique_ptr<xml::XmlResource> DeserializeXmlResourceFromPb(const pb::XmlNode bool DeserializeXmlFromPb(const pb::XmlNode& pb_node, xml::Element* out_el, StringPool* value_pool, std::string* out_error); -bool DeserializeConfigFromPb(const pb::Configuration& pb_config, ConfigDescription* out_config, - std::string* out_error); +bool DeserializeConfigFromPb(const pb::Configuration& pb_config, + android::ConfigDescription* out_config, std::string* out_error); // Optional io::IFileCollection used to lookup references to files in the ResourceTable. bool DeserializeTableFromPb(const pb::ResourceTable& pb_table, io::IFileCollection* files, diff --git a/tools/aapt2/format/proto/ProtoSerialize.cpp b/tools/aapt2/format/proto/ProtoSerialize.cpp index 411cc29630fe..7e35ea7bb7a3 100644 --- a/tools/aapt2/format/proto/ProtoSerialize.cpp +++ b/tools/aapt2/format/proto/ProtoSerialize.cpp @@ -19,6 +19,8 @@ #include "ValueVisitor.h" #include "util/BigBuffer.h" +using android::ConfigDescription; + namespace aapt { void SerializeStringPoolToPb(const StringPool& pool, pb::StringPool* out_pb_pool, IDiagnostics* diag) { diff --git a/tools/aapt2/format/proto/ProtoSerialize.h b/tools/aapt2/format/proto/ProtoSerialize.h index 951494ca8a0d..c40e5dd51da6 100644 --- a/tools/aapt2/format/proto/ProtoSerialize.h +++ b/tools/aapt2/format/proto/ProtoSerialize.h @@ -18,8 +18,8 @@ #define AAPT_FORMAT_PROTO_PROTOSERIALIZE_H #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" -#include "ConfigDescription.h" #include "Configuration.pb.h" #include "ResourceTable.h" #include "ResourceValues.h" @@ -49,7 +49,7 @@ void SerializeXmlResourceToPb(const xml::XmlResource& resource, pb::XmlNode* out void SerializeStringPoolToPb(const StringPool& pool, pb::StringPool* out_pb_pool, IDiagnostics* diag); // Serializes a ConfigDescription into its protobuf representation. -void SerializeConfig(const ConfigDescription& config, pb::Configuration* out_pb_config); +void SerializeConfig(const android::ConfigDescription& config, pb::Configuration* out_pb_config); // Serializes a ResourceTable into its protobuf representation. void SerializeTableToPb(const ResourceTable& table, pb::ResourceTable* out_table, IDiagnostics* diag); diff --git a/tools/aapt2/format/proto/ProtoSerialize_test.cpp b/tools/aapt2/format/proto/ProtoSerialize_test.cpp index 74295ab85846..3c4d41ae5d1a 100644 --- a/tools/aapt2/format/proto/ProtoSerialize_test.cpp +++ b/tools/aapt2/format/proto/ProtoSerialize_test.cpp @@ -20,6 +20,7 @@ #include "format/proto/ProtoDeserialize.h" #include "test/Test.h" +using ::android::ConfigDescription; using ::android::StringPiece; using ::testing::Eq; using ::testing::IsEmpty; diff --git a/tools/aapt2/java/ProguardRules_test.cpp b/tools/aapt2/java/ProguardRules_test.cpp index 3d93cb1dd43b..da24907417fa 100644 --- a/tools/aapt2/java/ProguardRules_test.cpp +++ b/tools/aapt2/java/ProguardRules_test.cpp @@ -21,6 +21,7 @@ #include "test/Test.h" using ::aapt::io::StringOutputStream; +using ::android::ConfigDescription; using ::testing::HasSubstr; using ::testing::Not; diff --git a/tools/aapt2/link/AutoVersioner.cpp b/tools/aapt2/link/AutoVersioner.cpp index f80c6e9b34d3..960c7d46cc98 100644 --- a/tools/aapt2/link/AutoVersioner.cpp +++ b/tools/aapt2/link/AutoVersioner.cpp @@ -20,14 +20,16 @@ #include "android-base/logging.h" -#include "ConfigDescription.h" #include "ResourceTable.h" #include "SdkConstants.h" #include "ValueVisitor.h" +using android::ConfigDescription; + namespace aapt { -bool ShouldGenerateVersionedResource(const ResourceEntry* entry, const ConfigDescription& config, +bool ShouldGenerateVersionedResource(const ResourceEntry* entry, + const ConfigDescription& config, const ApiVersion sdk_version_to_generate) { // We assume the caller is trying to generate a version greater than the current configuration. CHECK(sdk_version_to_generate > config.sdkVersion); diff --git a/tools/aapt2/link/AutoVersioner_test.cpp b/tools/aapt2/link/AutoVersioner_test.cpp index 49639f8ad549..1117472f104b 100644 --- a/tools/aapt2/link/AutoVersioner_test.cpp +++ b/tools/aapt2/link/AutoVersioner_test.cpp @@ -16,9 +16,11 @@ #include "link/Linkers.h" -#include "ConfigDescription.h" +#include "androidfw/ConfigDescription.h" + #include "test/Test.h" +using ::android::ConfigDescription; using ::testing::NotNull; namespace aapt { diff --git a/tools/aapt2/link/Linkers.h b/tools/aapt2/link/Linkers.h index 3c9c4767b3d1..c9b8d3993959 100644 --- a/tools/aapt2/link/Linkers.h +++ b/tools/aapt2/link/Linkers.h @@ -21,6 +21,7 @@ #include <unordered_set> #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include "Resource.h" @@ -32,7 +33,6 @@ namespace aapt { class ResourceTable; class ResourceEntry; -struct ConfigDescription; // Defines the context in which a resource value is defined. Most resources are defined with the // implicit package name of their compilation context. Understanding the package name of a resource @@ -43,12 +43,14 @@ struct CallSite { // Determines whether a versioned resource should be created. If a versioned resource already // exists, it takes precedence. -bool ShouldGenerateVersionedResource(const ResourceEntry* entry, const ConfigDescription& config, +bool ShouldGenerateVersionedResource(const ResourceEntry* entry, + const android::ConfigDescription& config, const ApiVersion sdk_version_to_generate); // Finds the next largest ApiVersion of the config which is identical to the given config except // for sdkVersion. -ApiVersion FindNextApiVersionForConfig(const ResourceEntry* entry, const ConfigDescription& config); +ApiVersion FindNextApiVersionForConfig(const ResourceEntry* entry, + const android::ConfigDescription& config); class AutoVersioner : public IResourceTableConsumer { public: diff --git a/tools/aapt2/link/NoDefaultResourceRemover.cpp b/tools/aapt2/link/NoDefaultResourceRemover.cpp index 5173b8541943..05990de6a9b3 100644 --- a/tools/aapt2/link/NoDefaultResourceRemover.cpp +++ b/tools/aapt2/link/NoDefaultResourceRemover.cpp @@ -14,12 +14,16 @@ * limitations under the License. */ +#include "androidfw/Locale.h" + #include "link/NoDefaultResourceRemover.h" #include <algorithm> #include "ResourceTable.h" +using android::ConfigDescription; + namespace aapt { static bool KeepResource(const std::unique_ptr<ResourceEntry>& entry, int minSdk) { diff --git a/tools/aapt2/link/ProductFilter_test.cpp b/tools/aapt2/link/ProductFilter_test.cpp index 86dd56ad8f5b..dd4767463711 100644 --- a/tools/aapt2/link/ProductFilter_test.cpp +++ b/tools/aapt2/link/ProductFilter_test.cpp @@ -18,6 +18,8 @@ #include "test/Test.h" +using ::android::ConfigDescription; + namespace aapt { TEST(ProductFilterTest, SelectTwoProducts) { diff --git a/tools/aapt2/optimize/MultiApkGenerator.cpp b/tools/aapt2/optimize/MultiApkGenerator.cpp index e92c121272eb..8c9c43409569 100644 --- a/tools/aapt2/optimize/MultiApkGenerator.cpp +++ b/tools/aapt2/optimize/MultiApkGenerator.cpp @@ -20,6 +20,7 @@ #include <regex> #include <string> +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include "LoadedApk.h" @@ -44,6 +45,7 @@ using ::aapt::configuration::AndroidSdk; using ::aapt::configuration::OutputArtifact; using ::aapt::xml::kSchemaAndroid; using ::aapt::xml::XmlResource; +using ::android::ConfigDescription; using ::android::StringPiece; /** diff --git a/tools/aapt2/optimize/MultiApkGenerator.h b/tools/aapt2/optimize/MultiApkGenerator.h index c8588791662a..4a5a6c3d5915 100644 --- a/tools/aapt2/optimize/MultiApkGenerator.h +++ b/tools/aapt2/optimize/MultiApkGenerator.h @@ -22,6 +22,8 @@ #include <unordered_set> #include <vector> +#include "androidfw/ConfigDescription.h" + #include "Diagnostics.h" #include "LoadedApk.h" #include "configuration/ConfigurationParser.h" @@ -66,7 +68,7 @@ class MultiApkGenerator { /** * Adds the <screen> elements to the parent node for the provided density configuration. */ - void AddScreens(const ConfigDescription& config, xml::Element* parent); + void AddScreens(const android::ConfigDescription& config, xml::Element* parent); LoadedApk* apk_; IAaptContext* context_; diff --git a/tools/aapt2/optimize/MultiApkGenerator_test.cpp b/tools/aapt2/optimize/MultiApkGenerator_test.cpp index 80eb737fa682..7d87eb8831e8 100644 --- a/tools/aapt2/optimize/MultiApkGenerator_test.cpp +++ b/tools/aapt2/optimize/MultiApkGenerator_test.cpp @@ -31,6 +31,8 @@ #include "test/Context.h" #include "test/Test.h" +using ::android::ConfigDescription; + namespace aapt { namespace { diff --git a/tools/aapt2/optimize/ResourceDeduper.cpp b/tools/aapt2/optimize/ResourceDeduper.cpp index 9d16268a276e..ee2dfbce7c06 100644 --- a/tools/aapt2/optimize/ResourceDeduper.cpp +++ b/tools/aapt2/optimize/ResourceDeduper.cpp @@ -21,6 +21,8 @@ #include "DominatorTree.h" #include "ResourceTable.h" +using android::ConfigDescription; + namespace aapt { namespace { diff --git a/tools/aapt2/optimize/ResourceDeduper_test.cpp b/tools/aapt2/optimize/ResourceDeduper_test.cpp index d9f384c095ca..2e098aec4f8d 100644 --- a/tools/aapt2/optimize/ResourceDeduper_test.cpp +++ b/tools/aapt2/optimize/ResourceDeduper_test.cpp @@ -20,6 +20,7 @@ #include "test/Test.h" using ::aapt::test::HasValue; +using ::android::ConfigDescription; using ::testing::Not; namespace aapt { diff --git a/tools/aapt2/optimize/ResourceFilter_test.cpp b/tools/aapt2/optimize/ResourceFilter_test.cpp index 800b2bfd0403..ef57f9c56dab 100644 --- a/tools/aapt2/optimize/ResourceFilter_test.cpp +++ b/tools/aapt2/optimize/ResourceFilter_test.cpp @@ -20,6 +20,7 @@ #include "test/Test.h" using ::aapt::test::HasValue; +using ::android::ConfigDescription; using ::testing::Not; namespace aapt { diff --git a/tools/aapt2/optimize/VersionCollapser.cpp b/tools/aapt2/optimize/VersionCollapser.cpp index cc1fc1e6910b..f9856047ac40 100644 --- a/tools/aapt2/optimize/VersionCollapser.cpp +++ b/tools/aapt2/optimize/VersionCollapser.cpp @@ -21,6 +21,8 @@ #include "ResourceTable.h" +using android::ConfigDescription; + namespace aapt { template <typename Iterator, typename Pred> diff --git a/tools/aapt2/process/SymbolTable.cpp b/tools/aapt2/process/SymbolTable.cpp index 70efbf5d17b2..a844a43698e5 100644 --- a/tools/aapt2/process/SymbolTable.cpp +++ b/tools/aapt2/process/SymbolTable.cpp @@ -21,15 +21,16 @@ #include "android-base/logging.h" #include "android-base/stringprintf.h" #include "androidfw/AssetManager.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/ResourceTypes.h" -#include "ConfigDescription.h" #include "NameMangler.h" #include "Resource.h" #include "ResourceUtils.h" #include "ValueVisitor.h" #include "util/Util.h" +using ::android::ConfigDescription; using ::android::StringPiece; using ::android::StringPiece16; diff --git a/tools/aapt2/split/TableSplitter.cpp b/tools/aapt2/split/TableSplitter.cpp index b5c330622c72..414758e14063 100644 --- a/tools/aapt2/split/TableSplitter.cpp +++ b/tools/aapt2/split/TableSplitter.cpp @@ -24,11 +24,13 @@ #include <vector> #include "android-base/logging.h" +#include "androidfw/ConfigDescription.h" -#include "ConfigDescription.h" #include "ResourceTable.h" #include "util/Util.h" +using ::android::ConfigDescription; + namespace aapt { using ConfigClaimedMap = std::unordered_map<ResourceConfigValue*, bool>; diff --git a/tools/aapt2/split/TableSplitter.h b/tools/aapt2/split/TableSplitter.h index ed24bc3991b4..cb1395f3132b 100644 --- a/tools/aapt2/split/TableSplitter.h +++ b/tools/aapt2/split/TableSplitter.h @@ -20,8 +20,8 @@ #include <set> #include <vector> #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" -#include "ConfigDescription.h" #include "ResourceTable.h" #include "filter/ConfigFilter.h" #include "process/IResourceTableConsumer.h" @@ -29,7 +29,7 @@ namespace aapt { struct SplitConstraints { - std::set<ConfigDescription> configs; + std::set<android::ConfigDescription> configs; std::string name; }; diff --git a/tools/aapt2/split/TableSplitter_test.cpp b/tools/aapt2/split/TableSplitter_test.cpp index d52f4b446b8f..cdf07386c70f 100644 --- a/tools/aapt2/split/TableSplitter_test.cpp +++ b/tools/aapt2/split/TableSplitter_test.cpp @@ -18,6 +18,8 @@ #include "test/Test.h" +using ::android::ConfigDescription; + namespace aapt { TEST(TableSplitterTest, NoSplitPreferredDensity) { diff --git a/tools/aapt2/test/Builders.cpp b/tools/aapt2/test/Builders.cpp index c4eab1269e4e..f33ae3155192 100644 --- a/tools/aapt2/test/Builders.cpp +++ b/tools/aapt2/test/Builders.cpp @@ -28,6 +28,7 @@ using ::aapt::configuration::AndroidSdk; using ::aapt::configuration::ConfiguredArtifact; using ::aapt::configuration::GetOrCreateGroup; using ::aapt::io::StringInputStream; +using ::android::ConfigDescription; using ::android::StringPiece; namespace aapt { diff --git a/tools/aapt2/test/Builders.h b/tools/aapt2/test/Builders.h index be6e51050c86..915959972bed 100644 --- a/tools/aapt2/test/Builders.h +++ b/tools/aapt2/test/Builders.h @@ -20,6 +20,7 @@ #include <memory> #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "Resource.h" #include "ResourceTable.h" @@ -40,7 +41,8 @@ class ResourceTableBuilder { ResourceTableBuilder& SetPackageId(const android::StringPiece& package_name, uint8_t id); ResourceTableBuilder& AddSimple(const android::StringPiece& name, const ResourceId& id = {}); - ResourceTableBuilder& AddSimple(const android::StringPiece& name, const ConfigDescription& config, + ResourceTableBuilder& AddSimple(const android::StringPiece& name, + const android::ConfigDescription& config, const ResourceId& id = {}); ResourceTableBuilder& AddReference(const android::StringPiece& name, const android::StringPiece& ref); @@ -51,7 +53,8 @@ class ResourceTableBuilder { ResourceTableBuilder& AddString(const android::StringPiece& name, const ResourceId& id, const android::StringPiece& str); ResourceTableBuilder& AddString(const android::StringPiece& name, const ResourceId& id, - const ConfigDescription& config, const android::StringPiece& str); + const android::ConfigDescription& config, + const android::StringPiece& str); ResourceTableBuilder& AddFileReference(const android::StringPiece& name, const android::StringPiece& path, io::IFile* file = nullptr); @@ -60,12 +63,13 @@ class ResourceTableBuilder { io::IFile* file = nullptr); ResourceTableBuilder& AddFileReference(const android::StringPiece& name, const android::StringPiece& path, - const ConfigDescription& config, + const android::ConfigDescription& config, io::IFile* file = nullptr); ResourceTableBuilder& AddValue(const android::StringPiece& name, std::unique_ptr<Value> value); ResourceTableBuilder& AddValue(const android::StringPiece& name, const ResourceId& id, std::unique_ptr<Value> value); - ResourceTableBuilder& AddValue(const android::StringPiece& name, const ConfigDescription& config, + ResourceTableBuilder& AddValue(const android::StringPiece& name, + const android::ConfigDescription& config, const ResourceId& id, std::unique_ptr<Value> value); ResourceTableBuilder& SetSymbolState(const android::StringPiece& name, const ResourceId& id, Visibility::Level level, bool allow_new = false); @@ -163,8 +167,8 @@ class ArtifactBuilder { ArtifactBuilder& SetName(const std::string& name); ArtifactBuilder& SetVersion(int version); ArtifactBuilder& AddAbi(configuration::Abi abi); - ArtifactBuilder& AddDensity(const ConfigDescription& density); - ArtifactBuilder& AddLocale(const ConfigDescription& locale); + ArtifactBuilder& AddDensity(const android::ConfigDescription& density); + ArtifactBuilder& AddLocale(const android::ConfigDescription& locale); ArtifactBuilder& SetAndroidSdk(int min_sdk); configuration::OutputArtifact Build(); @@ -302,12 +306,12 @@ class ConfigDescriptionBuilder { config_.screenConfigPad2 = screenConfigPad2; return *this; } - ConfigDescription Build() { + android::ConfigDescription Build() { return config_; } private: - ConfigDescription config_; + android::ConfigDescription config_; }; } // namespace test diff --git a/tools/aapt2/test/Common.cpp b/tools/aapt2/test/Common.cpp index 0fabbc4070e7..b54c155ddc2f 100644 --- a/tools/aapt2/test/Common.cpp +++ b/tools/aapt2/test/Common.cpp @@ -16,6 +16,8 @@ #include "test/Common.h" +using android::ConfigDescription; + namespace aapt { namespace test { diff --git a/tools/aapt2/test/Common.h b/tools/aapt2/test/Common.h index aca161a5189d..50b41f1cb1e8 100644 --- a/tools/aapt2/test/Common.h +++ b/tools/aapt2/test/Common.h @@ -21,11 +21,11 @@ #include "android-base/logging.h" #include "android-base/macros.h" +#include "androidfw/ConfigDescription.h" #include "androidfw/StringPiece.h" #include "gmock/gmock.h" #include "gtest/gtest.h" -#include "ConfigDescription.h" #include "Debug.h" #include "ResourceTable.h" #include "ResourceUtils.h" @@ -45,15 +45,15 @@ inline ResourceName ParseNameOrDie(const android::StringPiece& str) { return ref.ToResourceName(); } -inline ConfigDescription ParseConfigOrDie(const android::StringPiece& str) { - ConfigDescription config; - CHECK(ConfigDescription::Parse(str, &config)) << "invalid configuration: " << str; +inline android::ConfigDescription ParseConfigOrDie(const android::StringPiece& str) { + android::ConfigDescription config; + CHECK(android::ConfigDescription::Parse(str, &config)) << "invalid configuration: " << str; return config; } template <typename T = Value> T* GetValueForConfigAndProduct(ResourceTable* table, const android::StringPiece& res_name, - const ConfigDescription& config, + const android::ConfigDescription& config, const android::StringPiece& product) { Maybe<ResourceTable::SearchResult> result = table->FindResource(ParseNameOrDie(res_name)); if (result) { @@ -68,12 +68,12 @@ T* GetValueForConfigAndProduct(ResourceTable* table, const android::StringPiece& template <> Value* GetValueForConfigAndProduct<Value>(ResourceTable* table, const android::StringPiece& res_name, - const ConfigDescription& config, + const android::ConfigDescription& config, const android::StringPiece& product); template <typename T = Value> T* GetValueForConfig(ResourceTable* table, const android::StringPiece& res_name, - const ConfigDescription& config) { + const android::ConfigDescription& config) { return GetValueForConfigAndProduct<T>(table, res_name, config, {}); } |