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

Commit c4b1aa47 authored by Louis Chang's avatar Louis Chang
Browse files

Clear the focused app after reset adjacent TaskFragments

The TaskFragments were stacked when the device folded. So, the
focused app was occluded and became invisible. In that case,
there was no focused window and ANR happened.

Clear the focused app if the focused app became invisible after
resetting the adjacent TaskFragments.

Bug: 255631222
Test: locally verified by changing display size
Change-Id: I3048824d6df8b63ea9a0f46e9167d9e5fc0da580
parent 6cc66e45
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -975,6 +975,14 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                tf1.setAdjacentTaskFragment(tf2);
                effects |= TRANSACT_EFFECTS_LIFECYCLE;

                // Clear the focused app if the focused app is no longer visible after reset the
                // adjacent TaskFragments.
                if (tf2 == null && tf1.getDisplayContent().mFocusedApp != null
                        && tf1.hasChild(tf1.getDisplayContent().mFocusedApp)
                        && !tf1.shouldBeVisible(null /* starting */)) {
                    tf1.getDisplayContent().setFocusedApp(null);
                }

                final Bundle bundle = hop.getLaunchOptions();
                final WindowContainerTransaction.TaskFragmentAdjacentParams adjacentParams =
                        bundle != null ? new WindowContainerTransaction.TaskFragmentAdjacentParams(