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

Commit 0fcf5474 authored by Winson's avatar Winson Committed by android-build-merger
Browse files

Merge "Workaround for empty recents, defer the enter animation." into nyc-dev

am: 2b8dcded

* commit '2b8dcded':
  Workaround for empty recents, defer the enter animation.

Change-Id: I9678058e4fdb7b207b9c9b0a2f1c2b40d47b8835
parents fc520dd6 2b8dcded
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
    private boolean mFinishedOnStartup;
    private boolean mIgnoreAltTabRelease;
    private boolean mIsVisible;
    private boolean mReceivedNewIntent;

    // Top level views
    private RecentsView mRecentsView;
@@ -120,6 +121,9 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
    private int mFocusTimerDuration;
    private DozeTrigger mIterateTrigger;
    private final UserInteractionEvent mUserInteractionEvent = new UserInteractionEvent();
    private final Runnable mSendEnterWindowAnimationCompleteRunnable = () -> {
        EventBus.getDefault().send(new EnterRecentsWindowAnimationCompletedEvent());
    };

    /**
     * A common Runnable to finish Recents by launching Home with an animation depending on the
@@ -342,6 +346,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        mReceivedNewIntent = true;

        // Reload the stack view
        reloadStackView();
@@ -419,7 +424,16 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
    @Override
    public void onEnterAnimationComplete() {
        super.onEnterAnimationComplete();
        EventBus.getDefault().send(new EnterRecentsWindowAnimationCompletedEvent());

        // Workaround for b/28705801, on first docking, we may receive the enter animation callback
        // before the first layout, so in such cases, send the event on the next frame after all
        // the views are laid out and attached (and registered to the EventBus).
        mHandler.removeCallbacks(mSendEnterWindowAnimationCompleteRunnable);
        if (!mReceivedNewIntent) {
            mHandler.post(mSendEnterWindowAnimationCompleteRunnable);
        } else {
            mSendEnterWindowAnimationCompleteRunnable.run();
        }
    }

    @Override
@@ -478,6 +492,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD

        // Notify that recents is now hidden
        mIsVisible = false;
        mReceivedNewIntent = false;
        EventBus.getDefault().send(new RecentsVisibilityChangedEvent(this, false));
        MetricsLogger.hidden(this, MetricsEvent.OVERVIEW_ACTIVITY);