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

Commit d3c418aa authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Check to start the PiP animation early."

parents 3e7916ef 452882a0
Loading
Loading
Loading
Loading
+23 −12
Original line number Diff line number Diff line
@@ -60,18 +60,6 @@ import static android.view.WindowManager.TRANSIT_TASK_OPEN_BEHIND;
import static android.view.WindowManager.TRANSIT_TASK_TO_BACK;
import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT;

import static com.android.server.wm.TaskProto.ACTIVITIES;
import static com.android.server.wm.TaskProto.ACTIVITY_TYPE;
import static com.android.server.wm.TaskProto.BOUNDS;
import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
import static com.android.server.wm.TaskProto.DISPLAY_ID;
import static com.android.server.wm.TaskProto.LAST_NON_FULLSCREEN_BOUNDS;
import static com.android.server.wm.TaskProto.MIN_HEIGHT;
import static com.android.server.wm.TaskProto.MIN_WIDTH;
import static com.android.server.wm.TaskProto.ORIG_ACTIVITY;
import static com.android.server.wm.TaskProto.REAL_ACTIVITY;
import static com.android.server.wm.TaskProto.RESIZE_MODE;
import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY;
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
@@ -115,14 +103,26 @@ import static com.android.server.wm.BoundsAnimationController.NO_PIP_MODE_CHANGE
import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_END;
import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_START;
import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
import static com.android.server.wm.TaskProto.ACTIVITIES;
import static com.android.server.wm.TaskProto.ACTIVITY_TYPE;
import static com.android.server.wm.TaskProto.ADJUSTED_BOUNDS;
import static com.android.server.wm.TaskProto.ADJUSTED_FOR_IME;
import static com.android.server.wm.TaskProto.ADJUST_DIVIDER_AMOUNT;
import static com.android.server.wm.TaskProto.ADJUST_IME_AMOUNT;
import static com.android.server.wm.TaskProto.ANIMATING_BOUNDS;
import static com.android.server.wm.TaskProto.BOUNDS;
import static com.android.server.wm.TaskProto.DEFER_REMOVAL;
import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
import static com.android.server.wm.TaskProto.DISPLAY_ID;
import static com.android.server.wm.TaskProto.FILLS_PARENT;
import static com.android.server.wm.TaskProto.LAST_NON_FULLSCREEN_BOUNDS;
import static com.android.server.wm.TaskProto.MINIMIZE_AMOUNT;
import static com.android.server.wm.TaskProto.MIN_HEIGHT;
import static com.android.server.wm.TaskProto.MIN_WIDTH;
import static com.android.server.wm.TaskProto.ORIG_ACTIVITY;
import static com.android.server.wm.TaskProto.REAL_ACTIVITY;
import static com.android.server.wm.TaskProto.RESIZE_MODE;
import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY;
import static com.android.server.wm.TaskProto.ROOT_TASK_ID;
import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
import static com.android.server.wm.TaskProto.SURFACE_WIDTH;
@@ -826,6 +826,17 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
        setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
                false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
                false /* creating */);
        if (windowingMode == WINDOWING_MODE_PINNED) {
            // This stack will be visible before SystemUI requests PiP animation to start, and if
            // the selected animation type is fade in, this stack will be close first. If the
            // animation does not start early, user may see this full screen window appear again
            // after the closing transition finish, which could cause screen to flicker.
            // Check if animation should start here in advance.
            final BoundsAnimationController controller = getDisplay().mBoundsAnimationController;
            if (controller.isAnimationTypeFadeIn()) {
                setPinnedStackAlpha(0f);
            }
        }
    }

    /**
+4 −0
Original line number Diff line number Diff line
@@ -552,6 +552,10 @@ public class BoundsAnimationController {
        return animationType;
    }

    boolean isAnimationTypeFadeIn() {
        return mAnimationType == FADE_IN;
    }

    public Handler getHandler() {
        return mHandler;
    }