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

Commit ec0c08c7 authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Check okToAnimate for TaskFragment change transition" into sc-v2-dev

parents 2ed57776 2ce49dc6
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1387,9 +1387,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
    /** Whether we should prepare a transition for this {@link ActivityRecord} parent change. */
    private boolean shouldStartChangeTransition(
            @Nullable TaskFragment newParent, @Nullable TaskFragment oldParent) {
        if (mWmService.mDisableTransitionAnimation
                || mDisplayContent == null || newParent == null || oldParent == null
                || getSurfaceControl() == null || !isVisible() || !isVisibleRequested()) {
        if (newParent == null || oldParent == null || !canStartChangeTransition()) {
            return false;
        }

+5 −14
Original line number Diff line number Diff line
@@ -4715,12 +4715,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        mWmService.requestTraversal();
    }

    @Override
    boolean okToDisplay() {
        return okToDisplay(false);
    }

    boolean okToDisplay(boolean ignoreFrozen) {
        return okToDisplay(ignoreFrozen, false /* ignoreScreenOn */);
        return okToDisplay(false /* ignoreFrozen */, false /* ignoreScreenOn */);
    }

    boolean okToDisplay(boolean ignoreFrozen, boolean ignoreScreenOn) {
@@ -4732,18 +4729,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        return mDisplayInfo.state == Display.STATE_ON;
    }

    boolean okToAnimate() {
        return okToAnimate(false);
    }

    boolean okToAnimate(boolean ignoreFrozen) {
        return okToAnimate(ignoreFrozen, false /* ignoreScreenOn */);
    }

    @Override
    boolean okToAnimate(boolean ignoreFrozen, boolean ignoreScreenOn) {
        return okToDisplay(ignoreFrozen, ignoreScreenOn)
                && (mDisplayId != DEFAULT_DISPLAY
                || mWmService.mPolicy.okToAnimate(ignoreScreenOn));
                || mWmService.mPolicy.okToAnimate(ignoreScreenOn))
                && getDisplayPolicy().isScreenOnFully();
    }

    static final class TaskForResizePointSearchResult {
+1 −4
Original line number Diff line number Diff line
@@ -2163,10 +2163,7 @@ class Task extends TaskFragment {
    }

    private boolean shouldStartChangeTransition(int prevWinMode, int newWinMode) {
        if (mWmService.mDisableTransitionAnimation
                || !isVisible()
                || getSurfaceControl() == null
                || !isLeafTask()) {
        if (!isLeafTask() || !canStartChangeTransition()) {
            return false;
        }
        // Only do an animation into and out-of freeform mode for now. Other mode
+1 −7
Original line number Diff line number Diff line
@@ -2125,13 +2125,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {

    /** Whether we should prepare a transition for this {@link TaskFragment} bounds change. */
    private boolean shouldStartChangeTransition(Rect startBounds) {
        if (mWmService.mDisableTransitionAnimation
                || mDisplayContent == null
                || mTaskFragmentOrganizer == null
                || getSurfaceControl() == null
                // The change transition will be covered by display.
                || mDisplayContent.inTransition()
                || !isVisible()) {
        if (mTaskFragmentOrganizer == null || !canStartChangeTransition()) {
            return false;
        }

+8 −6
Original line number Diff line number Diff line
@@ -2600,6 +2600,13 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        mSurfaceFreezer.unfreeze(getPendingTransaction());
    }

    /** Whether we can start change transition with this window and current display status. */
    boolean canStartChangeTransition() {
        return !mWmService.mDisableTransitionAnimation && mDisplayContent != null
                && getSurfaceControl() != null && !mDisplayContent.inTransition()
                && isVisible() && isVisibleRequested() && okToAnimate();
    }

    /**
     * Initializes a change transition. See {@link SurfaceFreezer} for more information.
     *
@@ -2948,12 +2955,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
    }

    boolean okToAnimate() {
        return okToAnimate(false /* ignoreFrozen */);
    }

    boolean okToAnimate(boolean ignoreFrozen) {
        final DisplayContent dc = getDisplayContent();
        return dc != null && dc.okToAnimate(ignoreFrozen);
        return okToAnimate(false /* ignoreFrozen */, false /* ignoreScreenOn */);
    }

    boolean okToAnimate(boolean ignoreFrozen, boolean ignoreScreenOn) {
Loading