Merge "Check to start the PiP animation early."
This commit is contained in:
committed by
Android (Google) Code Review
commit
d3c418aa09
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -552,6 +552,10 @@ public class BoundsAnimationController {
|
||||
return animationType;
|
||||
}
|
||||
|
||||
boolean isAnimationTypeFadeIn() {
|
||||
return mAnimationType == FADE_IN;
|
||||
}
|
||||
|
||||
public Handler getHandler() {
|
||||
return mHandler;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user