summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityCompat.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityCompat.java
index 0d8ce58d55fd..12699d52772a 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityCompat.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityCompat.java
@@ -17,6 +17,10 @@
package com.android.systemui.shared.system;
import android.app.Activity;
+import android.view.View;
+import android.view.ViewHierarchyEncoder;
+
+import java.io.ByteArrayOutputStream;
public class ActivityCompat {
private final Activity mWrapped;
@@ -31,4 +35,27 @@ public class ActivityCompat {
public void registerRemoteAnimations(RemoteAnimationDefinitionCompat definition) {
mWrapped.registerRemoteAnimations(definition.getWrapped());
}
+
+ /**
+ * @see android.view.ViewDebug#dumpv2(View, ByteArrayOutputStream)
+ */
+ public boolean encodeViewHierarchy(ByteArrayOutputStream out) {
+ View view = null;
+ if (mWrapped.getWindow() != null &&
+ mWrapped.getWindow().peekDecorView() != null &&
+ mWrapped.getWindow().peekDecorView().getViewRootImpl() != null) {
+ view = mWrapped.getWindow().peekDecorView().getViewRootImpl().getView();
+ }
+ if (view == null) {
+ return false;
+ }
+
+ final ViewHierarchyEncoder encoder = new ViewHierarchyEncoder(out);
+ int[] location = view.getLocationOnScreen();
+ encoder.addProperty("window:left", location[0]);
+ encoder.addProperty("window:top", location[1]);
+ view.encode(encoder);
+ encoder.endStream();
+ return true;
+ }
}