summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jon Miranda <jonmiranda@google.com> 2014-09-18 20:14:04 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-09-18 20:14:05 +0000
commit3c7f018f4232082b189fa6828a01f41c7253b1cc (patch)
treee12bec611d737d4fd19f507ad771fde3ad0e96c6
parent7e3d6c988c1fdd27720dbfef9bf2fe1a5abe70b7 (diff)
parente82a4eeb40090f15054e2c76c0cea84b198a2b61 (diff)
Merge "Adds support for Theme dumping via DDM." into lmp-dev
-rw-r--r--core/java/android/ddm/DdmHandleViewDebug.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/core/java/android/ddm/DdmHandleViewDebug.java b/core/java/android/ddm/DdmHandleViewDebug.java
index ce837966c12b..3a36b0a91a15 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 {