diff --git a/quickstep/libs/sysui_shared.jar b/quickstep/libs/sysui_shared.jar index 95bb8bbed8..5e25fd8bf2 100644 Binary files a/quickstep/libs/sysui_shared.jar and b/quickstep/libs/sysui_shared.jar differ diff --git a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java index 06099b9fa4..e6030d1261 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java +++ b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java @@ -24,7 +24,9 @@ import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.allapps.DiscoveryBounce.HOME_BOUNCE_SEEN; import static com.android.launcher3.allapps.DiscoveryBounce.SHELF_BOUNCE_SEEN; +import android.app.Activity; import android.content.Context; +import android.util.Base64; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.DeviceProfile; @@ -32,13 +34,19 @@ import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherStateManager; import com.android.launcher3.LauncherStateManager.StateHandler; +import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.util.TouchController; import com.android.quickstep.OverviewInteractionState; import com.android.quickstep.RecentsModel; import com.android.quickstep.views.RecentsView; +import com.android.systemui.shared.system.ActivityCompat; import com.android.systemui.shared.system.WindowManagerWrapper; +import java.io.ByteArrayOutputStream; +import java.io.PrintWriter; +import java.util.zip.Deflater; + public class UiFactory { public static TouchController[] createTouchControllers(Launcher launcher) { @@ -167,6 +175,32 @@ public class UiFactory { } } + public static boolean dumpActivity(Activity activity, PrintWriter writer) { + if (!Utilities.IS_DEBUG_DEVICE) { + return false; + } + ByteArrayOutputStream out = new ByteArrayOutputStream(); + if (!(new ActivityCompat(activity).encodeViewHierarchy(out))) { + return false; + } + + Deflater deflater = new Deflater(); + deflater.setInput(out.toByteArray()); + deflater.finish(); + + out.reset(); + byte[] buffer = new byte[1024]; + while (!deflater.finished()) { + int count = deflater.deflate(buffer); // returns the generated code... index + out.write(buffer, 0, count); + } + + writer.println("--encoded-view-dump-v0--"); + writer.println(Base64.encodeToString( + out.toByteArray(), Base64.NO_WRAP | Base64.NO_PADDING)); + return true; + } + private static class LauncherTaskViewController extends TaskViewTouchController { public LauncherTaskViewController(Launcher activity) { diff --git a/src/com/android/launcher3/BaseActivity.java b/src/com/android/launcher3/BaseActivity.java index 3e4589d1f5..4219667557 100644 --- a/src/com/android/launcher3/BaseActivity.java +++ b/src/com/android/launcher3/BaseActivity.java @@ -30,8 +30,10 @@ import android.view.View.AccessibilityDelegate; import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener; import com.android.launcher3.logging.UserEventDispatcher; +import com.android.launcher3.uioverrides.UiFactory; import com.android.launcher3.util.SystemUiController; +import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.annotation.Retention; import java.util.ArrayList; @@ -224,6 +226,13 @@ public abstract class BaseActivity extends Activity { void onMultiWindowModeChanged(boolean isInMultiWindowMode); } + @Override + public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { + if (!UiFactory.dumpActivity(this, writer)) { + super.dump(prefix, fd, writer, args); + } + } + protected void dumpMisc(PrintWriter writer) { writer.println(" deviceProfile isTransposed=" + getDeviceProfile().isVerticalBarLayout()); writer.println(" orientation=" + getResources().getConfiguration().orientation); diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java b/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java index b8cd0353e1..e9a47a77b8 100644 --- a/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java +++ b/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java @@ -16,12 +16,15 @@ package com.android.launcher3.uioverrides; +import android.app.Activity; import android.content.Context; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.util.TouchController; +import java.io.PrintWriter; + public class UiFactory { public static TouchController[] createTouchControllers(Launcher launcher) { @@ -47,4 +50,9 @@ public class UiFactory { public static void onLauncherStateOrResumeChanged(Launcher launcher) { } public static void onTrimMemory(Launcher launcher, int level) { } + + public static boolean dumpActivity(Activity activity, PrintWriter writer) { + return false; + } + }