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

Commit 0d89b0e7 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Avoid empty TaskFragment removal affecting playing transition" into main

parents 8c743c5d af1b500a
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -2661,10 +2661,19 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub


    private int deleteTaskFragment(@NonNull TaskFragment taskFragment,
    private int deleteTaskFragment(@NonNull TaskFragment taskFragment,
            @Nullable Transition transition) {
            @Nullable Transition transition) {
        if (transition != null) transition.collectExistenceChange(taskFragment);
        final boolean isEmpty = taskFragment.getNonFinishingActivityCount() == 0;
        if (transition != null && (taskFragment.isVisibleRequested()
                // In case to update existing change type.
                || transition.mChanges.containsKey(taskFragment))) {
            transition.collectExistenceChange(taskFragment);
        }


        mLaunchTaskFragments.remove(taskFragment.getFragmentToken());
        mLaunchTaskFragments.remove(taskFragment.getFragmentToken());
        taskFragment.remove(true /* withTransition */, "deleteTaskFragment");
        taskFragment.remove(true /* withTransition */, "deleteTaskFragment");
        if (isEmpty) {
            // The removal of an empty TaskFragment doesn't affect lifecycle.
            return 0;
        }
        return TRANSACT_EFFECTS_LIFECYCLE;
        return TRANSACT_EFFECTS_LIFECYCLE;
    }
    }


+1 −0
Original line number Original line Diff line number Diff line
@@ -638,6 +638,7 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
    @Test
    @Test
    public void testApplyTransaction_enforceHierarchyChange_deleteTaskFragment() {
    public void testApplyTransaction_enforceHierarchyChange_deleteTaskFragment() {
        doReturn(true).when(mTaskFragment).isAttached();
        doReturn(true).when(mTaskFragment).isAttached();
        doReturn(1).when(mTaskFragment).getNonFinishingActivityCount();
        mWindowOrganizerController.mLaunchTaskFragments.put(mFragmentToken, mTaskFragment);
        mWindowOrganizerController.mLaunchTaskFragments.put(mFragmentToken, mTaskFragment);


        // Throw exception if the transaction is trying to change a window that is not organized by
        // Throw exception if the transaction is trying to change a window that is not organized by