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

Commit fd77e69f authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "Defer stop for all activities becoming invisible" into pi-dev

parents cea247e1 5db9ae40
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1654,6 +1654,16 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
    void addToStopping(ActivityRecord r, boolean scheduleIdle, boolean idleDelayed) {
        if (!mStackSupervisor.mStoppingActivities.contains(r)) {
            mStackSupervisor.mStoppingActivities.add(r);

            // Some activity is waiting for another activity to become visible before it's being
            // stopped, which means that we also want to wait with stopping this one to avoid
            // flickers.
            if (!mStackSupervisor.mActivitiesWaitingForVisibleActivity.isEmpty()
                    && !mStackSupervisor.mActivitiesWaitingForVisibleActivity.contains(r)) {
                if (DEBUG_SWITCH) Slog.i(TAG_SWITCH, "adding to waiting visible activity=" + r
                        + " existing=" + mStackSupervisor.mActivitiesWaitingForVisibleActivity);
                mStackSupervisor.mActivitiesWaitingForVisibleActivity.add(r);
            }
        }

        // If we already have a few activities waiting to stop, then give up
+4 −0
Original line number Diff line number Diff line
@@ -3937,6 +3937,10 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
                        stops = new ArrayList<>();
                    }
                    stops.add(s);

                    // Make sure to remove it in all cases in case we entered this block with
                    // shouldSleepOrShutDown
                    mActivitiesWaitingForVisibleActivity.remove(s);
                    mStoppingActivities.remove(activityNdx);
                }
            }