diff options
author | 2015-04-24 19:19:30 -0700 | |
---|---|---|
committer | 2015-05-04 16:43:24 -0700 | |
commit | 24aad163bc88cb10d2275385e9afc3de7f342d65 (patch) | |
tree | 361fc0b3fbef5f68a16f357ae9d2bed5e93efbf5 /tools/aapt2/SourceXmlPullParser.h | |
parent | ab2581398c812917145088590bd18eb83f3a2ea6 (diff) |
Add namespace handling in attribute values
Previously, you could only reference namespace prefixes in attribute names:
<View xmlns:appcompat="http://schemas.android.com/apk/res/android.support.v7.appcompat"
appcompat:name="hey"
...
Now you can also reference them in resource names within an attribute value:
...
android:text="@appcompat:string/confirm"
...
Which will be treated as "@android.support.v7.appcompat:string/confirm".
Change-Id: Ib076e867a990c80cf877a704eb77cd1ef0b23b52
Diffstat (limited to 'tools/aapt2/SourceXmlPullParser.h')
-rw-r--r-- | tools/aapt2/SourceXmlPullParser.h | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/tools/aapt2/SourceXmlPullParser.h b/tools/aapt2/SourceXmlPullParser.h index ba904ba19105..15936d655745 100644 --- a/tools/aapt2/SourceXmlPullParser.h +++ b/tools/aapt2/SourceXmlPullParser.h @@ -17,6 +17,8 @@ #ifndef AAPT_SOURCE_XML_PULL_PARSER_H #define AAPT_SOURCE_XML_PULL_PARSER_H +#include "XmlPullParser.h" + #include <istream> #include <libexpat/expat.h> #include <queue> @@ -24,8 +26,6 @@ #include <string> #include <vector> -#include "XmlPullParser.h" - namespace aapt { class SourceXmlPullParser : public XmlPullParser { @@ -34,25 +34,28 @@ public: SourceXmlPullParser(const SourceXmlPullParser& rhs) = delete; ~SourceXmlPullParser(); - Event getEvent() const; - const std::string& getLastError() const; - Event next(); + Event getEvent() const override; + const std::string& getLastError() const override ; + Event next() override ; + + const std::u16string& getComment() const override; + size_t getLineNumber() const override; + size_t getDepth() const override; - const std::u16string& getComment() const; - size_t getLineNumber() const; - size_t getDepth() const; + const std::u16string& getText() const override; - const std::u16string& getText() const; + const std::u16string& getNamespacePrefix() const override; + const std::u16string& getNamespaceUri() const override; + bool applyPackageAlias(std::u16string* package, + const std::u16string& defaultPackage) const override; - const std::u16string& getNamespacePrefix() const; - const std::u16string& getNamespaceUri() const; - const std::u16string& getElementNamespace() const; - const std::u16string& getElementName() const; + const std::u16string& getElementNamespace() const override; + const std::u16string& getElementName() const override; - const_iterator beginAttributes() const; - const_iterator endAttributes() const; - size_t getAttributeCount() const; + const_iterator beginAttributes() const override; + const_iterator endAttributes() const override; + size_t getAttributeCount() const override; private: static void XMLCALL startNamespaceHandler(void* userData, const char* prefix, const char* uri); @@ -80,6 +83,7 @@ private: const std::u16string mEmpty; size_t mDepth; std::stack<std::u16string> mNamespaceUris; + std::vector<std::pair<std::u16string, std::u16string>> mPackageAliases; }; } // namespace aapt |