Only consider gone for layout if parent is gone for layout
If we check getParentWindowHidden, that determines mostly actual visibility. However, we don't want that because we still would like to follow the parent's window layout lifecycle, as otherwise we may be stuck in a transition in case the parent window is hidden but the child is waiting for a layout to happen. Test: Click "Customize" on wallpaper picker, go back, ensure no transition timeout Fixes: 135976008 Change-Id: I66aeab29a81cd82b170aaf337249616b1f559848 (cherry picked from commitb52b0457e1) (cherry picked from commit07f7d1947a)
This commit is contained in:
committed by
android-build-team Robot
parent
864a428609
commit
185fc7dfa4
@@ -1623,7 +1623,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
|| !mRelayoutCalled
|
||||
|| (atoken == null && mToken.isHidden())
|
||||
|| (atoken != null && atoken.hiddenRequested)
|
||||
|| isParentWindowHidden()
|
||||
|| isParentWindowGoneForLayout()
|
||||
|| (mAnimatingExit && !isAnimatingLw())
|
||||
|| mDestroying;
|
||||
}
|
||||
@@ -3795,6 +3795,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
return parent != null && parent.mHidden;
|
||||
}
|
||||
|
||||
private boolean isParentWindowGoneForLayout() {
|
||||
final WindowState parent = getParentWindow();
|
||||
return parent != null && parent.isGoneForLayoutLw();
|
||||
}
|
||||
|
||||
void setWillReplaceWindow(boolean animate) {
|
||||
for (int i = mChildren.size() - 1; i >= 0; i--) {
|
||||
final WindowState c = mChildren.get(i);
|
||||
|
||||
Reference in New Issue
Block a user