[res] Small cleanup in aapt2 output + optimization

Don't print the header line when there are no flag-disabled
items follow.

+ move the heavy string allocation to the tightest scope it is
  used in

Test: manual
Flag: EXEMPT bugfix
Change-Id: I74902f5fb14b64f2ce3624e72d7774042441213b
diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp
index 0fa31c7..f5e10d9 100644
--- a/libs/androidfw/AssetManager2.cpp
+++ b/libs/androidfw/AssetManager2.cpp
@@ -1467,8 +1467,6 @@
   }
 
   const StringPiece16 kAttr16 = u"attr";
-  const static std::u16string kAttrPrivate16 = u"^attr-private";
-
   for (const PackageGroup& package_group : package_groups_) {
     for (const ConfiguredPackage& package_impl : package_group.packages_) {
       const LoadedPackage* package = package_impl.loaded_package_;
@@ -1480,12 +1478,13 @@
       base::expected<uint32_t, NullOrIOError> resid = package->FindEntryByName(type16, entry16);
       if (UNLIKELY(IsIOError(resid))) {
          return base::unexpected(resid.error());
-       }
+      }
 
       if (!resid.has_value() && kAttr16 == type16) {
         // Private attributes in libraries (such as the framework) are sometimes encoded
         // under the type '^attr-private' in order to leave the ID space of public 'attr'
         // free for future additions. Check '^attr-private' for the same name.
+        const static std::u16string kAttrPrivate16 = u"^attr-private";
         resid = package->FindEntryByName(kAttrPrivate16, entry16);
       }
 
diff --git a/tools/aapt2/Debug.cpp b/tools/aapt2/Debug.cpp
index e24fe07..9ef8b7d 100644
--- a/tools/aapt2/Debug.cpp
+++ b/tools/aapt2/Debug.cpp
@@ -349,20 +349,22 @@
             value->value->Accept(&body_printer);
             printer->Undent();
           }
-          printer->Println("Flag disabled values:");
-          for (const auto& value : entry.flag_disabled_values) {
-            printer->Print("(");
-            printer->Print(value->config.to_string());
-            printer->Print(") ");
-            value->value->Accept(&headline_printer);
-            if (options.show_sources && !value->value->GetSource().path.empty()) {
-              printer->Print(" src=");
-              printer->Print(value->value->GetSource().to_string());
+          if (!entry.flag_disabled_values.empty()) {
+            printer->Println("Flag disabled values:");
+            for (const auto& value : entry.flag_disabled_values) {
+              printer->Print("(");
+              printer->Print(value->config.to_string());
+              printer->Print(") ");
+              value->value->Accept(&headline_printer);
+              if (options.show_sources && !value->value->GetSource().path.empty()) {
+                printer->Print(" src=");
+                printer->Print(value->value->GetSource().to_string());
+              }
+              printer->Println();
+              printer->Indent();
+              value->value->Accept(&body_printer);
+              printer->Undent();
             }
-            printer->Println();
-            printer->Indent();
-            value->value->Accept(&body_printer);
-            printer->Undent();
           }
           printer->Undent();
         }