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

Commit 1a904e59 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Update orientation before executing transition by starting window" into tm-dev

parents ca7027e7 7277eab6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -6187,6 +6187,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            // The pending transition state will be cleared after the transition is started, so
            // save the state for launching the client later (used by LaunchActivityItem).
            mStartingData.mIsTransitionForward = true;
            // Ensure that the transition can run with the latest orientation.
            if (this != mDisplayContent.getLastOrientationSource()) {
                mDisplayContent.updateOrientation();
            }
            mDisplayContent.executeAppTransition();
        }
    }
+1 −7
Original line number Diff line number Diff line
@@ -1642,18 +1642,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            // It has been set and not yet finished.
            return true;
        }
        if (!r.occludesParent()) {
        if (!r.occludesParent() || r.isReportedDrawn()) {
            // While entering or leaving a translucent or floating activity (e.g. dialog style),
            // there is a visible activity in the background. Then it still needs rotation animation
            // to cover the activity configuration change.
            return false;
        }
        if (mTransitionController.isShellTransitionsEnabled()
                ? mTransitionController.wasVisibleAtStart(r) : r.isVisible()) {
            // If activity is already visible, then it's not "launching". However, shell-transitions
            // will make it visible immediately.
            return false;
        }
        if (checkOpening) {
            if (mTransitionController.isShellTransitionsEnabled()) {
                if (!mTransitionController.isCollecting(r)) {
+0 −15
Original line number Diff line number Diff line
@@ -282,21 +282,6 @@ class TransitionController {
        return false;
    }

    /**
     * Temporary work-around to deal with integration of legacy fixed-rotation. Returns whether
     * the activity was visible before the collecting transition.
     * TODO: at-least replace the polling mechanism.
     */
    boolean wasVisibleAtStart(@NonNull ActivityRecord ar) {
        if (mCollectingTransition == null) return ar.isVisible();
        final Transition.ChangeInfo ci = mCollectingTransition.mChanges.get(ar);
        if (ci == null) {
            // not part of transition, so use current state.
            return ar.isVisible();
        }
        return ci.mVisible;
    }

    @WindowConfiguration.WindowingMode
    int getWindowingModeAtStart(@NonNull WindowContainer wc) {
        if (mCollectingTransition == null) return wc.getWindowingMode();