Revert "AAPT2: Auto-version adaptive-icon XML"

This reverts commit 5b7337f77cf036dda2c7218ccf22dedc774dcf76.

Bug: 63579299
Test: none
Change-Id: Ib617c4edfc16eeae3507b59b2debeae4f8bbf9a5
diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp
index 353d734..e6bf3a6 100644
--- a/tools/aapt2/cmd/Link.cpp
+++ b/tools/aapt2/cmd/Link.cpp
@@ -60,7 +60,6 @@
 #include "unflatten/BinaryResourceParser.h"
 #include "util/Files.h"
 #include "xml/XmlDom.h"
-#include "xml/XmlUtil.h"
 
 using android::StringPiece;
 using android::base::StringPrintf;
@@ -343,18 +342,16 @@
     ConfigDescription config;
 
     // The entry this file came from.
-    ResourceEntry* entry = nullptr;
+    ResourceEntry* entry;
 
     // The file to copy as-is.
-    io::IFile* file_to_copy = nullptr;
+    io::IFile* file_to_copy;
 
     // The XML to process and flatten.
     std::unique_ptr<xml::XmlResource> xml_to_flatten;
 
     // The destination to write this file to.
     std::string dst_path;
-
-    bool skip_versioning = false;
   };
 
   uint32_t GetCompressionFlags(const StringPiece& str);
@@ -434,6 +431,19 @@
   return ArchiveEntry::kCompress;
 }
 
+static bool IsTransitionElement(const std::string& name) {
+  return name == "fade" || name == "changeBounds" || name == "slide" || name == "explode" ||
+         name == "changeImageTransform" || name == "changeTransform" ||
+         name == "changeClipBounds" || name == "autoTransition" || name == "recolor" ||
+         name == "changeScroll" || name == "transitionSet" || name == "transition" ||
+         name == "transitionManager";
+}
+
+static bool IsVectorElement(const std::string& name) {
+  return name == "vector" || name == "animated-vector" || name == "pathInterpolator" ||
+         name == "objectAnimator";
+}
+
 template <typename T>
 std::vector<T> make_singleton_vec(T&& val) {
   std::vector<T> vec;
@@ -466,10 +476,21 @@
     }
   }
 
-  if (options_.no_auto_version || file_op->skip_versioning) {
+  if (options_.no_auto_version) {
     return make_singleton_vec(std::move(file_op->xml_to_flatten));
   }
 
+  if (options_.no_version_vectors || options_.no_version_transitions) {
+    // Skip this if it is a vector or animated-vector.
+    xml::Element* el = xml::FindRootElement(doc);
+    if (el && el->namespace_uri.empty()) {
+      if ((options_.no_version_vectors && IsVectorElement(el->name)) ||
+          (options_.no_version_transitions && IsTransitionElement(el->name))) {
+        return make_singleton_vec(std::move(file_op->xml_to_flatten));
+      }
+    }
+  }
+
   const ConfigDescription& config = file_op->config;
   ResourceEntry* entry = file_op->entry;
 
@@ -483,26 +504,15 @@
   bool error = false;
   std::map<std::pair<ConfigDescription, StringPiece>, FileOperation> config_sorted_files;
 
-  int tag_version_options = 0;
-  if (options_.no_version_vectors) {
-    tag_version_options |= xml::kNoVersionVector;
-  }
-
-  if (options_.no_version_transitions) {
-    tag_version_options |= xml::kNoVersionTransition;
-  }
-
   for (auto& pkg : table->packages) {
     for (auto& type : pkg->types) {
       // Sort by config and name, so that we get better locality in the zip file.
       config_sorted_files.clear();
+      std::queue<FileOperation> file_operations;
 
       // Populate the queue with all files in the ResourceTable.
       for (auto& entry : type->entries) {
-        const auto values_end = entry->values.end();
-        for (auto values_iter = entry->values.begin(); values_iter != values_end; ++values_iter) {
-          ResourceConfigValue* config_value = values_iter->get();
-
+        for (auto& config_value : entry->values) {
           // WARNING! Do not insert or remove any resources while executing in this scope. It will
           // corrupt the iteration order.
 
@@ -544,44 +554,6 @@
             file_op.xml_to_flatten->file.config = config_value->config;
             file_op.xml_to_flatten->file.source = file_ref->GetSource();
             file_op.xml_to_flatten->file.name = ResourceName(pkg->name, type->type, entry->name);
-
-            // Check if this file needs to be versioned based on tag rules.
-            xml::Element* root_el = xml::FindRootElement(file_op.xml_to_flatten.get());
-            if (root_el == nullptr) {
-              context_->GetDiagnostics()->Error(DiagMessage(file->GetSource())
-                                                << "failed to find the root XML element");
-              return false;
-            }
-
-            if (root_el->namespace_uri.empty()) {
-              if (Maybe<xml::TagApiVersionResult> result =
-                      xml::GetXmlTagApiVersion(root_el->name, tag_version_options)) {
-                file_op.skip_versioning = result.value().skip_version;
-                if (result.value().api_version && config_value->config.sdkVersion == 0u) {
-                  const ApiVersion min_tag_version = result.value().api_version.value();
-                  // Only version it if it doesn't specify its own version and the version is
-                  // greater than the minSdk.
-                  const util::Range<ApiVersion> valid_range{
-                      context_->GetMinSdkVersion() + 1,
-                      FindNextApiVersionForConfigInSortedVector(values_iter, values_end)};
-                  if (valid_range.Contains(min_tag_version)) {
-                    // Update the configurations. The iteration order will not be affected
-                    // since sdkVersions in ConfigDescriptions are the last property compared
-                    // in the sort function.
-                    if (context_->IsVerbose()) {
-                      context_->GetDiagnostics()->Note(DiagMessage(config_value->value->GetSource())
-                                                       << "auto-versioning XML resource to API "
-                                                       << min_tag_version);
-                    }
-                    const_cast<ConfigDescription&>(config_value->config).sdkVersion =
-                        static_cast<uint16_t>(min_tag_version);
-                    file_op.config.sdkVersion = static_cast<uint16_t>(min_tag_version);
-                    file_op.xml_to_flatten->file.config.sdkVersion =
-                        static_cast<uint16_t>(min_tag_version);
-                  }
-                }
-              }
-            }
           }
 
           // NOTE(adamlesinski): Explicitly construct a StringPiece here, or