AAPT2: Ensure PNG endianness in 9-patch serialization
9-patch serialization requires PNG endianness
Bug:31942900
Test: manual + added serialization test to libaapt2_tests
Change-Id: Iea521718f88e80d3fa7a8723a47584973738748a
diff --git a/tools/aapt2/compile/NinePatch.cpp b/tools/aapt2/compile/NinePatch.cpp
index 408ecf7..0fc1c5d 100644
--- a/tools/aapt2/compile/NinePatch.cpp
+++ b/tools/aapt2/compile/NinePatch.cpp
@@ -598,6 +598,9 @@
(const int32_t*) verticalStretchRegions.data(),
regionColors.data(),
buffer.get());
+ // Convert to file endianness.
+ reinterpret_cast<android::Res_png_9patch*>(buffer.get())->deviceToFile();
+
*outLen = data.serializedSize();
return buffer;
}
@@ -661,7 +664,9 @@
}
::std::ostream& operator<<(::std::ostream& out, const NinePatch& ninePatch) {
- return out << "padding: " << ninePatch.padding
+ return out << "horizontalStretch:" << util::joiner(ninePatch.horizontalStretchRegions, " ")
+ << " verticalStretch:" << util::joiner(ninePatch.verticalStretchRegions, " ")
+ << " padding: " << ninePatch.padding
<< ", bounds: " << ninePatch.layoutBounds
<< ", outline: " << ninePatch.outline
<< " rad=" << ninePatch.outlineRadius