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

Commit 9e4adbcf authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "Don't send onMultiWindowModeChanged if relaunch activity."

parents 1aeabd05 4ee91bb5
Loading
Loading
Loading
Loading
+6 −12
Original line number Diff line number Diff line
@@ -5128,6 +5128,7 @@ public final class ActivityThread extends ClientTransactionHandler {
                }
            }
            r.setState(ON_DESTROY);
            mLastReportedWindowingMode.remove(r.activity.getActivityToken());
        }
        schedulePurgeIdler();
        // updatePendingActivityConfiguration() reads from mActivities to update
@@ -5370,16 +5371,8 @@ public final class ActivityThread extends ClientTransactionHandler {
            throw e.rethrowFromSystemServer();
        }

        // Save the current windowing mode to be restored and compared to the new configuration's
        // windowing mode (needed because we update the last reported windowing mode when launching
        // an activity and we can't tell inside performLaunchActivity whether we are relaunching)
        final int oldWindowingMode = mLastReportedWindowingMode.getOrDefault(
                r.activity.getActivityToken(), WINDOWING_MODE_UNDEFINED);
        handleRelaunchActivityInner(r, configChanges, tmp.pendingResults, tmp.pendingIntents,
                pendingActions, tmp.startsNotResumed, tmp.overrideConfig, "handleRelaunchActivity");
        mLastReportedWindowingMode.put(r.activity.getActivityToken(), oldWindowingMode);
        handleWindowingModeChangeIfNeeded(r.activity, r.activity.mCurrentConfig);

        if (pendingActions != null) {
            // Only report a successful relaunch to WindowManager.
            pendingActions.setReportRelaunchToWindowManager(true);
@@ -5645,10 +5638,6 @@ public final class ActivityThread extends ClientTransactionHandler {
            throw new IllegalArgumentException("Activity token not set. Is the activity attached?");
        }

        // multi-window / pip mode changes, if any, should be sent before the configuration change
        // callback, see also PinnedStackTests#testConfigurationChangeOrderDuringTransition
        handleWindowingModeChangeIfNeeded(activity, newConfig);

        final boolean movedToDifferentDisplay = isDifferentDisplay(activity, displayId);
        boolean shouldReportChange = false;
        if (activity.mCurrentConfig == null) {
@@ -5702,6 +5691,11 @@ public final class ActivityThread extends ClientTransactionHandler {
        }

        if (shouldReportChange) {
            // multi-window / pip mode changes, if any, should be sent before the configuration
            // change callback, see also
            // PinnedStackTests#testConfigurationChangeOrderDuringTransition
            handleWindowingModeChangeIfNeeded(activity, newConfig);

            activity.mCalled = false;
            activity.onConfigurationChanged(configToReport);
            if (!activity.mCalled) {