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

Commit 95ee8736 authored by Winson's avatar Winson
Browse files

Skip scroll-to animation when undocking and there are no tasks.

Bug: 28367678
Change-Id: Iafd064196cae43f60ff6d356843d1e431d15daea
parent 9832f8f4
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -451,11 +451,13 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD

        TaskStack stack = loadPlan.getTaskStack();
        int numStackTasks = stack.getStackTaskCount();
        boolean showDeferredAnimation = numStackTasks > 0;

        EventBus.getDefault().send(new ConfigurationChangedEvent(true /* fromMultiWindow */,
                false /* fromDeviceOrientationChange */, false /* fromDisplayDensityChange */,
                numStackTasks > 0));
        EventBus.getDefault().send(new MultiWindowStateChangedEvent(isInMultiWindowMode, stack));
        EventBus.getDefault().send(new MultiWindowStateChangedEvent(isInMultiWindowMode,
                showDeferredAnimation, stack));
    }

    @Override
+5 −1
Original line number Diff line number Diff line
@@ -25,10 +25,14 @@ import com.android.systemui.recents.model.TaskStack;
public class MultiWindowStateChangedEvent extends EventBus.AnimatedEvent {

    public final boolean inMultiWindow;
    // This flag is only used when undocking a task
    public final boolean showDeferredAnimation;
    public final TaskStack stack;

    public MultiWindowStateChangedEvent(boolean inMultiWindow, TaskStack stack) {
    public MultiWindowStateChangedEvent(boolean inMultiWindow, boolean showDeferredAnimation,
            TaskStack stack) {
        this.inMultiWindow = inMultiWindow;
        this.showDeferredAnimation = showDeferredAnimation;
        this.stack = stack;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -1938,7 +1938,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
    }

    public final void onBusEvent(final MultiWindowStateChangedEvent event) {
        if (event.inMultiWindow) {
        if (event.inMultiWindow || !event.showDeferredAnimation) {
            setTasks(event.stack, true /* allowNotifyStackChanges */);
        } else {
            // Reset the launch state before handling the multiwindow change