Merge "Update the timing of clearing SplitRequest" into tm-qpr-dev
This commit is contained in:
@@ -1034,7 +1034,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
private void onRemoteAnimationFinishedOrCancelled(WindowContainerTransaction evictWct) {
|
private void onRemoteAnimationFinishedOrCancelled(WindowContainerTransaction evictWct) {
|
||||||
mIsDividerRemoteAnimating = false;
|
mIsDividerRemoteAnimating = false;
|
||||||
mShouldUpdateRecents = true;
|
mShouldUpdateRecents = true;
|
||||||
mSplitRequest = null;
|
clearRequestIfPresented();
|
||||||
// If any stage has no child after animation finished, it means that split will display
|
// If any stage has no child after animation finished, it means that split will display
|
||||||
// nothing, such status will happen if task and intent is same app but not support
|
// nothing, such status will happen if task and intent is same app but not support
|
||||||
// multi-instance, we should exit split and expand that app as full screen.
|
// multi-instance, we should exit split and expand that app as full screen.
|
||||||
@@ -1054,7 +1054,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
private void onRemoteAnimationFinished(RemoteAnimationTarget[] apps) {
|
private void onRemoteAnimationFinished(RemoteAnimationTarget[] apps) {
|
||||||
mIsDividerRemoteAnimating = false;
|
mIsDividerRemoteAnimating = false;
|
||||||
mShouldUpdateRecents = true;
|
mShouldUpdateRecents = true;
|
||||||
mSplitRequest = null;
|
clearRequestIfPresented();
|
||||||
// If any stage has no child after finished animation, that side of the split will display
|
// If any stage has no child after finished animation, that side of the split will display
|
||||||
// nothing. This might happen if starting the same app on the both sides while not
|
// nothing. This might happen if starting the same app on the both sides while not
|
||||||
// supporting multi-instance. Exit the split screen and expand that app to full screen.
|
// supporting multi-instance. Exit the split screen and expand that app to full screen.
|
||||||
@@ -1320,6 +1320,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
});
|
});
|
||||||
mShouldUpdateRecents = false;
|
mShouldUpdateRecents = false;
|
||||||
mIsDividerRemoteAnimating = false;
|
mIsDividerRemoteAnimating = false;
|
||||||
|
mSplitRequest = null;
|
||||||
|
|
||||||
mSplitLayout.getInvisibleBounds(mTempRect1);
|
mSplitLayout.getInvisibleBounds(mTempRect1);
|
||||||
if (childrenToTop == null || childrenToTop.getTopVisibleChildTaskId() == INVALID_TASK_ID) {
|
if (childrenToTop == null || childrenToTop.getTopVisibleChildTaskId() == INVALID_TASK_ID) {
|
||||||
@@ -1412,6 +1413,13 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void clearRequestIfPresented() {
|
||||||
|
if (mSideStageListener.mVisible && mSideStageListener.mHasChildren
|
||||||
|
&& mMainStageListener.mVisible && mSideStageListener.mHasChildren) {
|
||||||
|
mSplitRequest = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether the split pair in the recent tasks list should be broken.
|
* Returns whether the split pair in the recent tasks list should be broken.
|
||||||
*/
|
*/
|
||||||
@@ -1776,6 +1784,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
true /* setReparentLeafTaskIfRelaunch */);
|
true /* setReparentLeafTaskIfRelaunch */);
|
||||||
setRootForceTranslucent(true, wct);
|
setRootForceTranslucent(true, wct);
|
||||||
} else {
|
} else {
|
||||||
|
clearRequestIfPresented();
|
||||||
wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token,
|
wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token,
|
||||||
false /* setReparentLeafTaskIfRelaunch */);
|
false /* setReparentLeafTaskIfRelaunch */);
|
||||||
setRootForceTranslucent(false, wct);
|
setRootForceTranslucent(false, wct);
|
||||||
@@ -1926,7 +1935,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
}
|
}
|
||||||
if (mMainStageListener.mHasChildren && mSideStageListener.mHasChildren) {
|
if (mMainStageListener.mHasChildren && mSideStageListener.mHasChildren) {
|
||||||
mShouldUpdateRecents = true;
|
mShouldUpdateRecents = true;
|
||||||
mSplitRequest = null;
|
clearRequestIfPresented();
|
||||||
updateRecentTasksSplitPair();
|
updateRecentTasksSplitPair();
|
||||||
|
|
||||||
if (!mLogger.hasStartedSession()) {
|
if (!mLogger.hasStartedSession()) {
|
||||||
@@ -2565,6 +2574,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
mShouldUpdateRecents = false;
|
mShouldUpdateRecents = false;
|
||||||
|
mSplitRequest = null;
|
||||||
|
|
||||||
// Update local states.
|
// Update local states.
|
||||||
setSplitsVisible(false);
|
setSplitsVisible(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user