From e661f4001c2729737618eccaf9032c2d2e4281bc Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Fri, 25 Mar 2016 19:11:35 -0700 Subject: [PATCH] Fix background pivot point Bug: 27859759 Change-Id: Id4d77d3bd17ae96441960717a4ffe0bf4831562e --- .../systemui/stackdivider/DividerView.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java index b9ca03ba88291..7a933cd6576ad 100644 --- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java +++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java @@ -171,6 +171,13 @@ public class DividerView extends FrameLayout implements OnTouchListener, } }; + private final Runnable mResetBackgroundRunnable = new Runnable() { + @Override + public void run() { + resetBackground(); + } + }; + public DividerView(Context context) { super(context); } @@ -519,15 +526,17 @@ public class DividerView extends FrameLayout implements OnTouchListener, public void setMinimizedDockStack(boolean minimized) { updateDockSide(); mHandle.setAlpha(minimized ? 0f : 1f); - if (mDockSide == WindowManager.DOCKED_TOP) { + if (!minimized) { + resetBackground(); + } else if (mDockSide == WindowManager.DOCKED_TOP) { mBackground.setPivotY(0); - mBackground.setScaleY(minimized ? MINIMIZE_DOCK_SCALE : 1f); + mBackground.setScaleY(MINIMIZE_DOCK_SCALE); } else if (mDockSide == WindowManager.DOCKED_LEFT || mDockSide == WindowManager.DOCKED_RIGHT) { mBackground.setPivotX(mDockSide == WindowManager.DOCKED_LEFT ? 0 : mBackground.getWidth()); - mBackground.setScaleX(minimized ? MINIMIZE_DOCK_SCALE : 1f); + mBackground.setScaleX(MINIMIZE_DOCK_SCALE); } } @@ -550,12 +559,22 @@ public class DividerView extends FrameLayout implements OnTouchListener, mBackground.animate() .scaleX(minimized ? MINIMIZE_DOCK_SCALE : 1f); } + if (!minimized) { + mBackground.animate().withEndAction(mResetBackgroundRunnable); + } mBackground.animate() .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setDuration(animDuration) .start(); } + private void resetBackground() { + mBackground.setPivotX(mBackground.getWidth() / 2); + mBackground.setPivotY(mBackground.getHeight() / 2); + mBackground.setScaleX(1f); + mBackground.setScaleY(1f); + } + @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig);