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

Commit 90d1adbe authored by Matthew Ng's avatar Matthew Ng
Browse files

Fixes recents entrance animation when launching before onStop happens

If RecentsActivity was launched before its onStop runs then it would
have skipped the entrance animation because its launch flags were reset
in onStop. To trigger this, going home and immediately pressing recents
will bring it back up. To fix this, skip reset launch flags (because it
is set before onStop runs) when recents is requested to launch again.

Change-Id: I768f48c33fe77ab2e8f6957611930bf7605bc674
Fixes: 65205705
Test: manual - run recents with apps, press home and immediately recents
parent f3f7a101
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import com.android.systemui.recents.events.activity.IterateRecentsEvent;
import com.android.systemui.recents.events.activity.LaunchTaskFailedEvent;
import com.android.systemui.recents.events.activity.LaunchTaskSucceededEvent;
import com.android.systemui.recents.events.activity.MultiWindowStateChangedEvent;
import com.android.systemui.recents.events.activity.RecentsActivityStartingEvent;
import com.android.systemui.recents.events.activity.ToggleRecentsEvent;
import com.android.systemui.recents.events.component.ActivityUnpinnedEvent;
import com.android.systemui.recents.events.component.RecentsVisibilityChangedEvent;
@@ -119,6 +120,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
    private boolean mFinishedOnStartup;
    private boolean mIgnoreAltTabRelease;
    private boolean mIsVisible;
    private boolean mRecentsStartRequested;
    private Configuration mLastConfig;

    // Top level views
@@ -416,6 +418,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
            launchState.launchedFromHome = false;
            onEnterAnimationComplete();
        }
        mRecentsStartRequested = false;
    }

    @Override
@@ -449,7 +452,6 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
     * Reloads the stack views upon launching Recents.
     */
    private void reloadStackView() {

        // If the Recents component has preloaded a load plan, then use that to prevent
        // reconstructing the task stack
        RecentsTaskLoader loader = Recents.getTaskLoader();
@@ -572,7 +574,9 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
        MetricsLogger.hidden(this, MetricsEvent.OVERVIEW_ACTIVITY);
        Recents.getTaskLoader().getHighResThumbnailLoader().setVisible(false);

        if (!isChangingConfigurations()) {
        // When recents starts again before onStop, do not reset launch flags so entrance animation
        // can run
        if (!isChangingConfigurations() && !mRecentsStartRequested) {
            // Workaround for b/22542869, if the RecentsActivity is started again, but without going
            // through SystemUI, we need to reset the config launch flags to ensure that we do not
            // wait on the system to send a signal that was never queued.
@@ -718,6 +722,10 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
        MetricsLogger.action(this, MetricsEvent.ACTION_OVERVIEW_PAGE);
    }

    public final void onBusEvent(RecentsActivityStartingEvent event) {
        mRecentsStartRequested = true;
    }

    public final void onBusEvent(UserInteractionEvent event) {
        // Stop the fast-toggle dozer
        mIterateTrigger.stopDozing();