diff options
| -rw-r--r-- | packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityCompat.java | 27 |
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; + } } |