Merge "Fixes activity didn't receive windowing mode change while exitPip"
This commit is contained in:
committed by
Android (Google) Code Review
commit
4514df4f1a
@@ -5656,6 +5656,11 @@ public final class ActivityThread extends ClientTransactionHandler {
|
||||
throw new IllegalArgumentException("Activity token not set. Is the activity attached?");
|
||||
}
|
||||
|
||||
// WindowConfiguration differences aren't considered as public, check it separately.
|
||||
// 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) {
|
||||
@@ -5708,11 +5713,6 @@ 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) {
|
||||
|
||||
@@ -3569,6 +3569,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
}
|
||||
|
||||
void reportResized() {
|
||||
// If the activity is scheduled to relaunch, skip sending the resized to ViewRootImpl now
|
||||
// since it will be destroyed anyway. This also prevents the client from receiving
|
||||
// windowing mode change before it is destroyed.
|
||||
if (mActivityRecord != null && mActivityRecord.isRelaunching()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) {
|
||||
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.reportResized_" + getWindowTag());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user