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

Commit 226d11f9 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by android-build-merger
Browse files

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

am: 72039c7a

Change-Id: Ia624934e99a85028b20fc261da13cf9c7d1e71a7
parents dc5f024a 72039c7a
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
@@ -3899,6 +3899,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);
                }
            }