Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java +6 −4 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ import com.android.wm.shell.R; import com.android.wm.shell.common.ScreenshotUtils; import com.android.wm.shell.common.SurfaceUtils; import java.util.function.Consumer; /** * Handles split decor like showing resizing hint for a specific split. */ Loading Loading @@ -251,7 +253,7 @@ public class SplitDecorManager extends WindowlessWindowManager { } /** Stops showing resizing hint. */ public void onResized(SurfaceControl.Transaction t, Runnable animFinishedCallback) { public void onResized(SurfaceControl.Transaction t, Consumer<Boolean> animFinishedCallback) { if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) { mScreenshotAnimator.cancel(); } Loading Loading @@ -281,7 +283,7 @@ public class SplitDecorManager extends WindowlessWindowManager { mScreenshot = null; if (mRunningAnimationCount == 0 && animFinishedCallback != null) { animFinishedCallback.run(); animFinishedCallback.accept(true); } } }); Loading Loading @@ -313,12 +315,12 @@ public class SplitDecorManager extends WindowlessWindowManager { } } if (mShown) { fadeOutDecor(animFinishedCallback); fadeOutDecor(()-> animFinishedCallback.accept(true)); } else { // Decor surface is hidden so release it directly. releaseDecor(t); if (mRunningAnimationCount == 0 && animFinishedCallback != null) { animFinishedCallback.run(); animFinishedCallback.accept(false); } } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java +7 −5 Original line number Diff line number Diff line Loading @@ -208,11 +208,13 @@ class SplitScreenTransitions { mAnimations.add(va); decor.setScreenshotIfNeeded(change.getSnapshot(), startTransaction); decor.onResized(startTransaction, () -> { mTransitions.getMainExecutor().execute(() -> { decor.onResized(startTransaction, animated -> { mAnimations.remove(va); if (animated) { mTransitions.getMainExecutor().execute(() -> { onFinish(null /* wct */, null /* wctCB */); }); } }); } } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java +6 −4 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ import com.android.wm.shell.R; import com.android.wm.shell.common.ScreenshotUtils; import com.android.wm.shell.common.SurfaceUtils; import java.util.function.Consumer; /** * Handles split decor like showing resizing hint for a specific split. */ Loading Loading @@ -251,7 +253,7 @@ public class SplitDecorManager extends WindowlessWindowManager { } /** Stops showing resizing hint. */ public void onResized(SurfaceControl.Transaction t, Runnable animFinishedCallback) { public void onResized(SurfaceControl.Transaction t, Consumer<Boolean> animFinishedCallback) { if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) { mScreenshotAnimator.cancel(); } Loading Loading @@ -281,7 +283,7 @@ public class SplitDecorManager extends WindowlessWindowManager { mScreenshot = null; if (mRunningAnimationCount == 0 && animFinishedCallback != null) { animFinishedCallback.run(); animFinishedCallback.accept(true); } } }); Loading Loading @@ -313,12 +315,12 @@ public class SplitDecorManager extends WindowlessWindowManager { } } if (mShown) { fadeOutDecor(animFinishedCallback); fadeOutDecor(()-> animFinishedCallback.accept(true)); } else { // Decor surface is hidden so release it directly. releaseDecor(t); if (mRunningAnimationCount == 0 && animFinishedCallback != null) { animFinishedCallback.run(); animFinishedCallback.accept(false); } } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java +7 −5 Original line number Diff line number Diff line Loading @@ -208,11 +208,13 @@ class SplitScreenTransitions { mAnimations.add(va); decor.setScreenshotIfNeeded(change.getSnapshot(), startTransaction); decor.onResized(startTransaction, () -> { mTransitions.getMainExecutor().execute(() -> { decor.onResized(startTransaction, animated -> { mAnimations.remove(va); if (animated) { mTransitions.getMainExecutor().execute(() -> { onFinish(null /* wct */, null /* wctCB */); }); } }); } } Loading