diff options
| author | 2025-02-13 16:53:24 -0800 | |
|---|---|---|
| committer | 2025-02-13 16:53:24 -0800 | |
| commit | 6a0718bae2d9a57cced2e762f99d9fd1752ac40e (patch) | |
| tree | 12006073ea97e689f45b658560d25c99e823c50c | |
| parent | 7e0218cbb67cd5693d6dbcafea1d8a1b69a749e6 (diff) | |
| parent | 19ed7fa5d5ca7b466768559bb7784accfbd49d03 (diff) | |
Merge "Allow dragging split tasks on foldables" into main
2 files changed, 9 insertions, 6 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt index aaecf8c2d727..0929ae15e668 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DragToDesktopTransitionHandler.kt @@ -251,7 +251,8 @@ sealed class DragToDesktopTransitionHandler( (cancelState == CancelState.CANCEL_BUBBLE_LEFT || cancelState == CancelState.CANCEL_BUBBLE_RIGHT) ) { - if (!bubbleController.isPresent) { + if (bubbleController.isEmpty || state !is TransitionState.FromFullscreen) { + // TODO(b/388853233): add support for dragging split task to bubble startCancelAnimation() } else { // Animation is handled by BubbleController @@ -497,6 +498,11 @@ sealed class DragToDesktopTransitionHandler( state.cancelState == CancelState.CANCEL_BUBBLE_LEFT || state.cancelState == CancelState.CANCEL_BUBBLE_RIGHT ) { + if (bubbleController.isEmpty || state !is TransitionState.FromFullscreen) { + // TODO(b/388853233): add support for dragging split task to bubble + startCancelDragToDesktopTransition() + return true + } val taskInfo = state.draggedTaskChange?.taskInfo ?: error("Expected non-null task info.") val wct = WindowContainerTransaction() diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java index add2c54f0e29..c7134c53aad9 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java @@ -1476,16 +1476,13 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, relevantDecor.mTaskInfo.configuration.windowConfiguration.getBounds()); boolean dragFromStatusBarAllowed = false; final int windowingMode = relevantDecor.mTaskInfo.getWindowingMode(); - if (DesktopModeStatus.canEnterDesktopMode(mContext)) { + if (DesktopModeStatus.canEnterDesktopMode(mContext) + || BubbleAnythingFlagHelper.enableBubbleToFullscreen()) { // In proto2 any full screen or multi-window task can be dragged to // freeform. dragFromStatusBarAllowed = windowingMode == WINDOWING_MODE_FULLSCREEN || windowingMode == WINDOWING_MODE_MULTI_WINDOW; } - if (BubbleAnythingFlagHelper.enableBubbleToFullscreen()) { - // TODO(b/388851898): add support for split screen (multi-window wm mode) - dragFromStatusBarAllowed = windowingMode == WINDOWING_MODE_FULLSCREEN; - } final boolean shouldStartTransitionDrag = relevantDecor.checkTouchEventInFocusedCaptionHandle(ev) || DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue(); |