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

Commit 825f1ed3 authored by Jiaming Liu's avatar Jiaming Liu
Browse files

Set transaction effect when the transaction is not a no-op

Bug: 335515261
Test: atest TaskFragmentOrganizerControllerTest
Change-Id: Id9e9d49ab3571b81c24a2f52b7dd300547b8cbf8
parent 373fd733
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1298,6 +1298,12 @@ public final class WindowContainerTransaction implements Parcelable {
            if ((mChangeMask & CHANGE_FOCUSABLE) != 0) {
                sb.append("focusable:" + mFocusable + ",");
            }
            if ((mChangeMask & CHANGE_FORCE_TRANSLUCENT) != 0) {
                sb.append("forceTranslucent:" + mForceTranslucent + ",");
            }
            if ((mChangeMask & CHANGE_HIDDEN) != 0) {
                sb.append("hidden:" + mHidden + ",");
            }
            if ((mChangeMask & CHANGE_DRAG_RESIZING) != 0) {
                sb.append("dragResizing:" + mDragResizing + ",");
            }
+5 −1
Original line number Diff line number Diff line
@@ -906,8 +906,12 @@ class TaskFragment extends WindowContainer<WindowContainer> {
        return mForceTranslucent;
    }

    void setForceTranslucent(boolean set) {
    boolean setForceTranslucent(boolean set) {
        if (mForceTranslucent == set) {
            return false;
        }
        mForceTranslucent = set;
        return true;
    }

    boolean isLeafTaskFragment() {
+24 −16
Original line number Diff line number Diff line
@@ -842,9 +842,10 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
        }

        if ((c.getChangeMask() & CHANGE_FORCE_TRANSLUCENT) != 0) {
            tr.setForceTranslucent(c.getForceTranslucent());
            if (tr.setForceTranslucent(c.getForceTranslucent())) {
                effects |= TRANSACT_EFFECTS_LIFECYCLE;
            }
        }

        if ((c.getChangeMask() & WindowContainerTransaction.Change.CHANGE_DRAG_RESIZING) != 0) {
            tr.setDragResizing(c.getDragResizing());
@@ -964,9 +965,10 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
            }
        }
        if ((c.getChangeMask() & CHANGE_FORCE_TRANSLUCENT) != 0) {
            taskFragment.setForceTranslucent(c.getForceTranslucent());
            if (taskFragment.setForceTranslucent(c.getForceTranslucent())) {
                effects |= TRANSACT_EFFECTS_LIFECYCLE;
            }
        }

        effects |= applyChanges(taskFragment, c);

@@ -1568,27 +1570,33 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
            case OP_TYPE_REORDER_TO_BOTTOM_OF_TASK: {
                final Task task = taskFragment.getTask();
                if (task != null) {
                    if (task.mChildren.peekFirst() != taskFragment) {
                        task.mChildren.remove(taskFragment);
                        task.mChildren.add(0, taskFragment);
                        if (!taskFragment.hasChild()) {
                        // Ensure that the child layers are updated if the TaskFragment is empty.
                            // Ensure that the child layers are updated if the TaskFragment is
                            // empty.
                            task.assignChildLayers();
                        }
                        effects |= TRANSACT_EFFECTS_LIFECYCLE;
                    }
                }
                break;
            }
            case OP_TYPE_REORDER_TO_TOP_OF_TASK: {
                final Task task = taskFragment.getTask();
                if (task != null) {
                    if (task.mChildren.peekLast() != taskFragment) {
                        task.mChildren.remove(taskFragment);
                        task.mChildren.add(taskFragment);
                        if (!taskFragment.hasChild()) {
                        // Ensure that the child layers are updated if the TaskFragment is empty.
                            // Ensure that the child layers are updated if the TaskFragment is
                            // empty.
                            task.assignChildLayers();
                        }
                        effects |= TRANSACT_EFFECTS_LIFECYCLE;
                    }
                }
                break;
            }
            case OP_TYPE_CREATE_OR_MOVE_TASK_FRAGMENT_DECOR_SURFACE: {