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

Commit 9cbadee7 authored by Louis Chang's avatar Louis Chang
Browse files

Pausing the resumed activity when making it invisible

A resumed activity was added to stopping activity lists while
making it invisible without having state changes. So, the
activity won't be resumed if it becomes visible again because
the activity is already in the resumed state.

mSetToSleep was used in 9b8ece20, which wasn't a reliable way to
determine if the activity is resuming because it gets updates until
set to sleep. Now we use Task#mInResumeTopActivity instead.

Bug: 160435184
Test: atest ActivityRecordTests
Change-Id: I3509ba75e3f2d87c863d52c0fb07d69cbfe41764
parent 4a11c440
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -4761,14 +4761,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                    supportsEnterPipOnTaskSwitch = false;
                    break;
                case RESUMED:
                    // If the app is capable of entering PIP, we should try pausing it now
                    // so it can PIP correctly.
                    if (deferHidingClient) {
                        getRootTask().startPausingLocked(
                                mStackSupervisor.mUserLeaving /* userLeaving */,
                                false /* uiSleeping */, null /* resuming */, "makeInvisible");
                    // Do nothing if currently in the process of resuming the activity. Otherwise,
                    // starting to pause it since it is not visible.
                    if (task.mInResumeTopActivity
                            && task.topRunningActivity(true /* focusableOnly */) == this) {
                        break;
                    }
                    getRootTask().startPausingLocked(mStackSupervisor.mUserLeaving,
                            false /* uiSleeping */, null /* resuming */, "makeInvisible");
                    // fall through
                case INITIALIZING:
                case PAUSING:
                case PAUSED: