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

Commit b99e92b2 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix extra transition animation played after back gesture...

Merge "Merge "Fix extra transition animation played after back gesture trigger." into udc-dev am: 58aab277 am: 8b2da2e9"
parents 4b7b182a b0e0e94c
Loading
Loading
Loading
Loading
+25 −10
Original line number Diff line number Diff line
@@ -675,14 +675,29 @@ class BackNavigationController {
        private static final int TASK_SWITCH = 1;
        private static final int ACTIVITY_SWITCH = 2;

        private static boolean isActivitySwitch(WindowContainer close, WindowContainer open) {
            if (close.asActivityRecord() == null || open.asActivityRecord() == null
                    || (close.asActivityRecord().getTask()
                    != open.asActivityRecord().getTask())) {
                return false;
            }
            return true;
        }

        private static boolean isTaskSwitch(WindowContainer close, WindowContainer open) {
            if (close.asTask() == null || open.asTask() == null
                    || (close.asTask() == open.asTask())) {
                return false;
            }
            return true;
        }

        private void initiate(WindowContainer close, WindowContainer open)  {
            WindowContainer closeTarget;
            if (close.asActivityRecord() != null && open.asActivityRecord() != null
                    && (close.asActivityRecord().getTask() == open.asActivityRecord().getTask())) {
            if (isActivitySwitch(close, open)) {
                mSwitchType = ACTIVITY_SWITCH;
                closeTarget = close.asActivityRecord();
            } else if (close.asTask() != null && open.asTask() != null
                    && close.asTask() != open.asTask()) {
            } else if (isTaskSwitch(close, open)) {
                mSwitchType = TASK_SWITCH;
                closeTarget = close.asTask().getTopNonFinishingActivity();
            } else {
@@ -757,15 +772,15 @@ class BackNavigationController {
        }

        boolean isTarget(WindowContainer wc, boolean open) {
            if (open) {
                return wc == mOpenAdaptor.mTarget || mOpenAdaptor.mTarget.hasChild(wc);
            if (!mComposed) {
                return false;
            }

            final WindowContainer target = open ? mOpenAdaptor.mTarget : mCloseAdaptor.mTarget;
            if (mSwitchType == TASK_SWITCH) {
                return  wc == mCloseAdaptor.mTarget
                        || (wc.asTask() != null && wc.hasChild(mCloseAdaptor.mTarget));
                return  wc == target
                        || (wc.asTask() != null && wc.hasChild(target));
            } else if (mSwitchType == ACTIVITY_SWITCH) {
                return wc == mCloseAdaptor.mTarget;
                return wc == target || (wc.asTaskFragment() != null && wc.hasChild(target));
            }
            return false;
        }
+4 −14
Original line number Diff line number Diff line
@@ -2363,6 +2363,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
            if (isTranslucent(wc)) {
                flags |= FLAG_TRANSLUCENT;
            }
            if (wc.mWmService.mAtmService.mBackNavigationController.isMonitorTransitionTarget(wc)) {
                flags |= TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
            }
            final Task task = wc.asTask();
            if (task != null) {
                final ActivityRecord topActivity = task.getTopNonFinishingActivity();
@@ -2371,19 +2374,10 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
                            && topActivity.mStartingData.hasImeSurface()) {
                        flags |= FLAG_WILL_IME_SHOWN;
                    }
                    if (topActivity.mAtmService.mBackNavigationController
                            .isMonitorTransitionTarget(topActivity)) {
                        flags |= TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
                    }
                    if (topActivity != null && topActivity.mLaunchTaskBehind) {
                    if (topActivity.mLaunchTaskBehind) {
                        Slog.e(TAG, "Unexpected launch-task-behind operation in shell transition");
                        flags |= FLAG_TASK_LAUNCHING_BEHIND;
                    }
                } else {
                    if (task.mAtmService.mBackNavigationController
                            .isMonitorTransitionTarget(task)) {
                        flags |= TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
                    }
                }
                if (task.voiceSession != null) {
                    flags |= FLAG_IS_VOICE_INTERACTION;
@@ -2397,10 +2391,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
                    flags |= FLAG_IS_VOICE_INTERACTION;
                }
                flags |= record.mTransitionChangeFlags;
                if (record.mAtmService.mBackNavigationController
                        .isMonitorTransitionTarget(record)) {
                    flags |= TransitionInfo.FLAG_BACK_GESTURE_ANIMATED;
                }
            }
            final TaskFragment taskFragment = wc.asTaskFragment();
            if (taskFragment != null && task == null) {