Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +0 −54 Original line number Original line Diff line number Diff line Loading @@ -1908,60 +1908,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } } } } /** Callback when split roots have child or haven't under it. * NOTICE: This only be called on legacy transition. */ @Override public void onStageHasChildrenChanged(StageTaskListener stageListener) { ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "onStageHasChildrenChanged: isMainStage=%b", stageListener == mMainStage); final boolean hasChildren = stageListener.mHasChildren; final boolean isSideStage = stageListener == mSideStage; if (!hasChildren && !mIsExiting && isSplitActive()) { if (isSideStage && mMainStage.mVisible) { // Exit to main stage if side stage no longer has children. mSplitLayout.flingDividerToDismiss( mSideStagePosition == SPLIT_POSITION_BOTTOM_OR_RIGHT, EXIT_REASON_APP_FINISHED); } else if (!isSideStage && mSideStage.mVisible) { // Exit to side stage if main stage no longer has children. mSplitLayout.flingDividerToDismiss( mSideStagePosition != SPLIT_POSITION_BOTTOM_OR_RIGHT, EXIT_REASON_APP_FINISHED); } else if (!isSplitScreenVisible() && mSplitRequest == null) { // Dismiss split screen in the background once any sides of the split become empty. exitSplitScreen(null /* childrenToTop */, EXIT_REASON_APP_FINISHED); } } else if (isSideStage && hasChildren && !isSplitActive()) { final WindowContainerTransaction wct = new WindowContainerTransaction(); prepareEnterSplitScreen(wct); mSyncQueue.queue(wct); mSyncQueue.runInSync(t -> { if (mIsDropEntering) { updateSurfaceBounds(mSplitLayout, t, false /* applyResizingOffset */); mIsDropEntering = false; mSkipEvictingMainStageChildren = false; } else { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(/*finishCallback*/ null); } }); } if (mMainStage.mHasChildren && mSideStage.mHasChildren) { mShouldUpdateRecents = true; clearRequestIfPresented(); updateRecentTasksSplitPair(); if (!mLogger.hasStartedSession() && !mLogger.hasValidEnterSessionId()) { mLogger.enterRequested(null /*enterSessionId*/, ENTER_REASON_MULTI_INSTANCE); } mLogger.logEnter(mSplitLayout.getDividerPositionAsFraction(), getMainStagePosition(), mMainStage.getTopChildTaskUid(), getSideStagePosition(), mSideStage.getTopChildTaskUid(), mSplitLayout.isLeftRightSplit()); } } @Override @Override public void onNoLongerSupportMultiWindow(StageTaskListener stageTaskListener, public void onNoLongerSupportMultiWindow(StageTaskListener stageTaskListener, ActivityManager.RunningTaskInfo taskInfo) { ActivityManager.RunningTaskInfo taskInfo) { Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskListener.java +4 −19 Original line number Original line Diff line number Diff line Loading @@ -75,8 +75,6 @@ public class StageTaskListener implements ShellTaskOrganizer.TaskListener { public interface StageListenerCallbacks { public interface StageListenerCallbacks { void onRootTaskAppeared(); void onRootTaskAppeared(); void onStageHasChildrenChanged(StageTaskListener stageTaskListener); void onStageVisibilityChanged(StageTaskListener stageTaskListener); void onStageVisibilityChanged(StageTaskListener stageTaskListener); void onChildTaskStatusChanged(StageTaskListener stage, int taskId, boolean present, void onChildTaskStatusChanged(StageTaskListener stage, int taskId, boolean present, Loading Loading @@ -207,7 +205,10 @@ public class StageTaskListener implements ShellTaskOrganizer.TaskListener { mIconProvider); mIconProvider); mHasRootTask = true; mHasRootTask = true; mCallbacks.onRootTaskAppeared(); mCallbacks.onRootTaskAppeared(); sendStatusChanged(); if (mVisible != mRootTaskInfo.isVisible) { mVisible = mRootTaskInfo.isVisible; mCallbacks.onStageVisibilityChanged(this); } mSyncQueue.runInSync(t -> mDimLayer = mSyncQueue.runInSync(t -> mDimLayer = SurfaceUtils.makeDimLayer(t, mRootLeash, "Dim layer")); SurfaceUtils.makeDimLayer(t, mRootLeash, "Dim layer")); } else if (taskInfo.parentTaskId == mRootTaskInfo.taskId) { } else if (taskInfo.parentTaskId == mRootTaskInfo.taskId) { Loading Loading @@ -498,22 +499,6 @@ public class StageTaskListener implements ShellTaskOrganizer.TaskListener { return true; return true; } } private void sendStatusChanged() { boolean hasChildren = mChildrenTaskInfo.size() > 0; boolean visible = mRootTaskInfo.isVisible; if (!mHasRootTask) return; if (mHasChildren != hasChildren) { mHasChildren = hasChildren; mCallbacks.onStageHasChildrenChanged(this); } if (mVisible != visible) { mVisible = visible; mCallbacks.onStageVisibilityChanged(this); } } @Override @Override @CallSuper @CallSuper public void dump(@NonNull PrintWriter pw, String prefix) { public void dump(@NonNull PrintWriter pw, String prefix) { Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageTaskListenerTests.java +0 −1 Original line number Original line Diff line number Diff line Loading @@ -114,7 +114,6 @@ public final class StageTaskListenerTests extends ShellTestCase { public void testRootTaskAppeared() { public void testRootTaskAppeared() { assertThat(mStageTaskListener.mRootTaskInfo.taskId).isEqualTo(mRootTask.taskId); assertThat(mStageTaskListener.mRootTaskInfo.taskId).isEqualTo(mRootTask.taskId); verify(mCallbacks).onRootTaskAppeared(); verify(mCallbacks).onRootTaskAppeared(); verify(mCallbacks, never()).onStageHasChildrenChanged(mStageTaskListener); verify(mCallbacks, never()).onStageVisibilityChanged(mStageTaskListener); verify(mCallbacks, never()).onStageVisibilityChanged(mStageTaskListener); } } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +0 −54 Original line number Original line Diff line number Diff line Loading @@ -1908,60 +1908,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } } } } /** Callback when split roots have child or haven't under it. * NOTICE: This only be called on legacy transition. */ @Override public void onStageHasChildrenChanged(StageTaskListener stageListener) { ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "onStageHasChildrenChanged: isMainStage=%b", stageListener == mMainStage); final boolean hasChildren = stageListener.mHasChildren; final boolean isSideStage = stageListener == mSideStage; if (!hasChildren && !mIsExiting && isSplitActive()) { if (isSideStage && mMainStage.mVisible) { // Exit to main stage if side stage no longer has children. mSplitLayout.flingDividerToDismiss( mSideStagePosition == SPLIT_POSITION_BOTTOM_OR_RIGHT, EXIT_REASON_APP_FINISHED); } else if (!isSideStage && mSideStage.mVisible) { // Exit to side stage if main stage no longer has children. mSplitLayout.flingDividerToDismiss( mSideStagePosition != SPLIT_POSITION_BOTTOM_OR_RIGHT, EXIT_REASON_APP_FINISHED); } else if (!isSplitScreenVisible() && mSplitRequest == null) { // Dismiss split screen in the background once any sides of the split become empty. exitSplitScreen(null /* childrenToTop */, EXIT_REASON_APP_FINISHED); } } else if (isSideStage && hasChildren && !isSplitActive()) { final WindowContainerTransaction wct = new WindowContainerTransaction(); prepareEnterSplitScreen(wct); mSyncQueue.queue(wct); mSyncQueue.runInSync(t -> { if (mIsDropEntering) { updateSurfaceBounds(mSplitLayout, t, false /* applyResizingOffset */); mIsDropEntering = false; mSkipEvictingMainStageChildren = false; } else { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(/*finishCallback*/ null); } }); } if (mMainStage.mHasChildren && mSideStage.mHasChildren) { mShouldUpdateRecents = true; clearRequestIfPresented(); updateRecentTasksSplitPair(); if (!mLogger.hasStartedSession() && !mLogger.hasValidEnterSessionId()) { mLogger.enterRequested(null /*enterSessionId*/, ENTER_REASON_MULTI_INSTANCE); } mLogger.logEnter(mSplitLayout.getDividerPositionAsFraction(), getMainStagePosition(), mMainStage.getTopChildTaskUid(), getSideStagePosition(), mSideStage.getTopChildTaskUid(), mSplitLayout.isLeftRightSplit()); } } @Override @Override public void onNoLongerSupportMultiWindow(StageTaskListener stageTaskListener, public void onNoLongerSupportMultiWindow(StageTaskListener stageTaskListener, ActivityManager.RunningTaskInfo taskInfo) { ActivityManager.RunningTaskInfo taskInfo) { Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskListener.java +4 −19 Original line number Original line Diff line number Diff line Loading @@ -75,8 +75,6 @@ public class StageTaskListener implements ShellTaskOrganizer.TaskListener { public interface StageListenerCallbacks { public interface StageListenerCallbacks { void onRootTaskAppeared(); void onRootTaskAppeared(); void onStageHasChildrenChanged(StageTaskListener stageTaskListener); void onStageVisibilityChanged(StageTaskListener stageTaskListener); void onStageVisibilityChanged(StageTaskListener stageTaskListener); void onChildTaskStatusChanged(StageTaskListener stage, int taskId, boolean present, void onChildTaskStatusChanged(StageTaskListener stage, int taskId, boolean present, Loading Loading @@ -207,7 +205,10 @@ public class StageTaskListener implements ShellTaskOrganizer.TaskListener { mIconProvider); mIconProvider); mHasRootTask = true; mHasRootTask = true; mCallbacks.onRootTaskAppeared(); mCallbacks.onRootTaskAppeared(); sendStatusChanged(); if (mVisible != mRootTaskInfo.isVisible) { mVisible = mRootTaskInfo.isVisible; mCallbacks.onStageVisibilityChanged(this); } mSyncQueue.runInSync(t -> mDimLayer = mSyncQueue.runInSync(t -> mDimLayer = SurfaceUtils.makeDimLayer(t, mRootLeash, "Dim layer")); SurfaceUtils.makeDimLayer(t, mRootLeash, "Dim layer")); } else if (taskInfo.parentTaskId == mRootTaskInfo.taskId) { } else if (taskInfo.parentTaskId == mRootTaskInfo.taskId) { Loading Loading @@ -498,22 +499,6 @@ public class StageTaskListener implements ShellTaskOrganizer.TaskListener { return true; return true; } } private void sendStatusChanged() { boolean hasChildren = mChildrenTaskInfo.size() > 0; boolean visible = mRootTaskInfo.isVisible; if (!mHasRootTask) return; if (mHasChildren != hasChildren) { mHasChildren = hasChildren; mCallbacks.onStageHasChildrenChanged(this); } if (mVisible != visible) { mVisible = visible; mCallbacks.onStageVisibilityChanged(this); } } @Override @Override @CallSuper @CallSuper public void dump(@NonNull PrintWriter pw, String prefix) { public void dump(@NonNull PrintWriter pw, String prefix) { Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageTaskListenerTests.java +0 −1 Original line number Original line Diff line number Diff line Loading @@ -114,7 +114,6 @@ public final class StageTaskListenerTests extends ShellTestCase { public void testRootTaskAppeared() { public void testRootTaskAppeared() { assertThat(mStageTaskListener.mRootTaskInfo.taskId).isEqualTo(mRootTask.taskId); assertThat(mStageTaskListener.mRootTaskInfo.taskId).isEqualTo(mRootTask.taskId); verify(mCallbacks).onRootTaskAppeared(); verify(mCallbacks).onRootTaskAppeared(); verify(mCallbacks, never()).onStageHasChildrenChanged(mStageTaskListener); verify(mCallbacks, never()).onStageVisibilityChanged(mStageTaskListener); verify(mCallbacks, never()).onStageVisibilityChanged(mStageTaskListener); } } Loading