From 5979eafb1653cec975741c0e9ec9236f19ee8ce5 Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Tue, 28 May 2019 09:05:57 -0700 Subject: [PATCH] Back out "[RN] Fix layout animation crash" Summary: Original commit changeset: 41200e572ed7 Reviewed By: mdvacca Differential Revision: D15485156 fbshipit-source-id: d0868a03b7186bb33998afc2c99dd85f31c8fef9 --- .../react/uimanager/NativeViewHierarchyManager.java | 2 +- .../layoutanimation/LayoutAnimationController.java | 12 ++++-------- .../facebook/react/views/view/ReactViewGroup.java | 4 +--- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java index 2aa8abf9794..48d1daefd5f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java @@ -444,7 +444,7 @@ public class NativeViewHierarchyManager { arrayContains(tagsToDelete, viewToRemove.getId())) { // The view will be removed and dropped by the 'delete' layout animation // instead, so do nothing - } else if (viewToManage != null) { + } else { viewManager.removeViewAt(viewToManage, normalizedIndexToRemove); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java index cad0a0cac29..232cb01f907 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.java @@ -82,14 +82,10 @@ public class LayoutAnimationController { } public boolean shouldAnimateLayout(View viewToAnimate) { - // if view is null or the view parent is null, skip animation: view have been clipped, - // we don't want animation to resume when view is re-attached to parent, which is the - // standard android animation behavior. If there's a layout handling animation going on, - // it should be animated nonetheless since the ongoing animation needs to be updated. - - if (viewToAnimate == null) { - return false; - } + // if view parent is null, skip animation: view have been clipped, we don't want animation to + // resume when view is re-attached to parent, which is the standard android animation behavior. + // If there's a layout handling animation going on, it should be animated nonetheless since the + // ongoing animation needs to be updated. return (mShouldAnimateLayout && viewToAnimate.getParent() != null) || mLayoutHandlers.get(viewToAnimate.getId()) != null; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java index e1cec5d41a2..4e89e9dbf59 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java @@ -465,9 +465,7 @@ public class ReactViewGroup extends ViewGroup implements mDrawingOrderHelper.handleRemoveView(getChildAt(index)); setChildrenDrawingOrderEnabled(mDrawingOrderHelper.shouldEnableCustomDrawingOrder()); - if (getChildAt(index) != null) { - super.removeViewAt(index); - } + super.removeViewAt(index); } @Override