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

Commit 3273f31c authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Also notify divider when getting DockedTopTaskEvent

Under some circumstances we never go through the activity lifecycle
if we call startActivity before it gets stopped, so we never notified
the divider about that we have drawn.

Bug: 28531536
Change-Id: I6a13527d52bf40a87f89de4b2799bd0833c6612a
parent 316f67bc
Loading
Loading
Loading
Loading
+18 −10
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;

@@ -47,6 +48,7 @@ import com.android.systemui.recents.events.activity.ConfigurationChangedEvent;
import com.android.systemui.recents.events.activity.DebugFlagsChangedEvent;
import com.android.systemui.recents.events.activity.DismissRecentsToHomeAnimationStarted;
import com.android.systemui.recents.events.activity.DockedFirstAnimationFrameEvent;
import com.android.systemui.recents.events.activity.DockedTopTaskEvent;
import com.android.systemui.recents.events.activity.EnterRecentsWindowAnimationCompletedEvent;
import com.android.systemui.recents.events.activity.EnterRecentsWindowLastAnimationFrameEvent;
import com.android.systemui.recents.events.activity.ExitRecentsWindowFirstAnimationFrameEvent;
@@ -168,6 +170,16 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
        }
    };

    private final OnPreDrawListener mRecentsDrawnEventListener =
            new ViewTreeObserver.OnPreDrawListener() {
                @Override
                public boolean onPreDraw() {
                    mRecentsView.getViewTreeObserver().removeOnPreDrawListener(this);
                    EventBus.getDefault().post(new RecentsDrawnEvent());
                    return true;
                }
            };

    /**
     * Dismisses recents if we are already visible and the intent is to toggle the recents view.
     */
@@ -316,16 +328,7 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
        MetricsLogger.visible(this, MetricsEvent.OVERVIEW_ACTIVITY);

        // Notify of the next draw
        mRecentsView.getViewTreeObserver().addOnPreDrawListener(
                new ViewTreeObserver.OnPreDrawListener() {

                    @Override
                    public boolean onPreDraw() {
                        mRecentsView.getViewTreeObserver().removeOnPreDrawListener(this);
                        EventBus.getDefault().post(new RecentsDrawnEvent());
                        return true;
                    }
                });
        mRecentsView.getViewTreeObserver().addOnPreDrawListener(mRecentsDrawnEventListener);
    }

    @Override
@@ -755,6 +758,11 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
        }
    }

    public final void onBusEvent(final DockedTopTaskEvent event) {
        mRecentsView.getViewTreeObserver().addOnPreDrawListener(mRecentsDrawnEventListener);
        mRecentsView.invalidate();
    }

    @Override
    public boolean onPreDraw() {
        mRecentsView.getViewTreeObserver().removeOnPreDrawListener(this);