Fix background pivot point

Bug: 27859759
Change-Id: Id4d77d3bd17ae96441960717a4ffe0bf4831562e
This commit is contained in:
Jorim Jaggi
2016-03-25 19:11:35 -07:00
parent 67533eea19
commit e661f4001c

View File

@@ -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) { public DividerView(Context context) {
super(context); super(context);
} }
@@ -519,15 +526,17 @@ public class DividerView extends FrameLayout implements OnTouchListener,
public void setMinimizedDockStack(boolean minimized) { public void setMinimizedDockStack(boolean minimized) {
updateDockSide(); updateDockSide();
mHandle.setAlpha(minimized ? 0f : 1f); mHandle.setAlpha(minimized ? 0f : 1f);
if (mDockSide == WindowManager.DOCKED_TOP) { if (!minimized) {
resetBackground();
} else if (mDockSide == WindowManager.DOCKED_TOP) {
mBackground.setPivotY(0); mBackground.setPivotY(0);
mBackground.setScaleY(minimized ? MINIMIZE_DOCK_SCALE : 1f); mBackground.setScaleY(MINIMIZE_DOCK_SCALE);
} else if (mDockSide == WindowManager.DOCKED_LEFT } else if (mDockSide == WindowManager.DOCKED_LEFT
|| mDockSide == WindowManager.DOCKED_RIGHT) { || mDockSide == WindowManager.DOCKED_RIGHT) {
mBackground.setPivotX(mDockSide == WindowManager.DOCKED_LEFT mBackground.setPivotX(mDockSide == WindowManager.DOCKED_LEFT
? 0 ? 0
: mBackground.getWidth()); : 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() mBackground.animate()
.scaleX(minimized ? MINIMIZE_DOCK_SCALE : 1f); .scaleX(minimized ? MINIMIZE_DOCK_SCALE : 1f);
} }
if (!minimized) {
mBackground.animate().withEndAction(mResetBackgroundRunnable);
}
mBackground.animate() mBackground.animate()
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.setDuration(animDuration) .setDuration(animDuration)
.start(); .start();
} }
private void resetBackground() {
mBackground.setPivotX(mBackground.getWidth() / 2);
mBackground.setPivotY(mBackground.getHeight() / 2);
mBackground.setScaleX(1f);
mBackground.setScaleY(1f);
}
@Override @Override
protected void onConfigurationChanged(Configuration newConfig) { protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig);