Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7591a38 authored by Matt Sziklay's avatar Matt Sziklay Committed by Automerger Merge Worker
Browse files

Merge "Bring task to front when interacting with header." into udc-dev am: a38c6d8c

parents eaa387ce a38c6d8c
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -311,6 +311,20 @@ public class DesktopModeController implements RemoteCallable<DesktopModeControll
        }
        }
    }
    }


    /**
     * Moves a specifc task to the front.
     * @param taskInfo the task to show in front.
     */
    public void moveTaskToFront(RunningTaskInfo taskInfo) {
        WindowContainerTransaction wct = new WindowContainerTransaction();
        wct.reorder(taskInfo.token, true /* onTop */);
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
            mTransitions.startTransition(TRANSIT_TO_FRONT, wct, null);
        } else {
            mShellTaskOrganizer.applyTransaction(wct);
        }
    }

    /**
    /**
     * Turn desktop mode on or off
     * Turn desktop mode on or off
     * @param active the desired state for desktop mode setting
     * @param active the desired state for desktop mode setting
+11 −0
Original line number Original line Diff line number Diff line
@@ -191,6 +191,17 @@ class DesktopTasksController(
        }
        }
    }
    }


    /** Move a task to the front **/
    fun moveTaskToFront(taskInfo: ActivityManager.RunningTaskInfo) {
        val wct = WindowContainerTransaction()
        wct.reorder(taskInfo.token, true)
        if (Transitions.ENABLE_SHELL_TRANSITIONS) {
            transitions.startTransition(TRANSIT_TO_FRONT, wct, null /* handler */)
        } else {
            shellTaskOrganizer.applyTransaction(wct)
        }
    }

    /**
    /**
     * Get windowing move for a given `taskId`
     * Get windowing move for a given `taskId`
     *
     *
+9 −0
Original line number Original line Diff line number Diff line
@@ -307,6 +307,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            } else if (id == R.id.back_button) {
            } else if (id == R.id.back_button) {
                mTaskOperations.injectBackKey();
                mTaskOperations.injectBackKey();
            } else if (id == R.id.caption_handle || id == R.id.open_menu_button) {
            } else if (id == R.id.caption_handle || id == R.id.open_menu_button) {
                moveTaskToFront(mTaskOrganizer.getRunningTaskInfo(mTaskId));
                decoration.createHandleMenu();
                decoration.createHandleMenu();
            } else if (id == R.id.desktop_button) {
            } else if (id == R.id.desktop_button) {
                mDesktopModeController.ifPresent(c -> c.setDesktopModeActive(true));
                mDesktopModeController.ifPresent(c -> c.setDesktopModeActive(true));
@@ -327,9 +328,17 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            if (id != R.id.caption_handle && id != R.id.desktop_mode_caption) {
            if (id != R.id.caption_handle && id != R.id.desktop_mode_caption) {
                return false;
                return false;
            }
            }
            moveTaskToFront(mTaskOrganizer.getRunningTaskInfo(mTaskId));
            return mDragDetector.onMotionEvent(e);
            return mDragDetector.onMotionEvent(e);
        }
        }


        private void moveTaskToFront(RunningTaskInfo taskInfo) {
            if (!taskInfo.isFocused) {
                mDesktopTasksController.ifPresent(c -> c.moveTaskToFront(taskInfo));
                mDesktopModeController.ifPresent(c -> c.moveTaskToFront(taskInfo));
            }
        }

        /**
        /**
         * @param e {@link MotionEvent} to process
         * @param e {@link MotionEvent} to process
         * @return {@code true} if the motion event is handled.
         * @return {@code true} if the motion event is handled.