AAPT2: Remove usage of u16string

For legacy reasons, we kept around the use of UTF-16 internally
in AAPT2. We don't need this and this CL removes all instances of
std::u16string and StringPiece16. The only places still needed
are when interacting with the ResTable APIs that only operate in
UTF16.

Change-Id: I492475b84bb9014fa13bf992cff447ee7a5fe588
diff --git a/tools/aapt2/xml/XmlPullParser.cpp b/tools/aapt2/xml/XmlPullParser.cpp
index 323ec05..4a944f1 100644
--- a/tools/aapt2/xml/XmlPullParser.cpp
+++ b/tools/aapt2/xml/XmlPullParser.cpp
@@ -98,7 +98,7 @@
     return mLastError;
 }
 
-const std::u16string& XmlPullParser::getComment() const {
+const std::string& XmlPullParser::getComment() const {
     return mEventQueue.front().data1;
 }
 
@@ -110,14 +110,14 @@
     return mEventQueue.front().depth;
 }
 
-const std::u16string& XmlPullParser::getText() const {
+const std::string& XmlPullParser::getText() const {
     if (getEvent() != Event::kText) {
         return mEmpty;
     }
     return mEventQueue.front().data1;
 }
 
-const std::u16string& XmlPullParser::getNamespacePrefix() const {
+const std::string& XmlPullParser::getNamespacePrefix() const {
     const Event currentEvent = getEvent();
     if (currentEvent != Event::kStartNamespace && currentEvent != Event::kEndNamespace) {
         return mEmpty;
@@ -125,7 +125,7 @@
     return mEventQueue.front().data1;
 }
 
-const std::u16string& XmlPullParser::getNamespaceUri() const {
+const std::string& XmlPullParser::getNamespaceUri() const {
     const Event currentEvent = getEvent();
     if (currentEvent != Event::kStartNamespace && currentEvent != Event::kEndNamespace) {
         return mEmpty;
@@ -134,7 +134,7 @@
 }
 
 Maybe<ExtractedPackage> XmlPullParser::transformPackageAlias(
-        const StringPiece16& alias, const StringPiece16& localPackage) const {
+        const StringPiece& alias, const StringPiece& localPackage) const {
     if (alias.empty()) {
         return ExtractedPackage{ localPackage.toString(), false /* private */ };
     }
@@ -152,7 +152,7 @@
     return {};
 }
 
-const std::u16string& XmlPullParser::getElementNamespace() const {
+const std::string& XmlPullParser::getElementNamespace() const {
     const Event currentEvent = getEvent();
     if (currentEvent != Event::kStartElement && currentEvent != Event::kEndElement) {
         return mEmpty;
@@ -160,7 +160,7 @@
     return mEventQueue.front().data1;
 }
 
-const std::u16string& XmlPullParser::getElementName() const {
+const std::string& XmlPullParser::getElementName() const {
     const Event currentEvent = getEvent();
     if (currentEvent != Event::kStartElement && currentEvent != Event::kEndElement) {
         return mEmpty;
@@ -186,31 +186,31 @@
 /**
  * Extracts the namespace and name of an expanded element or attribute name.
  */
-static void splitName(const char* name, std::u16string& outNs, std::u16string& outName) {
+static void splitName(const char* name, std::string& outNs, std::string& outName) {
     const char* p = name;
     while (*p != 0 && *p != kXmlNamespaceSep) {
         p++;
     }
 
     if (*p == 0) {
-        outNs = std::u16string();
-        outName = util::utf8ToUtf16(name);
+        outNs = std::string();
+        outName = name;
     } else {
-        outNs = util::utf8ToUtf16(StringPiece(name, (p - name)));
-        outName = util::utf8ToUtf16(p + 1);
+        outNs = StringPiece(name, (p - name)).toString();
+        outName = p + 1;
     }
 }
 
 void XMLCALL XmlPullParser::startNamespaceHandler(void* userData, const char* prefix,
         const char* uri) {
     XmlPullParser* parser = reinterpret_cast<XmlPullParser*>(userData);
-    std::u16string namespaceUri = uri != nullptr ? util::utf8ToUtf16(uri) : std::u16string();
+    std::string namespaceUri = uri != nullptr ? uri : std::string();
     parser->mNamespaceUris.push(namespaceUri);
     parser->mEventQueue.push(EventData{
             Event::kStartNamespace,
             XML_GetCurrentLineNumber(parser->mParser),
             parser->mDepth++,
-            prefix != nullptr ? util::utf8ToUtf16(prefix) : std::u16string(),
+            prefix != nullptr ? prefix : std::string(),
             namespaceUri
     });
 }
@@ -227,7 +227,7 @@
     while (*attrs) {
         Attribute attribute;
         splitName(*attrs++, attribute.namespaceUri, attribute.name);
-        attribute.value = util::utf8ToUtf16(*attrs++);
+        attribute.value = *attrs++;
 
         // Insert in sorted order.
         auto iter = std::lower_bound(data.attributes.begin(), data.attributes.end(), attribute);
@@ -245,7 +245,7 @@
             Event::kText,
             XML_GetCurrentLineNumber(parser->mParser),
             parser->mDepth,
-            util::utf8ToUtf16(StringPiece(s, len))
+            StringPiece(s, len).toString()
     });
 }
 
@@ -268,7 +268,7 @@
             Event::kEndNamespace,
             XML_GetCurrentLineNumber(parser->mParser),
             --(parser->mDepth),
-            prefix != nullptr ? util::utf8ToUtf16(prefix) : std::u16string(),
+            prefix != nullptr ? prefix : std::string(),
             parser->mNamespaceUris.top()
     });
     parser->mNamespaceUris.pop();
@@ -281,22 +281,22 @@
             Event::kComment,
             XML_GetCurrentLineNumber(parser->mParser),
             parser->mDepth,
-            util::utf8ToUtf16(comment)
+            comment
     });
 }
 
-Maybe<StringPiece16> findAttribute(const XmlPullParser* parser, const StringPiece16& name) {
-    auto iter = parser->findAttribute(u"", name);
+Maybe<StringPiece> findAttribute(const XmlPullParser* parser, const StringPiece& name) {
+    auto iter = parser->findAttribute("", name);
     if (iter != parser->endAttributes()) {
-        return StringPiece16(util::trimWhitespace(iter->value));
+        return StringPiece(util::trimWhitespace(iter->value));
     }
     return {};
 }
 
-Maybe<StringPiece16> findNonEmptyAttribute(const XmlPullParser* parser, const StringPiece16& name) {
-    auto iter = parser->findAttribute(u"", name);
+Maybe<StringPiece> findNonEmptyAttribute(const XmlPullParser* parser, const StringPiece& name) {
+    auto iter = parser->findAttribute("", name);
     if (iter != parser->endAttributes()) {
-        StringPiece16 trimmed = util::trimWhitespace(iter->value);
+        StringPiece trimmed = util::trimWhitespace(iter->value);
         if (!trimmed.empty()) {
             return trimmed;
         }