Merge "Don't allow removed DividerView to resize stack" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d7427d5d90
@@ -91,6 +91,9 @@ public class Divider extends SystemUI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void removeDivider() {
|
private void removeDivider() {
|
||||||
|
if (mView != null) {
|
||||||
|
mView.onDividerRemoved();
|
||||||
|
}
|
||||||
mWindowManager.remove();
|
mWindowManager.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,6 +162,9 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
|||||||
private DividerState mState;
|
private DividerState mState;
|
||||||
private final SurfaceFlingerVsyncChoreographer mSfChoreographer;
|
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() {
|
private final Handler mHandler = new Handler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleMessage(Message msg) {
|
public void handleMessage(Message msg) {
|
||||||
@@ -323,6 +326,11 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
|||||||
EventBus.getDefault().unregister(this);
|
EventBus.getDefault().unregister(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onDividerRemoved() {
|
||||||
|
mRemoved = true;
|
||||||
|
mHandler.removeMessages(MSG_RESIZE_STACK);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
|
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
|
||||||
if (mStableInsets.left != insets.getStableInsetLeft()
|
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) {
|
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);
|
calculateBoundsForPosition(position, mDockSide, mDockedRect);
|
||||||
|
|
||||||
if (mDockedRect.equals(mLastResizeRect) && !mEntranceAnimationRunning) {
|
if (mDockedRect.equals(mLastResizeRect) && !mEntranceAnimationRunning) {
|
||||||
|
|||||||
Reference in New Issue
Block a user