Merge "Don't allow removed DividerView to resize stack" into oc-dev

This commit is contained in:
TreeHugger Robot
2017-06-06 17:46:31 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 0 deletions

View File

@@ -91,6 +91,9 @@ public class Divider extends SystemUI {
}
private void removeDivider() {
if (mView != null) {
mView.onDividerRemoved();
}
mWindowManager.remove();
}

View File

@@ -162,6 +162,9 @@ public class DividerView extends FrameLayout implements OnTouchListener,
private DividerState mState;
private final SurfaceFlingerVsyncChoreographer mSfChoreographer;
// The view is removed or in the process of been removed from the system.
private boolean mRemoved;
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -323,6 +326,11 @@ public class DividerView extends FrameLayout implements OnTouchListener,
EventBus.getDefault().unregister(this);
}
void onDividerRemoved() {
mRemoved = true;
mHandler.removeMessages(MSG_RESIZE_STACK);
}
@Override
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
if (mStableInsets.left != insets.getStableInsetLeft()
@@ -917,6 +925,10 @@ public class DividerView extends FrameLayout implements OnTouchListener,
}
public void resizeStack(int position, int taskPosition, SnapTarget taskSnapTarget) {
if (mRemoved) {
// This divider view has been removed so shouldn't have any additional influence.
return;
}
calculateBoundsForPosition(position, mDockSide, mDockedRect);
if (mDockedRect.equals(mLastResizeRect) && !mEntranceAnimationRunning) {