Loading core/java/android/window/TransitionRequestInfo.java +36 −6 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.window; import static android.view.Display.INVALID_DISPLAY; import static android.view.WindowManager.transitTypeToString; import android.annotation.Nullable; Loading Loading @@ -118,13 +119,15 @@ public final class TransitionRequestInfo implements Parcelable { public static final class DisplayChange implements Parcelable { private final int mDisplayId; // If non-null, these bounds changes should ignore any potential rotation changes. /** If non-null, these bounds changes should ignore any potential rotation changes. */ @Nullable private Rect mStartAbsBounds = null; @Nullable private Rect mEndAbsBounds = null; private int mStartRotation = WindowConfiguration.ROTATION_UNDEFINED; private int mEndRotation = WindowConfiguration.ROTATION_UNDEFINED; private boolean mPhysicalDisplayChanged = false; /** The display to reparent to on disconnect; if invalid, this isn't a disconnect change. */ private int mDisconnectReparentDisplay = INVALID_DISPLAY; /** Create empty display-change. */ public DisplayChange(int displayId) { Loading Loading @@ -158,6 +161,9 @@ public final class TransitionRequestInfo implements Parcelable { return mDisplayId; } /** * If non-null, these bounds changes should ignore any potential rotation changes. */ @DataClass.Generated.Member public @Nullable Rect getStartAbsBounds() { return mStartAbsBounds; Loading @@ -183,6 +189,17 @@ public final class TransitionRequestInfo implements Parcelable { return mPhysicalDisplayChanged; } /** * The display to reparent to on disconnect; if invalid, this isn't a disconnect change. */ @DataClass.Generated.Member public int getDisconnectReparentDisplay() { return mDisconnectReparentDisplay; } /** * If non-null, these bounds changes should ignore any potential rotation changes. */ @DataClass.Generated.Member public @android.annotation.NonNull DisplayChange setStartAbsBounds(@android.annotation.NonNull Rect value) { mStartAbsBounds = value; Loading Loading @@ -213,6 +230,15 @@ public final class TransitionRequestInfo implements Parcelable { return this; } /** * The display to reparent to on disconnect; if invalid, this isn't a disconnect change. */ @DataClass.Generated.Member public @android.annotation.NonNull DisplayChange setDisconnectReparentDisplay( int value) { mDisconnectReparentDisplay = value; return this; } @Override @DataClass.Generated.Member public String toString() { Loading @@ -225,7 +251,8 @@ public final class TransitionRequestInfo implements Parcelable { "endAbsBounds = " + mEndAbsBounds + ", " + "startRotation = " + mStartRotation + ", " + "endRotation = " + mEndRotation + ", " + "physicalDisplayChanged = " + mPhysicalDisplayChanged + "physicalDisplayChanged = " + mPhysicalDisplayChanged + ", " + "disconnectReparentDisplay = " + mDisconnectReparentDisplay + " }"; } Loading @@ -245,6 +272,7 @@ public final class TransitionRequestInfo implements Parcelable { if (mEndAbsBounds != null) dest.writeTypedObject(mEndAbsBounds, flags); dest.writeInt(mStartRotation); dest.writeInt(mEndRotation); dest.writeInt(mDisconnectReparentDisplay); } @Override Loading @@ -265,6 +293,7 @@ public final class TransitionRequestInfo implements Parcelable { Rect endAbsBounds = (flg & 0x4) == 0 ? null : (Rect) in.readTypedObject(Rect.CREATOR); int startRotation = in.readInt(); int endRotation = in.readInt(); int disconnectReparentDisplay = in.readInt(); this.mDisplayId = displayId; this.mStartAbsBounds = startAbsBounds; Loading @@ -272,6 +301,7 @@ public final class TransitionRequestInfo implements Parcelable { this.mStartRotation = startRotation; this.mEndRotation = endRotation; this.mPhysicalDisplayChanged = physicalDisplayChanged; this.mDisconnectReparentDisplay = disconnectReparentDisplay; // onConstructed(); // You can define this method to get a callback } Loading @@ -291,10 +321,10 @@ public final class TransitionRequestInfo implements Parcelable { }; @DataClass.Generated( time = 1733334462577L, time = 1744851977467L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/window/TransitionRequestInfo.java", inputSignatures = "private final int mDisplayId\nprivate @android.annotation.Nullable android.graphics.Rect mStartAbsBounds\nprivate @android.annotation.Nullable android.graphics.Rect mEndAbsBounds\nprivate int mStartRotation\nprivate int mEndRotation\nprivate boolean mPhysicalDisplayChanged\nclass DisplayChange extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genBuilder=false, genConstructor=false)") inputSignatures = "private final int mDisplayId\nprivate @android.annotation.Nullable android.graphics.Rect mStartAbsBounds\nprivate @android.annotation.Nullable android.graphics.Rect mEndAbsBounds\nprivate int mStartRotation\nprivate int mEndRotation\nprivate boolean mPhysicalDisplayChanged\nprivate int mDisconnectReparentDisplay\nclass DisplayChange extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genBuilder=false, genConstructor=false)") @Deprecated private void __metadata() {} Loading Loading @@ -428,7 +458,7 @@ public final class TransitionRequestInfo implements Parcelable { }; @DataClass.Generated( time = 1733334462588L, time = 1744851977482L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/window/TransitionRequestInfo.java", inputSignatures = "private @android.annotation.NonNull android.window.WindowContainerToken mTaskFragmentToken\nprivate @android.annotation.NonNull android.app.ActivityManager.RunningTaskInfo mTaskInfo\nclass PipChange extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genBuilder=false, genConstructor=false)") Loading Loading @@ -687,7 +717,7 @@ public final class TransitionRequestInfo implements Parcelable { }; @DataClass.Generated( time = 1733334462604L, time = 1744851977497L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/window/TransitionRequestInfo.java", inputSignatures = "private final @android.view.WindowManager.TransitionType int mType\nprivate @android.annotation.Nullable android.app.ActivityManager.RunningTaskInfo mTriggerTask\nprivate @android.annotation.Nullable android.window.TransitionRequestInfo.PipChange mPipChange\nprivate @android.annotation.Nullable android.window.RemoteTransition mRemoteTransition\nprivate @android.annotation.Nullable android.window.TransitionRequestInfo.DisplayChange mDisplayChange\nprivate final int mFlags\nprivate final int mDebugId\n java.lang.String typeToString()\nclass TransitionRequestInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genAidl=true)") Loading services/core/java/com/android/server/wm/RootWindowContainer.java +11 −5 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ import static android.view.Display.INVALID_DISPLAY; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE; import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_OCCLUDING; import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_PIP; Loading Loading @@ -138,6 +138,7 @@ import android.view.WindowManager; import android.window.DesktopExperienceFlags; import android.window.DesktopModeFlags; import android.window.TaskFragmentAnimationParams; import android.window.TransitionRequestInfo; import android.window.WindowContainerToken; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -2801,14 +2802,19 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return; } if (DesktopExperienceFlags.ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue()) { final Transition transition = new Transition(TRANSIT_CHANGE, 0 /* flags */, final Transition transition = new Transition(TRANSIT_CLOSE, 0 /* flags */, mTransitionController, mWmService.mSyncEngine); mTransitionController.startCollectOrQueue(transition, (deferred) -> { displayContent.remove(); mWmService.mPossibleDisplayInfoMapper.removePossibleDisplayInfos(displayId); transition.collect(displayContent); transition.setAllReady(); TransitionRequestInfo.DisplayChange displayChange = new TransitionRequestInfo.DisplayChange(displayId); displayChange.setDisconnectReparentDisplay( mWindowManager.mUmInternal.getMainDisplayAssignedToUser(mCurrentUser) ); mTransitionController.requestStartTransition(transition, null /* startTask */, null /* remoteTransition */, null /* displayChange */); null /* remoteTransition */, displayChange); }); } else { displayContent.remove(); Loading services/core/java/com/android/server/wm/Transition.java +14 −2 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.view.WindowManager.TransitionFlags; import static android.view.WindowManager.TransitionType; import static android.view.WindowManager.transitTypeToString; import static android.window.DesktopExperienceFlags.ENABLE_DISPLAY_DISCONNECT_INTERACTION; import static android.window.DesktopExperienceFlags.ENABLE_DISPLAY_FOCUS_IN_SHELL_TRANSITIONS; import static android.window.TaskFragmentAnimationParams.DEFAULT_ANIMATION_BACKGROUND_COLOR; import static android.window.TransitionInfo.AnimationOptions; Loading Loading @@ -3402,13 +3403,22 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { /** * Applies the new configuration for the changed displays. Returns the activities that should * check whether to deliver the new configuration to clients. * check whether to deliver the new configuration to clients and whether the changes will * potentially affect lifecycles. */ void applyDisplayChangeIfNeeded(@NonNull ArraySet<WindowContainer<?>> activitiesMayChange) { boolean applyDisplayChangeIfNeeded(@NonNull ArraySet<WindowContainer<?>> activitiesMayChange) { boolean affectsLifecycle = false; for (int i = mParticipants.size() - 1; i >= 0; --i) { final WindowContainer<?> wc = mParticipants.valueAt(i); final DisplayContent dc = wc.asDisplayContent(); if (dc == null || !mChanges.get(dc).hasChanged()) continue; if (ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue() && mChanges.get(dc) != null && mChanges.get(dc).mExistenceChanged) { dc.remove(); affectsLifecycle = true; mWmService.mPossibleDisplayInfoMapper.removePossibleDisplayInfos(dc.mDisplayId); continue; } final boolean changed = dc.sendNewConfiguration(); // Set to ready if no other change controls the ready state. But if there is, such as // if an activity is pausing, it will call setReady(ar, false) and wait for the next Loading @@ -3428,6 +3438,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { }); } } return affectsLifecycle; } boolean getLegacyIsReady() { Loading Loading @@ -3607,6 +3618,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } boolean hasChanged() { if (mExistenceChanged && ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue()) return true; final boolean currVisible = mContainer.isVisibleRequested(); // the task including transient launch must promote to root task if (currVisible && ((mFlags & ChangeInfo.FLAG_TRANSIENT_LAUNCH) != 0 Loading services/core/java/com/android/server/wm/WindowOrganizerController.java +3 −1 Original line number Diff line number Diff line Loading @@ -649,7 +649,9 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub try { final ArraySet<WindowContainer<?>> haveConfigChanges = new ArraySet<>(); if (transition != null) { transition.applyDisplayChangeIfNeeded(haveConfigChanges); if (transition.applyDisplayChangeIfNeeded(haveConfigChanges)) { effects |= TRANSACT_EFFECTS_LIFECYCLE; } if (!haveConfigChanges.isEmpty()) { effects |= TRANSACT_EFFECTS_CLIENT_CONFIG; } Loading Loading
core/java/android/window/TransitionRequestInfo.java +36 −6 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.window; import static android.view.Display.INVALID_DISPLAY; import static android.view.WindowManager.transitTypeToString; import android.annotation.Nullable; Loading Loading @@ -118,13 +119,15 @@ public final class TransitionRequestInfo implements Parcelable { public static final class DisplayChange implements Parcelable { private final int mDisplayId; // If non-null, these bounds changes should ignore any potential rotation changes. /** If non-null, these bounds changes should ignore any potential rotation changes. */ @Nullable private Rect mStartAbsBounds = null; @Nullable private Rect mEndAbsBounds = null; private int mStartRotation = WindowConfiguration.ROTATION_UNDEFINED; private int mEndRotation = WindowConfiguration.ROTATION_UNDEFINED; private boolean mPhysicalDisplayChanged = false; /** The display to reparent to on disconnect; if invalid, this isn't a disconnect change. */ private int mDisconnectReparentDisplay = INVALID_DISPLAY; /** Create empty display-change. */ public DisplayChange(int displayId) { Loading Loading @@ -158,6 +161,9 @@ public final class TransitionRequestInfo implements Parcelable { return mDisplayId; } /** * If non-null, these bounds changes should ignore any potential rotation changes. */ @DataClass.Generated.Member public @Nullable Rect getStartAbsBounds() { return mStartAbsBounds; Loading @@ -183,6 +189,17 @@ public final class TransitionRequestInfo implements Parcelable { return mPhysicalDisplayChanged; } /** * The display to reparent to on disconnect; if invalid, this isn't a disconnect change. */ @DataClass.Generated.Member public int getDisconnectReparentDisplay() { return mDisconnectReparentDisplay; } /** * If non-null, these bounds changes should ignore any potential rotation changes. */ @DataClass.Generated.Member public @android.annotation.NonNull DisplayChange setStartAbsBounds(@android.annotation.NonNull Rect value) { mStartAbsBounds = value; Loading Loading @@ -213,6 +230,15 @@ public final class TransitionRequestInfo implements Parcelable { return this; } /** * The display to reparent to on disconnect; if invalid, this isn't a disconnect change. */ @DataClass.Generated.Member public @android.annotation.NonNull DisplayChange setDisconnectReparentDisplay( int value) { mDisconnectReparentDisplay = value; return this; } @Override @DataClass.Generated.Member public String toString() { Loading @@ -225,7 +251,8 @@ public final class TransitionRequestInfo implements Parcelable { "endAbsBounds = " + mEndAbsBounds + ", " + "startRotation = " + mStartRotation + ", " + "endRotation = " + mEndRotation + ", " + "physicalDisplayChanged = " + mPhysicalDisplayChanged + "physicalDisplayChanged = " + mPhysicalDisplayChanged + ", " + "disconnectReparentDisplay = " + mDisconnectReparentDisplay + " }"; } Loading @@ -245,6 +272,7 @@ public final class TransitionRequestInfo implements Parcelable { if (mEndAbsBounds != null) dest.writeTypedObject(mEndAbsBounds, flags); dest.writeInt(mStartRotation); dest.writeInt(mEndRotation); dest.writeInt(mDisconnectReparentDisplay); } @Override Loading @@ -265,6 +293,7 @@ public final class TransitionRequestInfo implements Parcelable { Rect endAbsBounds = (flg & 0x4) == 0 ? null : (Rect) in.readTypedObject(Rect.CREATOR); int startRotation = in.readInt(); int endRotation = in.readInt(); int disconnectReparentDisplay = in.readInt(); this.mDisplayId = displayId; this.mStartAbsBounds = startAbsBounds; Loading @@ -272,6 +301,7 @@ public final class TransitionRequestInfo implements Parcelable { this.mStartRotation = startRotation; this.mEndRotation = endRotation; this.mPhysicalDisplayChanged = physicalDisplayChanged; this.mDisconnectReparentDisplay = disconnectReparentDisplay; // onConstructed(); // You can define this method to get a callback } Loading @@ -291,10 +321,10 @@ public final class TransitionRequestInfo implements Parcelable { }; @DataClass.Generated( time = 1733334462577L, time = 1744851977467L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/window/TransitionRequestInfo.java", inputSignatures = "private final int mDisplayId\nprivate @android.annotation.Nullable android.graphics.Rect mStartAbsBounds\nprivate @android.annotation.Nullable android.graphics.Rect mEndAbsBounds\nprivate int mStartRotation\nprivate int mEndRotation\nprivate boolean mPhysicalDisplayChanged\nclass DisplayChange extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genBuilder=false, genConstructor=false)") inputSignatures = "private final int mDisplayId\nprivate @android.annotation.Nullable android.graphics.Rect mStartAbsBounds\nprivate @android.annotation.Nullable android.graphics.Rect mEndAbsBounds\nprivate int mStartRotation\nprivate int mEndRotation\nprivate boolean mPhysicalDisplayChanged\nprivate int mDisconnectReparentDisplay\nclass DisplayChange extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genBuilder=false, genConstructor=false)") @Deprecated private void __metadata() {} Loading Loading @@ -428,7 +458,7 @@ public final class TransitionRequestInfo implements Parcelable { }; @DataClass.Generated( time = 1733334462588L, time = 1744851977482L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/window/TransitionRequestInfo.java", inputSignatures = "private @android.annotation.NonNull android.window.WindowContainerToken mTaskFragmentToken\nprivate @android.annotation.NonNull android.app.ActivityManager.RunningTaskInfo mTaskInfo\nclass PipChange extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genBuilder=false, genConstructor=false)") Loading Loading @@ -687,7 +717,7 @@ public final class TransitionRequestInfo implements Parcelable { }; @DataClass.Generated( time = 1733334462604L, time = 1744851977497L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/window/TransitionRequestInfo.java", inputSignatures = "private final @android.view.WindowManager.TransitionType int mType\nprivate @android.annotation.Nullable android.app.ActivityManager.RunningTaskInfo mTriggerTask\nprivate @android.annotation.Nullable android.window.TransitionRequestInfo.PipChange mPipChange\nprivate @android.annotation.Nullable android.window.RemoteTransition mRemoteTransition\nprivate @android.annotation.Nullable android.window.TransitionRequestInfo.DisplayChange mDisplayChange\nprivate final int mFlags\nprivate final int mDebugId\n java.lang.String typeToString()\nclass TransitionRequestInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genSetters=true, genAidl=true)") Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +11 −5 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ import static android.view.Display.INVALID_DISPLAY; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE; import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_OCCLUDING; import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_PIP; Loading Loading @@ -138,6 +138,7 @@ import android.view.WindowManager; import android.window.DesktopExperienceFlags; import android.window.DesktopModeFlags; import android.window.TaskFragmentAnimationParams; import android.window.TransitionRequestInfo; import android.window.WindowContainerToken; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -2801,14 +2802,19 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return; } if (DesktopExperienceFlags.ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue()) { final Transition transition = new Transition(TRANSIT_CHANGE, 0 /* flags */, final Transition transition = new Transition(TRANSIT_CLOSE, 0 /* flags */, mTransitionController, mWmService.mSyncEngine); mTransitionController.startCollectOrQueue(transition, (deferred) -> { displayContent.remove(); mWmService.mPossibleDisplayInfoMapper.removePossibleDisplayInfos(displayId); transition.collect(displayContent); transition.setAllReady(); TransitionRequestInfo.DisplayChange displayChange = new TransitionRequestInfo.DisplayChange(displayId); displayChange.setDisconnectReparentDisplay( mWindowManager.mUmInternal.getMainDisplayAssignedToUser(mCurrentUser) ); mTransitionController.requestStartTransition(transition, null /* startTask */, null /* remoteTransition */, null /* displayChange */); null /* remoteTransition */, displayChange); }); } else { displayContent.remove(); Loading
services/core/java/com/android/server/wm/Transition.java +14 −2 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.view.WindowManager.TransitionFlags; import static android.view.WindowManager.TransitionType; import static android.view.WindowManager.transitTypeToString; import static android.window.DesktopExperienceFlags.ENABLE_DISPLAY_DISCONNECT_INTERACTION; import static android.window.DesktopExperienceFlags.ENABLE_DISPLAY_FOCUS_IN_SHELL_TRANSITIONS; import static android.window.TaskFragmentAnimationParams.DEFAULT_ANIMATION_BACKGROUND_COLOR; import static android.window.TransitionInfo.AnimationOptions; Loading Loading @@ -3402,13 +3403,22 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { /** * Applies the new configuration for the changed displays. Returns the activities that should * check whether to deliver the new configuration to clients. * check whether to deliver the new configuration to clients and whether the changes will * potentially affect lifecycles. */ void applyDisplayChangeIfNeeded(@NonNull ArraySet<WindowContainer<?>> activitiesMayChange) { boolean applyDisplayChangeIfNeeded(@NonNull ArraySet<WindowContainer<?>> activitiesMayChange) { boolean affectsLifecycle = false; for (int i = mParticipants.size() - 1; i >= 0; --i) { final WindowContainer<?> wc = mParticipants.valueAt(i); final DisplayContent dc = wc.asDisplayContent(); if (dc == null || !mChanges.get(dc).hasChanged()) continue; if (ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue() && mChanges.get(dc) != null && mChanges.get(dc).mExistenceChanged) { dc.remove(); affectsLifecycle = true; mWmService.mPossibleDisplayInfoMapper.removePossibleDisplayInfos(dc.mDisplayId); continue; } final boolean changed = dc.sendNewConfiguration(); // Set to ready if no other change controls the ready state. But if there is, such as // if an activity is pausing, it will call setReady(ar, false) and wait for the next Loading @@ -3428,6 +3438,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { }); } } return affectsLifecycle; } boolean getLegacyIsReady() { Loading Loading @@ -3607,6 +3618,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } boolean hasChanged() { if (mExistenceChanged && ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue()) return true; final boolean currVisible = mContainer.isVisibleRequested(); // the task including transient launch must promote to root task if (currVisible && ((mFlags & ChangeInfo.FLAG_TRANSIENT_LAUNCH) != 0 Loading
services/core/java/com/android/server/wm/WindowOrganizerController.java +3 −1 Original line number Diff line number Diff line Loading @@ -649,7 +649,9 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub try { final ArraySet<WindowContainer<?>> haveConfigChanges = new ArraySet<>(); if (transition != null) { transition.applyDisplayChangeIfNeeded(haveConfigChanges); if (transition.applyDisplayChangeIfNeeded(haveConfigChanges)) { effects |= TRANSACT_EFFECTS_LIFECYCLE; } if (!haveConfigChanges.isEmpty()) { effects |= TRANSACT_EFFECTS_CLIENT_CONFIG; } Loading