From e82a4eeb40090f15054e2c76c0cea84b198a2b61 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Mon, 15 Sep 2014 17:48:10 -0700 Subject: [PATCH] Adds support for Theme dumping via DDM. Bug: 17515415 Change-Id: Ice145a4b452177e36345cf2e071377bb7b3feeb3 --- core/java/android/ddm/DdmHandleViewDebug.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/java/android/ddm/DdmHandleViewDebug.java b/core/java/android/ddm/DdmHandleViewDebug.java index ce837966c12be..3a36b0a91a158 100644 --- a/core/java/android/ddm/DdmHandleViewDebug.java +++ b/core/java/android/ddm/DdmHandleViewDebug.java @@ -56,6 +56,9 @@ public class DdmHandleViewDebug extends ChunkHandler { /** Capture View Layers. */ private static final int VURT_CAPTURE_LAYERS = 2; + /** Dump View Theme. */ + private static final int VURT_DUMP_THEME = 3; + /** * Generic View Operation, first parameter in the packet should be one of the * VUOP_* constants below. @@ -131,6 +134,8 @@ public class DdmHandleViewDebug extends ChunkHandler { return dumpHierarchy(rootView, in); else if (op == VURT_CAPTURE_LAYERS) return captureLayers(rootView); + else if (op == VURT_DUMP_THEME) + return dumpTheme(rootView); else return createFailChunk(ERR_INVALID_OP, "Unknown view root operation: " + op); } @@ -258,6 +263,22 @@ public class DdmHandleViewDebug extends ChunkHandler { return new Chunk(CHUNK_VURT, data, 0, data.length); } + /** + * Returns the Theme dump of the provided view. + */ + private Chunk dumpTheme(View rootView) { + ByteArrayOutputStream b = new ByteArrayOutputStream(1024); + try { + ViewDebug.dumpTheme(rootView, b); + } catch (IOException e) { + return createFailChunk(1, "Unexpected error while dumping the theme: " + + e.getMessage()); + } + + byte[] data = b.toByteArray(); + return new Chunk(CHUNK_VURT, data, 0, data.length); + } + private Chunk captureView(View rootView, View targetView) { ByteArrayOutputStream b = new ByteArrayOutputStream(1024); try {