Loading services/core/java/com/android/server/wm/TransitionController.java +8 −2 Original line number Diff line number Diff line Loading @@ -516,8 +516,14 @@ class TransitionController { * playing, but can be "opened-up" for certain transition operations like calculating layers * for finishTransaction. */ boolean canAssignLayers() { return mBuildingFinishLayers || !isPlaying(); boolean canAssignLayers(@NonNull WindowContainer wc) { // Don't build window state into finish transaction in case another window is added or // removed during transition playing. if (mBuildingFinishLayers) { return wc.asWindowState() == null; } // Always allow WindowState to assign layers since it won't affect transition. return wc.asWindowState() != null || !isPlaying(); } @WindowConfiguration.WindowingMode Loading services/core/java/com/android/server/wm/WindowContainer.java +1 −1 Original line number Diff line number Diff line Loading @@ -2596,7 +2596,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< void assignLayer(Transaction t, int layer) { // Don't assign layers while a transition animation is playing // TODO(b/173528115): establish robust best-practices around z-order fighting. if (!mTransitionController.canAssignLayers()) return; if (!mTransitionController.canAssignLayers(this)) return; final boolean changed = layer != mLastLayer || mLastRelativeToLayer != null; if (mSurfaceControl != null && changed) { setLayer(t, layer); Loading Loading
services/core/java/com/android/server/wm/TransitionController.java +8 −2 Original line number Diff line number Diff line Loading @@ -516,8 +516,14 @@ class TransitionController { * playing, but can be "opened-up" for certain transition operations like calculating layers * for finishTransaction. */ boolean canAssignLayers() { return mBuildingFinishLayers || !isPlaying(); boolean canAssignLayers(@NonNull WindowContainer wc) { // Don't build window state into finish transaction in case another window is added or // removed during transition playing. if (mBuildingFinishLayers) { return wc.asWindowState() == null; } // Always allow WindowState to assign layers since it won't affect transition. return wc.asWindowState() != null || !isPlaying(); } @WindowConfiguration.WindowingMode Loading
services/core/java/com/android/server/wm/WindowContainer.java +1 −1 Original line number Diff line number Diff line Loading @@ -2596,7 +2596,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< void assignLayer(Transaction t, int layer) { // Don't assign layers while a transition animation is playing // TODO(b/173528115): establish robust best-practices around z-order fighting. if (!mTransitionController.canAssignLayers()) return; if (!mTransitionController.canAssignLayers(this)) return; final boolean changed = layer != mLastLayer || mLastRelativeToLayer != null; if (mSurfaceControl != null && changed) { setLayer(t, layer); Loading